Experienced programmer and trainer specializing in web front-end development with Angular and Bootstrap and back-end development with Python, Node, and Perl.
Areas of Expertise
- Front-end development with Angular, Bootstrap, Jenkins, Git
- Back-end development with Python, Node, Perl, Clojure
- AWS and IoT including Lambda, Elastic Beanstalk, Kinesis, DynamoDB
- iOS/Android with Swift/Java
- Technical trainer
- Technical writer, courseware developer
- Creative thinker, problem solver, results driven
- 5+ years of remote work experience
- Founded software training and contract programming firm to provide a wide range of technical expertise.
- Provided contract programming services in front-end web, back-end servers and APIs, mobile apps for iOS and Android, Linux system administration.
- Delivered technical training courses to thousands of students in various industries (technology, finance, high energy physics, government, application development, higher education and more).
- Tailored training courses to meet specific client needs.
- Involved in all aspects of the business from marketing and sales to contract programming to courseware development and delivery.
- Managed employees and subcontractors, contracts, and client relationships.
Onsight Representative Engagements
- Angular development for several websites designed to connect patients with clinical trials.
- Back-end development of APIs using Python, Node, Clojure.
- Leveraged AWS IoT, connecting device prototypes to back-end systems.
- Improved the clinical trial experience for both the patient and the provider by developing network-enabled prototypes (eg. TrialApp – an iPhone app that the patient and caregiver use to coordinate and communicate; base station device connecting devices in the home with the provider; patient locator that determines the room the patient is in).
- Improved communication between the patient and the provider by developing connected medical device prototypes. For example, with a dementia trial, notifying study team when patient consumes medication, strays out of normal areas or needs reminding of what to bring to the visit with investigator.
- Enabled management to increase productivity by demonstrating advanced practices and processes for team to more effectively work remotely.
- Reduced costs of managing clinical trial costs by developing a Python Django web application that tracked and managed clinical trial expenses. Resulted in trial management savings, and vastly improved the ability to confirm when/if an investigator had been paid.
- Increased software quality by improving the development process and deployment and standardizing.
- Helped numerous clients improve their development process through delivering training classes.
- Addressed client specific needs by developing tailored technical training materials (e.g., Linux, Python Programming) for the needs of their organization.
- Developed call processing software for the SC9000 SuperCell cellular telephony system using object oriented design techniques. Interfaced with system architects to create software design documentation. Coded in C++ in a Unix / Windows environment using established coding standards and code inspections. Executed component tests to verify functionality of code.
- Delivered training for several training courses offered to Motorola employees including: Object Oriented Programming in C++, C Programming, Advanced C, Unix Fundamentals, and several tools including AutoPlanII, CheckPoint.
- Leader of a Project Management team performing management functions for the EMX2500 cellular phone switch. The team managed projects by creating overall development plans, developing schedule templates, creating specific schedules, and coordinating weekly project meetings. Created and maintained internal and customer documentation. Communicated with the customer on planning and technical issues including software problem resolution.
Taught Computer Studies courses "Introduction to Programming" (introduction to C) and "Computer-Based Problem Solving" (data structures) for Northwestern University, University College. Responsible for creating lesson plan, lecturing weekly, and creating and grading programming assignments and exams.
- Designed, coded, and tested telephony call processing software for the 5ESS switching system. Responsible for writing and reviewing software development documents (Requirements Specification, Design Documents, etc.), coding, and testing code in the lab. All code was written in C in the Unix environment.
- Performed system verification and systems integration for the 5ESS switching system. Responsible for development and execution of high level test suites.
Skills & Proficiency
- Angular, Bootstrap, HTML5, CSS, XML
- iOS/Swift and Android/Java
- AWS and IoT
- MySQL, MongoDB, DynamoDB, Firebase
- Extensive Perl experience (mod_perl, DBI, CGI, Embperl, Mason, Object Oriented Programming, Tk, LWP and much more)
- Linux / Unix / macOS administration
- Developing and delivering training in computer science topics
- Apache and Apache Tomcat administration
- Telephony / cellular infrastructure
- Project Management
- Effective written and verbal communication and presentation skills
- Strong team-building and team-leading skills
- Passionate user and advocate of open-source software
Books & Publications
- Training Materials Authored
- Advanced Python
- Advanced Perl
- RH033 - Red Hat Linux Essentials Training
- RH133 - Red Hat Linux System Administration Training
- RH253 - Red Hat Linux Network Administration Training
- RH300 - Red Hat Linux Rapid Track Training
- CGI Programming Using Perl
- Apache Tomcat
- Linux C Programming Essentials
- Tcl/Tk Programming
- Advanced Tcl/Tk Programming
- XML Basics
- Perl and XML
- XML Processing and Styling with XSL
- Books Authored
- Articles Authored
- Book Technical Edits
Details available on request.
- "[James] was a faithful and talented developer and a great team member, and I recommend him without any reservations."
- "James struck me as the most positive person I'd ever encountered in the workplace. Enthusiastic and quick to learn new technologies, James consistently proved to be a collaborative contributor. ... I would consider myself fortunate to be on a team working with James again."
- "Our instructor James has that rare combination of outstanding soft skills, technical depth, wit, and humor while maintaining utmost professionalism. The down side is that he was so good he left me disappointed with most professional education from other instructors I’ve received since."