C, C++
- (2015) Performed an independent code review
and provided corrections for faults found in software
for a class 2, major level-of-concern,
critical-life-support medical device.
-
Performed a comprehensive independent software review
consisting of design review, code inspection, and
static and dynamic code analysis.
-
Advised and provided corrections for literally
thousands of issues found in more than 200,000 lines
of code proving once again that this type of review
and verification needs to be done on an ongoing basis
during all phases of development, and not postponed to
the end.
-
Identified some hardware issues that manifested
themselves as software bugs, and provided
recommendations for correction.
-
Performed an analysis of USB 2.0 traffic flow and
interface to USB 2.0 devices, using a USB 2.0
protocol analyzer. Provided the protocol analyzer
used in making this analysis.
-
Software is in C++ on the QNX RTOS and Momentics
IDE, making extensive use of C++ templates.
Hardware uses multiple processors (TI iMX-53,
2x68332, 8051) communicating with one another via
serial, USB, and SPI bus.
-
Guided the migration of the project to Subversion
(revision control system) and Bugzilla (bug /
action item tracking). Hosted, configured,
administered, and maintained the projects
Subversion and Bugzilla servers.
- (2009 - 2012) Developed a user interface
and served as a software and regulatory consultant
and software team leader for a class 3 medical
device that delivers RF energy to the
patient. Recruited, and provided leadership
and supervision to, a team of 3 senior software
engineers and 1 senior software quality assurance
engineer. Software development was in C++
for MicroC/OS-II, and design used Unified Modeling
Language on Sparx Systems Enterprise
Architect. Device made it through FDA PMA
Supplement approval in half the normal time.
- (2008 - 2009) Implemented a master-slave
communications system on an infusion pump for
veterinary use; software development in C for
FreeRTOS. Provided regulatory consulting services to
that client as they evaluated whether to certify the
infusion pump for human use.
- (2007 – 2008) Served as independent software
quality assurance analyst for a new type of ice
cream vending machine; system used a Linux-based
multi-tasking software package driving custom
hardware to dispense individual servings of ice
cream of the customer’s choice of flavors and
mix-ins.
- (2007 – 2008) Performed a full requirements
analysis and top-level design for a digital
communications system for Boeing 757 airliners and
freighters being developed to FAA DO-178B
standards, using C++ on MicroC/OS-II operating
system. Client retained my services in doing the
requirements analysis while they searched for a
qualified permanent employee to continue the
development.
- (2007) Performed a major software rehabilitation
and refactoring project on a complex machine
vision system whose software documentation has
become obsolete, and the C++ software has become
unmaintainable.
- (2005 – 2006) Served as senior software engineer
for a multi-device, multi-node Voice over IP
communications network implemented on embedded
Linux in C++.
- (2004) Hired to
perform a major system upgrade to a Night
Targeting System Upgrade Kit for helicopter
flight simulators that I had developed in
1995-1997. Original project was developed to run
across three separate processors, with two of
the three processors executing single tasks.
This year’s upgrade involved moving to a new,
faster CPU with a single processor. This
required an extensive restructuring of the
system software to run in multiple tasks (a
total of 19 prioritized tasks) on VxWorks 5.5.1
using Tornado 2.2.1 as IDE.
As part of this project, I designed and wrote
a multi-tasking data simulator on Microsoft
Visual Studio / Visual C++, to send and
receive formatted data concurrently across 6
serial ports to the target system. This tool
involved creating several dialog boxes to
configure the outgoing messages and specify
the expected configuration of the incoming
messages.
-
(2001 – 2003) Software architect and key
software developer for a navigational system for
installation on oceangoing ships. Also served as
mentor to other software engineers in the areas of
C++, VxWorks, Tornado, and Unified Modeling
Language (UML).
- System provides a central redundant
fault-tolerant computer that takes inputs from
Inertial Navigation Systems (INS), Global
Positioning Systems (GPS), depth sounder,
magnetic compass, speed-through-water sensor,
and redundant weather sensors, and outputs
information to shipboard displays and other
shipboard systems.
- Central computer provides services including
Dead Reckoning capability so that the ship’s
position could be estimated in case of failure
of the INS and GPS.
- Central computer consists of two PowerPC
processors in a CompactPCI chassis.
- Designed central computer software using UML
on Rhapsody Modeler with implementation in C++
on VxWorks 5.4 and Tornado 2.1.
- Provided code modification and code review
services and assisted in testing and debugging
of the Graphical User Interface (GUI) for this
system, which was implemented on a ruggedized
PC using Microsoft Visual C++.
- (2000 – 2001) Key
software developer for a Voice Over IP (VoIP) test
system for use in testing and validating VoIP
gateways. Platform was PowerPC and VxWorks with
development under Tornado 2 in C and C++.
Served as mentor and instructor to other software
engineers. Served for a time as acting
Principal Software Engineer / Technical Lead for
this project while the client went about the
process of hiring someone on a permanent basis to
assume that role.
- (Prior to 2000)
Multiple C/C++ projects completed going back to
1983; details on request.
Assembler for 80x86 / 80198 /
8051 and variants / PIC / Z80 and variants /
1802
- (Prior to 2000)
Multiple projects completed in the above
assembly languages going back to 1976; details
on request.
Other
REFERENCES: Available on request.
Copyright 1998-2016 RKT Technologies,
Inc. ALL RIGHTS RESERVED. Permission
is hereby granted to make and distribute copies of
and extractions from this page only
for the purpose of conveying information about RKT
Technologies, Inc. to past, current, or
prospective clients and technical service
agencies.
Send any questions, comments, or
complaints to webmaster@rkt-tech.com
|