Lead Software Engineer
2013 - PRESENTTec-Masters, Inc. / Torch Technologies- Deployed a new development process focused on test-driven development (TDD) and automated unit testing, significantly increasing test coverage and reducing regression rates.
- Updated the configuration management process to use better-integrated tools, such as Jira and Bitbucket, and increase automation of software packaging and deployment.
- Led a team to design and implement a real-time application to merge simulated radar data with live radar data to facilitate conducting exercises and training in the field with US Army soldiers.
- Led a team to design and implement a real-time application to record high-speed radar data for verification and analysis.
- Led a major development effort to re-architect our radar signal injection application to better utilize the memory architecture and instruction sets of modern x86-64 server hardware, leading to a ten- to fifteen-time improvement in application throughput.
- Reverse engineered the signal-injection algorithms and wrote white papers to document the algorithm designs, references, and assumptions for future developers.
- Conducted peer reviews on code submissions and provided critical feedback to mentor and train younger developers.
Technologies: GDB, SysML, LaTeX, Qt 5, Signal Analysis, CORBA, Data Visualization, Pub/Sub, Sublime Text, Vim Text Editor, Makefile, GNU Make, Make, Radar, Physics, Numerical Methods, Regular Expressions, Statistics, GPS, Architecture, Signal Filtering, Network Protocols, TCP, APIs, CppUnit, Sockets, Realtime, Object-oriented Programming (OOP), Code Review, SIMD, Multithreading, Processing & Threading, Simulations, Modeling, UDP, Multicast, Mathematics, QML, XML, Fortran, Cryptography, Qt, Linux RHEL/CentOS, AWK, Linux Server Administration, Algorithms, Bash, Automation, Bitbucket, Jira, Git, Test-driven Development (TDD), UML, MATLAB, C++, C, Linux, Ada, Performance, Optimization, Analysis, Data Structures, ResearchSenior Software Engineer
2020 - 2021Tequinity, LLC- Developed an indoor location-tracking service using Bluetooth beacons and trilateration algorithms.
- Developed simulators to evaluate the effects of cutting-edge techniques from the academic literature on the overall positioning accuracy.
- Designed tools, policies, and procedures to facilitate proper equipment calibration during site installations.
- Designed tools and schema to accurately capture and manage site geometry data, such as room positioning and RF characteristics.
Technologies: Bluetooth LE, Bluetooth Beacons, Python, Python 3, Pytest, NumPy, SciPy, PostgreSQL, AWS, AWS S3, AWS Lambda, Algorithms, Analysis, Modeling, Simulations, Research, Automation, Linux, Bash, Git, UML, Test-driven Development (TDD), Linux Server Administration, Linux Mint, SQL, GitLab, Mathematics, Processing & Threading, Multithreading, Realtime, APIs, Network Protocols, Architecture, Physics, Data Visualization, Vim Text Editor, Sublime Text, GitLab CI/CDSenior Software Engineer
2020 - 2020Freelance- Enhanced a Sokoban pathfinder algorithm to prevent known "bad" moves. These bad moves would create deadlock situations where certain entities could no longer be moved, leading to unwinnable games.
- Optimized the memory usage patterns of the pathfinder algorithm from O(n^2) to O(n), which dropped the memory requirements for a 100x100 grid from 1.7 GB down to 770 KB.
- Optimized the pathfinder algorithm for better search efficiency. This work reduced the runtime by over 99%, while certain larger test cases dropped from six seconds down to 40 milliseconds.
- Optimized the level solver algorithm to eliminate bottlenecks, which reduced runtime by 90%.
- Replaced a deprecated functionality to enable an upgrade to Qt 5.12.
Technologies: C++, Qt 5, Qt, Performance, Optimization, Linux, C, Bash, Git, Algorithms, Linux Mint, GitLab, Processing & Threading, Multithreading, Code Review, Object-oriented Programming (OOP), Make, GNU Make, Makefile, GDB, Vim Text Editor, Sublime Text, Data StructuresSoftware Engineer
2006 - 2013Tec-Masters, Inc.- Developed an application to inject simulated target scenes into the Terminal High Altitude Area Defense (THAAD) radar system.
- Ported the signal injection software from a legacy SGI MIPS architecture running the IRIX operating system to a modern x86-64 architecture running Red Hat Enterprise Linux.
- Automated the analysis for software requirements verification, using Linux scripting languages, reducing the verification timeline from over three months to two weeks.
- Replaced a legacy, paper-based configuration management process with a new process, using modern tools, notably Git and Bugzilla.
Technologies: GDB, Signal Analysis, CORBA, Data Visualization, Pub/Sub, Vim Text Editor, Makefile, GNU Make, Make, Radar, Physics, Numerical Methods, Regular Expressions, Statistics, GPS, Architecture, Signal Filtering, Network Protocols, TCP, APIs, Sockets, Realtime, Object-oriented Programming (OOP), SIMD, Multithreading, Processing & Threading, Simulations, Modeling, UDP, Multicast, Mathematics, Perl, Fortran, Cryptography, Linux RHEL/CentOS, AWK, Linux Server Administration, Algorithms, Git, Bash, Automation, MATLAB, C++, C, Ada, IRIX, Linux, Qt 5, Performance, Analysis, Data Structures, ResearchJunior Computer Operator
2004 - 2006Tec-Masters, Inc- Developed JSP applications to dynamically explore the equipment health of UH-60 Blackhawk helicopters.
- Developed Java servlets to batch process UH-60 health data overnight.
- Designed an Oracle database schema to store report results.
- Implemented new health-processing algorithms designed by the engineering team to facilitate evaluation and discussion.
Technologies: HTML, MySQL, PHP, LAMP, Oracle RDBMS, JavaScript, CSS, SQL, Oracle, JSP, Java, XML, Mathematics, CSV, CSV Import, CSV Export, Statistics