Adam Lewis Software Engineer


aclewis182@gmail.com


Profile

I am an agile software developer who loves to make ideas come to life. I pride my self in creating clean, efficient, and testable code. I've worked for small companies most of my career and thrive facing new challenges.


Skills

Embedded Systems

Since the beginning my professional career, I have been involved with the full life cycle of embedded systems. My strongest skill sets gravitate towards developing software / firmware written in C, but am very comfortable in front of an oscilloscope trouble shooting a custom piece of electronics.

Web Development

Many of my recent projects have been providing real-time web interfaces for complex embedded systems. These interfaces were developed using modern, full-stack, web technologies like GO, Python CherryPy, KnockoutJS, Bootstrap, and GULP. Bridging the embedded world into the mobile world has proven to be an exciting experience.

Project Management

Working for small companies has allowed me to be a part of, and in most cases lead, the entire project life cycle. In recent projects I have been responsible for managing a small team of independent contractors to develop custom software to interface with our existing systems as well as custom electronics used in production applications.


Technical

C, GO, Python, HTML, JavaScript, .NET (C# and VB)
Free RTOS, gorilla/mux, jQuery, KnockoutJS, Bootstrap, Highcharts, pyInstaller, Fabric, CherryPy, Jinja2
PIC32, STM8, dsPIC, PIC18, ARM
CAN 2.0, SAE J1939, GPIB, RS232, RS485, SPI, I2C, TCP/IP, HTTP
Git, SVN, OSX, Linux, Windows, Sublime Text, VIM, Visual Studio, MPLAB-X

Experience

QuEST Rail LLC Sept. 2016 - Present
Software Engineer Wellington, MO
  • Architected and developed multiple embedded software projects utilizing Free RTOS running on a PIC32 processor.
  • Developed a generic and extendable protocol converter used to translate different rail-specific protocols. The converter is a stand-alone embedded single board computer utilizing web technologies for the front end and Go for the translation engine and web server.
  • Designed multiple test fixtures for custom electronics to be used in production facilities. The test fixtures used a Raspberry-Pi as the compute module that communicated with custom electronics as well as commercial test equipment. The test runner and all communication engines were implemented in Go while the front end was entirely web based. Results and diagnostic data were stored in a CouchDB database.
Brewer Science Inc. Nov. 2013 - Sept. 2016
Software Engineer Rolla, MO
  • Architected the DataStream™ technology suite and implemented the majority of its features shipping on the Cee® Apogee™ Bake Plates and Spin Coaters.
  • Lead the implementation of an agile project management process for the equipment R&D group. The process included both Scrum and Kanban methodologies.
  • Managed independent contractors spanning multiple projects and disciplines.
  • Lead the design of a prototype control system using a distributed network of embedded computers that communicated to custom hardware via CAN. The development of this prototype included PCB / schematic design, custom firmware written in C, Python applications running on embedded Linux, and several web services.
  • Co-inventor of two patent pending technologies.
QuEST Rail LLC Nov. 2008 - Nov. 2013
Software Engineer Wellington, MO
  • Developed multiple SAE J1939 enabled devices from initial requirements to fielded units. The devices include electronic push button shifters with graphical display, marine throttle controllers, direct drive shift actuators, and spring loaded throttle actuator.
  • Designed, implemented and maintained multiple PCB certification testers; one of which reduced the required test time from 3 hours to less than 30 minutes per chassis. The design of these testers include: communicating with commercial and custom test equipment, PostgreSQL database storage, web interfaces, and local client test execution software.
  • Implemented an innovative motor control algorithm to detect and react to large anomalies in an otherwise uniform control region.
  • Co-designed and developed an integrated test system poised to revolutionize the testing of rail interlocking controllers.
  • Developed control software for a rail axle simulator that included real-time input capture from an embedded controller and driving multiple AC motors in response to the real-time data.
  • Designed custom CAN boot loader with supporting PC software for STM8 and dsPIC microcontrollers.
  • Implemented a redesigned graphical interface that is currently used on a public mass transit rail system.
GE Aviation Jan. 2009 - Aug. 2009
Software Engineering Internship Rolla, MO
  • Actively took part in peer reviews for software and hardware documentation.
  • Developed VBA scripts to automate code metric gathering tools.
  • Performed test driven development of proprietary software as part of a multi-site development team.
GE Transportation Jan. 2008 - May 2008
Principal Engineering Internship Grain Valley, MO
  • Analyzed and presented software metric reports.
  • Created a prototype web interface for customer presentations to demonstrate new product features.
  • Developed Matlab / Simulink system models and signal analysis tools.
  • Aided in the development of a real world error detection algorithm.
GE Transportation June 2007 - Aug. 2007
IT Infrastructure Internship Grain Valley, MO
  • Aided in the preparation of a new PBX phone system.
  • Streamlined new procedures to manage telecommunication expenses.
  • Generated plans for expanding cellular coverage in a multi-building complex.

Education

Missouri University of Science and Technology Rolla, MO
BS in Computer Engineering Dec. 2009
  • Major GPA: 3.47 / 4.0
  • Cumulative GPA: 3.21 / 4.0
  • Missouri S&T Solar Car team president.
  • Raised over $700,000 in grants for the Missouri S&T Solar Car team.
  • Designed high output solar array and LiPo battery pack for 2010 solar car race.
  • Developed tools to help test and model photovoltaic panels.