Software Engineer2019 - PRESENTToptal Clients
Technologies: C, C++, Python, TensorFlow, Linux, OpenVINO, OpenCV, MPLAB X, Embedded C, Team Leadership
- Collaborated on initial architecture for self-driving cars. Headed a team to create a command-line tool in Python that converted a pre-defined IDL to various programming languages. Collaborated on IDL definition.
- Rearchitected an embedded C system for microcontrollers. Combined three existing state machine systems into one. Normalized the UI framework for LCD buttons or HMI touch panel interaction. Added error handling and a reporting system.
- Implemented a practical byzantine fault tolerance (pBFT) framework for Blockchain in C++.
- Created a C++ command-line tool and library to convert video files or webcams feed to the display of a frame. The codec used OpenVINO to process the pre-defined TensorFlow model. The frames' display used OpenCV.
Software Engineer2019 - 2020Harsco Rail (Contractor)
Technologies: C++, CANopen
- Developed and maintained a control system software for railway track maintenance equipment in C and C++.
- Added a control system and integration for new sensor hardware, including everything from direct sensor communication to the UI.
- Modified the existing hardware control systems to add new functionality.
- Corrected UI workflows and display layout for control systems.
Computer Engineer2018 - 2019Department of Transportation - Federal Aviation Administration
- Maintained GPS satellite data-processing and configuration software, in C and Korn shell.
- Architected system in Python that tracked tool releases, monitored the status of all development machines, and reported all issues with development machines or tool output.
- Maintained data-processing tools, in MATLAB and Python.
Software Engineer2014 - 2017
Technologies: Python, Java, C++
- Maintained and implemented back-end servers in C++, Java, and Python.
- Retrieved data from various databases and other types of stores.
- Applied machine learning techniques to derive features and to determine the most relevant data.
- Set up and managed a series of jobs for data-processing pipelines.
- Periodically scoured existing code for defects and inefficiencies and corrected them.
- Served as project lead for various tasks, coordinating work for up to 15 team members.
Software Engineer2012 - 2014Northrup Grumman
Technologies: MySQL, Embedded Systems, Python, C, C++
- Developed new utilities and enhanced functionality for a mature embedded system using C and C++.
Software Engineer2012 - 2012Siemens
Technologies: HTML, C#, C++
- Implemented a web application to generate and display graphical interpretations of PET scanner data using C# to communicate with a C++ backend.
- Created Visual Studio project files that enabled the automatic build/debug features of the IDE (previously VS was used as an editor, with command-line builds).
- Configured Visual Studio to create a local website for testing the web interface (previously builds had to be hand delivered to and tested in a lab).
- Created Cascading Style Sheets to consolidate and to normalize GUI format, eliminating the need to update every page when a format changed.
Software Engineer2007 - 2012ION Geophysical
Technologies: Solaris, Linux, MPI, OpenMP, Visual Studio, Unix, Windows, MySQL, Microsoft Foundation Class Library (MFC), C++
- Developed and maintained both mature and new software applications used to design seismic surveys and to process the survey data after collection.
- Continuously refactored and developed C++ code on both Windows and UNIX platforms.
- Used Visual Studio to manage both GUI design and Windows work.
- Parallelized and multi-threaded algorithms and data structures, using OpenMP and MPI.
- Interfaced with both homemade and MySQL databases.
- Built and integrated third-party libraries on Windows, Linux, and Solaris.
- Coordinated development tasks and monitored all code submissions for quality.
Sofware QA Engineer2001 - 2003Avatech Solutions
Technologies: NX: Siemens PLM Software, Creo, CATIA, Autodesk Inventor, HTML, ForeHelp, Adobe RoboHelp, CAD, Shell Scripting, Perl, Fortran, C++, Java
- Built and tested quality-checking software for designs in Autodesk Inventor, Catia V4, Catia V5, Pro/ENGINEER, and Unigraphics.
- Created sets of test models in Autodesk Inventor, Catia V4, and Catia V5.
- Performed minor code corrections, in Java and C++.
- Updated documentation,using RoboHelp, ForeHelp, and HTML.
- Assembled and certified software for release.
- Created and maintained build and testing scripts for software products using KornShell, Perl, and Batch Files.
- Performed load testing on web-based software.
- Created system for tracking software defects and regressions and added tests for all testable defects in product history.
- Coordinated with the technical support and product development departments in the identification and resolution of issues.
- Led QA department.