-
Surgical Robot (made public by client):
Development: C++20 in Linux/ARM, International System of Units (SI Units), GNU Make, CMake, Gcov, Valgrind, Confluence, Jira, Jenkins, GitLab, LucidChart, Doxygen, Gnuplot, JSON, Raspberry Pi quad core, motor controls.
-
https://www.cambridge-design.com/news/cdp-advances-surgical-robotic-technology/
-
Proof-of-concept experiments and implementation of a surgical robot prototype.
-
Implemented robot arm inverse kinematics (Jacobian transpose) for Remote Center of Motion (RCM), force, and independent motion controls.
-
Implemented a thread framework to manage the exchange of information between asynchronous calculations and Controller Area Network (CAN) communications.
-
Logging interface modeled after std::ostream with syslog severity levels that wrote to the syslog utility, a text file, or both.
-
Introduced compile-time C++ types representing SI Units to improve reliability of calculations and their integration with other software modules.
Development: C and C++17, IEC 62304, ISO 14971.
-
Medical device projects as per FDA/IEC/ISO standards:
-
Engineering lead on several small firmware engineering projects.
-
Performed and presented Software Failure Mode and Effects Analysis (FMEA).
Development: C++14 in Linux. Use of GCC, Gcov, git, SQLite, Valgrind.
-
Finder - Newborn life-threatening condition testing:
-
https://baebies.com/products/finder/
-
Feature addition, testing, repair, and documentation of embedded, multi-threaded, medical device control software on a single-board computer target.
-
Relational database table definition and manipulation.
-
USB-storage device auto-detection (udev rules and Bash scripts).
-
System update and database migration from USB-storage.
-
Device leveling feedback based on accelerometer readings.
-
Background system administration: Log compression, up-time, and storage monitoring.
-
Analytical and clinical trial support and instrument upgrades.
Development: C++11 and R in Linux. Use of Boost, Gcov, Valgrind, git, GCP and CLIA standards. Also MINGW and wine for cross compilation and testing for Windows deployment.
-
Defined the roles and specified the methods and process by which my team performed their work. Defined the role of the team within the company as a whole.
-
Maintained a focus on technical leadership and process improvement while performing the more traditional resource management, status reporting, and project management tasks.
-
Hired, trained, and led a team of eight senior, mid-level, and co-op software engineers:
-
Created a clinical data analysis and conversion system that supported a single sign-on web-browser interface. The interface was designed for use by people of all skill levels.
-
Developed a dozen data-conversion applications that used that web-interface.
-
Modified existing bioinformatic pipelines for clinical validation.
-
Developed a tool that detected and removed duplicate read alignments based on molecular barcodes. The tool read a specially annotated BAM file, and produced a condensed BAM file, as well as statistical information and a Pileup file upon request.
-
Used the C++, Python, and R languages to implement software based on how well the language fit the problem at hand; all programs tested with the same custom framework.
-
Started a Python User’s Group for education and discussion within the company.
-
Developed an effective software development process that employed:
-
Requirements communication documents and reviews, a validation process check-list.
-
A makefile system that required all tests to pass before releases could be built.
-
A test mechanism that proved its worth a thousand times over by supporting test-driven development, as well as nightly and on-demand regression testing.
-
Standard methods to apply run-time coverage analysis, memory utilization, and memory leak analysis (using Gcov and Valgrind).
Development: C++ and Bash in Linux. Perl and R script conversion. Use of Boost, Gcov, Valgrind.
Bioinformatics data formats: BAM, BED, FASTA, FASTQ, Pileup, SAM, and BAM (via HTSLIB library).
-
Applied object-oriented software engineering principles to improve the efficiency, reliability, maintainability, and scalability of data processing pipelines.
-
Created programs for data exploration, and translated scripts to C++ programs.
-
Designed and supported infrastructure changes:
-
Planned for a future with larger datasets and more customers.
-
Proposed a new SDLC process specific to NGS pipeline work.
-
Designed a framework that involved Git, a branching model, Gitolite, Virtual Machines, DEB release packages, Docker Containers, and Slurm. The framework was not adopted by the company, but two years later most of its components were in use.
-
Quintiles Comprehensive Cancer Panel (QCCP); CLIA standards:
Development: C++ and Bash in Linux. GCC C++, Gcov, Valgrind, libxml2, Boost, rpmbuild, createrepo.
-
Volunteered as a coach at the Raleigh Parks, Recreation and Cultural Resources.
-
Developed utility programs to keep my skills sharp:
-
Header-only XML rapid parsing and manipulation library.
-
Utility allowing Bash scripts to read XML files.
-
Utility for the XML data-driven creation of Linux RPM packages.
Development: C in VxWorks, Cygwin, Clearcase, and Doxygen.
-
Subject matter expert for the TCAP, MAP, and CAP protocols.
-
Mobile Number Portability (MNP) projects for India and Brazil:
-
Technical team lead on development to support multi-million dollar features.
-
Detected and corrected flaws in customer requirements.
-
Delivered ahead of schedule.
-
Number Conditioning Framework:
-
Lead engineer for the run-time aspects of a framework that was later used for all prominent past and future features of the main company product.
-
Data-driven design with an object oriented implementation.
Development: C++, Java, and Bash in Linux. Web work in XHTML, PHP, JavaScript. ASN.1 and XML work using ANTLR parser generator, XSD, XER. Also Wireshark, syslog, Gdb, Gcov, Gprof.
Protocols: GSM/UMTS MAP and CAP (CAMEL), ANSI IS41, ANSI WIN, ITU TCAP, SCCP, MTP.
Customers in Switzerland, New York, North Carolina, and Texas.
-
GSM MAP System Specification
-
Wrote highly detailed RFP document that my customer could provide to both unknown and untrusted vendors to specify the desired product precisely.
-
Requirement analysis and many discussions with customer management and engineers.
-
Telecom System Log Monitor
-
Created a system log monitoring tool that reported SS7-over-internet link quality.
-
Monitoring and problem detection.
-
Status reports generated on a daily and weekly basis and delivered via e-mail.
-
Telecom Consulting
-
Provided consulting services to several telecom companies.
-
Composed system, interface, module, and test specifications to define project scope from a customer perspective.
-
Wrote enhancement specifications from a vendor perspective.
-
Worked with management, engineering, and sales to define requirements.
-
Bidirectional ASN.1/BER to XML Data Translation
-
Protocol agnostic; data-driven by the protocol definition.
-
XML schema automatically created from the ASN.1 protocol definition as well; hierarchy, field names, and BER data types extracted from specifications.
-
Data translation without loss of any of the nuances of the binary data.
-
ASN.1/BER Test Data Generator
-
Resulting data exercised every possible valid and invalid combination of protocol message field for ASN.1/BER protocols.
-
Data-driven design with an object-oriented implementation.
Development: C++ and Bash in Solaris, AIX, Linux. CVS, Rational Rose UML, Rational Purify Suite, Wireshark, syslog, GCC, Gdb, Gcov, Gprof.
Protocols: GSM/UMTS MAP and CAP, ANSI IS41, ANSI WIN, ANSI TCAP, ITU TCAP, SCCP, MTP.
Customers in Switzerland, Spain, Japan, and Texas.
-
Produced four major $1M+ custom telecom gateway solutions in four years
-
(2002) E-GTP to GSM MAP Internetworking Gateway
-
(2001) International Roaming Converter
-
(2000) Universal Roaming Platform,
-
(1999) International Roaming Converter Box
-
Technical Management
-
Promoted to manager after less-than one year.
-
Hired and trained software engineering staff.
-
Interacted with customers through the entire life-cycle of each product to understand expectations and requirements, provide status throughout the entire development process, and to field the resulting product.
-
Championed the development of applications using reusable C++ libraries in Linux, rather than extending the current C code in VxWorks; thus improving software quality and reuse, and making it easier to find, train, and keep qualified staff.
-
Designed and implemented the TCAP and GSM MAP/CAP format validation libraries.
-
Designed and implemented the mated platform hash table synchronization software.
-
Prepared documents used to win new business: Requirement Specifications for contracts; Statement Of Work documents for RFQ responses; Notable Technical Aspect documents for Sales and Marketing.
-
Introduced software patterns, OOD, OOP, unit testing, nightly builds, and version control.
Development: Sun SPARCstations, Unix, Aonix ObjectAda Ada95, SunSoft C++, Bash, Transarc DCE, RogueWare library, yacc, lex, Interleaf, Clearcase, Qualtrak.
-
C++ to Ada95 Conversion Effort
-
https://compilers.iecc.com/comparch/article/97-07-113
-
Developed an automatic translator program an documentation.
-
Completed through 70% of parsed constructs before the project was terminated.
-
Conversion Guide described use of the translator as only part of the process, its predefined framework, and manual translations required after it use.
-
NMIP Communications System
-
Formalization of prototype code.
-
Improved efficiency and dependability of calculations.
-
Corrected and reorganized use and abuse of RPCs and thread processes.
Development: Sun SPARCstations, Unix, TeleGen Ada, Delta C++, Arc/Info, Arc Macro Language, Bash, yacc, lex, DFAD and DTED.
-
Tactical Environment Simulation, SAAB JAS-39 Simulator
-
Mobile entity (fictive jet) formation management and tactical reasoning software.
-
Designed a tactical behavior simulation language called SML.
-
Wrote a fully automatic SML to C++ translator.
-
Corrected and improved heap management software.
-
Data Base Generation System, JAS-39 Jet Simulator
-
Made radar data base manipulation improvements for efficiency and integrity.
-
Wrote Geographic Information System (GIS) macro language control software.
-
Assisted with installation and testing of the system in Sweden.
Development: Digital computers, VMS, DEC C, MIL-STD-2167.
-
Tracking, Tracing, and Statistics, Central Italian Postal System
-
On site at Elsag Bailey Spa in Genoa, Italy, for my father’s consulting company.
-
Data base access, file processing status, and access tracking software system.
-
MIL-STD-2167 system inspection and acceptance from a company in the USA.
-
Query software improvements for processing and transmission efficiency.
Development: Digital VAXstations, Sun SPARCstations, VMS, VAX Ada, Unix, TeleGen Ada, Sun C, Arc/Info, Arc Macro Language, MIL-STD-2167.
Data formats: TRIFID Spot and Landsat, DMA ADRG, DFAD, DTED, ITD, TTD, DCW.
-
Digital Topographic Support System (DTSS)
-
Digital Chart of the World (DCW)
-
https://en.wikipedia.org/wiki/Digital_Chart_of_the_World
-
Contract requirements fulfillment consultant on ESRI’s first government contract.
-
On-site at ESRI in Redlands, CA, for many weeks.
-
Assisted in the initial database design.
-
Wrote data production management system software design documentation.
|