logo Spalted Software LLC logo

 

Long-form (7 page) résumé of Brian Holmes

 
 
Short HTML Short PDF Long HTML Long PDF
 
Position Sought

Senior software engineer; independent consultant or full-time employee.

  • My requirements:
    • Development of C++ software in Linux; target/deployment operating system agnostic.
    • Robust SDLC supported by the software team and respected by the entire organization.
  • My preferences:
    • Multi-threaded, data-driven applications built for reliability and speed.
    • Innovative organizations with a start-up atmosphere.
Experience

2021-Present> Software Engineering Consultant at Spalted Software LLC

  • 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.

2020> Senior Software Engineer at Cambridge Design Partnership, Ltd.

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).

2019> Staff Software Engineer at Baebies, Inc.

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.

2016-2018> Manager of Software Engineering at Q2 Solutions | EA Genomics.

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).

2014-2016> Senior Software Engineer at Q2 Solutions | Expression Analysis.

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).

2011-2014> Sabbatical.

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.

2007-2011> Senior Software Engineer at Tekelec.

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.

2002-2007> Software Engineering Consultant at Holmespun Solutions LLC.

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.

1999-2002> Technical Manager at Performance Technologies, Inc.

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.

1996-1998> Senior Software Engineer at GTE Government Systems

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.

1994-1996> Senior Software Engineer at Lockheed Martin Tactical Defense Systems

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.

1992-1994> Computer Science Consultant for Postal Equipment Consultants

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.

1988-1992> Scientific Analyst Programmer at Loral Defense Systems

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.

Education

1981-1987> Southern Illinois University - Carbondale

Development: Ada83, C, PL/1, Prolog, assembly, FORTRAN, Unix on PDP-11, IBM 370, Intel 8088.

 
 
info0001@spalted-software.com
 

Copyright © 2021-2024 Spalted Software LLC