Expert Details
Development and Assurance of High-Assurance / Safety-Critical Software & Embedded Systems
ID: 725037
Minnesota, USA
Expert is a specialist in software systems and application architecture and design; especially with regard to high-assurance and safety-critical software and firmware. Since 1991, he has held ICCP certificates of proficiency in Software Engineering and Systems Development, both rated at the expert level. He has architected a number of applications and software components, and re-engineered and enhanced features on existing applications. Expert is skilled in assessing weaknesses in architectures, and in many cases, identifying opportunities for improvement. Among the architectures he has created are architectures for an industrial gas sensor transmitter, for software components in an air data computer, for a device driver framework, and for a point-of-sale loyalty terminal application. He has analyzed and assessed a number of legacy architectures for maintenance and enhancement purposes as well, including a client-server drivers license issuance and voter registration system, a computer-integrated manufacturing (CIM) application running an automotive assembly-line, and two different air-data computers. He is familiar with application modeling, model-driven architecture concepts, and design patterns.
Expert is familiar with a number of UML CASE tools, including Rational Rose, IBM/Telelogic Rhapsody, and Sparx Enterprise Architect; and is well-versed in model-based code generation strategies such as model-driven architecture (MDA). He is experienced in the use of object-oriented techniques (OOT), including object-oriented analysis (OOA), object-oriented design (OOD), and object-oriented programming (OOP). He has created development standards to help organizations safely exploit the benefits of OO technology. Expert's programming language experience also encompasses object-oriented languages including C++, C#, Java, Python, and Smalltalk.
Expert has performed substantial work in the area of embedded and real-time systems. He has implemented and integrated the firmware for radio-frequency remote control systems, smart-card personalization modules, industrial controllers, communications boards, and many others. While all of his embedded work was performed primarily in C, assembly language programming also played a part, and Expert has written assembly language code for processors and controllers including: Motorola 6085, 680x0, and PowerPC/603e; Hitachi H8, and SH2; Toshiba TLCS-900; Intel 8051, 80x86, and 8085; Texas Instruments MSP430; and the Zilog Z80. He has created interrupt-driven drivers for a number of data communication protocols including HART, ModBUS, SPI, RS-232, and I2C. He has also been responsible for analyzing the assembly-language outputs from compilers in order to satisfy safety objectives for critical aircraft subsystems.
Expert has substantial expertise in C and C++ programming. While he has also established proficiency in a number of other languages, Expert's development work has been primarily C and C++ since 1992. He has worked with compilers and development suites from Microsoft, IBM, GNU, IAR, Keil, Borland, IBM, Watcom, and several others. Expert understands many of the semantic differences that exist between C as a stand-alone language and C as a subset of C++, and the software defects that can arise from not having this understanding. His examples and feedback to tool vendors have helped them improve their development tools. In both languages, he is adept at designing very efficient algorithms and at performing performance optimizations on existing algorithms. For C++, he is familiar with polymorphism, inheritance and class hierarchy design, pattern application, template metaprogramming, and safe use of templates. In addition to original software development, Expert has performed extensive automated and manual analysis of such systems for safety properties, quality assurance, and for reverse engineering and maintenance purposes. He has developed C and C++ coding standards for software development organizations of 5 - 50 programmers; including some that were involved in safety-critical development.
Expert has developed and/or enhanced several of desktop and client-server applications. The applications he worked on ranged from monolithic, to three-tier, to web-based architectures. The applications were written for a variety of platforms, application programming interfaces, and databases, including WIN32, OS/2, Linux, SunOS/Solaris, COM/DCOM, .NET, DB/2, SQL Server, and Access. Some of these systems were also High-integrity and/or safety-critical applications.
Expert has a research interest in programming languages, and has worked with a number of them. He has worked extensively with imperative languages such as BASIC, C, Pascal; and object-oriented languages and hybrids such as Smalltalk, Java, Ada, C#, and C++. He has worked with low-level languages including Forth, and Postscript; scripting languages such as Python and Rexx; and assembly languages for a number of processors and micro-controllers including 8-bit, 16-bit, and 32-bit architectures utilizing CISC and RISC. Some of the more unusual languages he has worked with include Labview, LISP, Forth, HPL (a predecessor to HP-BASIC), and A+ (a proprietary derivative of APL). He has worked with clients improve proprietary scripting languages for test and simulation, and enhanced interpreters for these languages. Academically, Expert gained experience with Prolog, LISP, ML, Fortran, Cobol, Modula-2, Modula-3, and Icon. Expert has worked to understand similarities, differences, and relative benefits of various languages. He has researched several of these languages in depth, looking at issues of efficiency, semantics, and domain suitability. He has gained an understanding of the impact that the choice of programming language can have on a project.
Expert is a specialist in the field of high-assurance software for safety-critical systems. His expertise includes development, quality assurance, and testing practices across a broad range of applications.
Expert has extensive experience with automated test equipment (ATE) and built-in test (BIT). He has designed ATE applications and libraries for several systems; performing data-acquisition, analog measurement, and data communications. He helped to design the hardware, and created the developer libraries for two generations of medical devices test stations. He also designed and implemented many of the tests that ran on those stations. He created the diagnostic and characterization software for several RF amplifiers used in cellular telecommunications ground sites. On one of those projects he created an extensible GPIB instrumentation class hierarchy that was adopted by test engineers site-wide, and resulted in great productivity gains in subsequent projects. Expert has also built-in-test and power-up tests for embedded applications, including an air-data computer. He has developed innovative algorithms for some very challenging situations, including a test for a 32-bit address bus that could be run in real-time without affecting protected memory locations. Expert also has related ATE experience on the hardware side pertaining to electronic, robotic, and electromechanical stations used in semiconductor wafer testing; and diagnostic and test systems used in maintaining the phased-array early warning and space track radar known as PAVE-PAWS.
On assignment at Honeywell Aerospace, Expert developed applications and libraries for the Air Data / Inertial Reference Unit (ADIRU) flight computer destined for the Airbus A380 "superjumbo" airliner. His primary work was performed in conformance with DO-178B/ED-12B Level A standards. He was also charged with a substantial update of the organization's software development standards. Expert successfully facilitated the resolution of technical issues among two Honeywell software organizations and their customer, Airbus. When a serious issue was discovered with a legacy ADIRU product, Expert was brought in for his general systems knowledge and analytical abilities, as the only member of the investigative team who had not been involved in the original product development. In all, Expert has participated in the design, development and test of 4 different Honeywell aerospace systems; all of which were developed at level A or level B of DO-178B standards. He also worked on two defense-related projects.In a prolonged engagement with Medtronic, Expert helped to establish a new automated test system for verification of PCD (pacer-cardio-defibrillator, a specialized "pacemaker") firmware and hardware. His involvement here included circuit board modifications, software library development, station build-up, development of calibration procedures, and test developer/user training. He also participated as a member in the firmware verification team. Because his expertise with the automated test systems, he was later assigned to the R&D group to aid in the test station development and firmware verification for a new family of Atrial PCDs. This group then spun off as a product group, and Expert joined the software development team for the real-time programmer device, used by physicians to communicate with Medtronic PCDs. Expert's efforts and expertise greatly contributed to bringing to market 4 different PCD products.
During an assignment with Honeywell's sensors division, Expert developed firmware for radio-frequency (RF) remote control receiver and transmitter devices for the rail transport industry. He was selected for this assignment especially for his expertise in the C programming language and his background in RF communications and telemetry. He established development standards and mentored other software developers, who had previously only developed software using assembly language. Following the completion of the software, Expert was re-assigned to the hardware team, where he advised on several circuit modifications, and aided in integration testing. A few months after the assignment ended, Expert was called in to advise on a "problem" the group was having in their tests. The Honeywell team was unable to detect any message corruption even when inducing large amounts of RF noise into the system for prolonged periods. This was an unexpected result, since the communication protocol was very simple and had only basic integrity checks. Expert was able to quickly allay concerns of hardware / testing anomalies, by explaining that he had anticipated that the devices would be expected to operate in very noisy industrial settings and had developed a noise immunity algorithm in the receiver's driver software. Upon pointing the team to the documentation of the algorithm; the team was elated by the results they had seen, and Expert was congratulated on a job well done.
Over several assignments with DataCard, Expert served in various roles as team member, applications architect, technical lead, and Project Manager. As a driver architect, Expert was contracted to create driver software for a specialized printing device. He developed a new architectural framework for serial memory card (smartcard) personalization drivers, and implemented a number of drivers using the framework. He met schedule and cost constraints with a solution that far exceeded performance and memory consumption expectations; while yielding the further benefit that new cards can be added in about than 10% of the time previously required. As a project manager, he always exceeded client expectations with regard to budget and schedule; in one instance saving 70% of estimated effort for an application upgrade by taking advantage of technical features in their existing system that hadn't been previously considered; as an added benefit, this solution exposed DataCard to much less risk than the originally planned approach.
With over 25 years of software development experience, Expert has created software and firmware for many different purposes. He is adept with the use of structured and object-oriented techniques of software construction. He is familiar with several methodologies and techniques, including Agile, RUP, Shlaer-Mellor, Booch, MDA. His programming language background includes C, C++, C#, Java, Ada, Pascal, LISP, Prolog, Smalltalk, BASIC, and Forth; as well as several scripting languages, and assembly languages for a number of microprocessors and controllers. He has worked with many desktop and real-time operating systems. While he is also skilled in matters of hardware and test, he has established himself as an expert in all phases of the development of high-assurance software systems for safety-critical applications.
Education
Year | Degree | Subject | Institution |
---|---|---|---|
Year: 1999 | Degree: MS | Subject: Computer Science | Institution: Nova Southeastern University |
Year: 1992 | Degree: BS | Subject: Computer Software | Institution: Excelsior College |
Year: 1989 | Degree: AAS | Subject: Electronic Systems Technology | Institution: Community College of the Air Force |
Work History
Years | Employer | Title | Department |
---|---|---|---|
Years: 2007 to Present | Employer: Undisclosed | Title: Founder / CEO / Principal Consultant | Department: Consulting |
Responsibilities:In 2007, Expert launched a professional services company focused on supporting organizations that produce safety-critical software and software-based devices. |
|||
Years | Employer | Title | Department |
Years: 2010 to 2012 | Employer: Honeywell | Title: (Undisclosed) | Department: Aerospace |
Responsibilities:Expert was initially engaged by Honeywell to develop a communications component for a high-profile DoD prototype Counter-RCIED/Electronic Warfare (CREW) device. He went on to develop scheduling software for a second generation of the device. Following this work, he commenced Verification and QA work on a guidance and navigation system configuration on a product family developed for use in guided munitions and Unmanned Aerial Vehicles (UAVs). Following the completion of that project Expert developed desktop software for performing high precision timing analyses and simulations for communications networks. In his final role of this engagement, Expert performed an analysis on compiler assembly-language outputs, examining for correctness and compliance with DO-178B expectations. Working with the results of this analysis, he and team-members analyzed requirements for two level-A Air-Data Inertial Reference Systems (ADIRS) to specify additional testing and analyses that might be required. |
|||
Years | Employer | Title | Department |
Years: 2010 to 2010 | Employer: Lockheed - Martin | Title: (Undisclosed) | Department: IS & GS |
Responsibilities:Expert performed software maintenance and enhancements for UNIX / X-Motif-based GUI for the FAA NextGen En Route Automation Modernization (ERAM) program for Air Traffic Control. |
|||
Years | Employer | Title | Department |
Years: 2009 to 2010 | Employer: 3M Corp. | Title: (Undisclosed) | Department: (Undisclosed) |
Responsibilities:Expert developed system requirements and test specifications for software and firmware pertaining to clinical instruments regulated as Class I and Class II medical devices. He also conducted code analyses, peer reviews, and developed templates to support traceability and coverage analyses. |
|||
Years | Employer | Title | Department |
Years: 2008 to 2008 | Employer: Honeywell Aerospace | Title: (Undisclosed) | Department: (Undisclosed) |
Responsibilities:Expert performed development and test work on the datalink portion of Honeywell's "Next Generation Flight Management System (NG-FMS)". This product was a fully object-oriented system developed to DO-178B level B standards. |
|||
Years | Employer | Title | Department |
Years: 2007 to 2007 | Employer: United Technologies - Detector Electronics | Title: (Undisclosed) | Department: (Undisclosed) |
Responsibilities:Expert was engaged in a short-term contract with Detector Electronics / UTC to develop an embedded component of a toxic gas detection system and to provide technical guidance and assistance in the adoption of tools and processes for the company’s first full IEC 61508 SIL-2 development effort. |
|||
Years | Employer | Title | Department |
Years: 1994 to 2007 | Employer: Compuware Corp. | Title: (Undisclosed) | Department: (Undisclosed) |
Responsibilities:While advancing to the position of Systems Architect in the Professional Services division of one of the world’s largest independent software companies, Expert served in technical and managerial roles over a diverse range of project domains and clients. He supported account management through project assessment and sales consulting; and was relied upon by management, clients, and subordinates as a technology expert; especially with regard to embedded high-assurance systems and object-oriented techniques in software development. Honeywell, Medtronic, Ford Motor Company, DataCard, and Morgan Stanley-Dean Witter are among the many clients Expert worked with. |
|||
Years | Employer | Title | Department |
Years: 1992 to 1994 | Employer: Hughes Network Systems | Title: (Undisclosed) | Department: (Undisclosed) |
Responsibilities:As a consultant to Hughes Network Systems, Expert was first engaged to take over development on an automated test system for amplifiers to be used in cellular telephone networks. Following his stellar success in completing this project ahead of schedule, he went on to complete test stations for 4 other network amplifier components. |
|||
Years | Employer | Title | Department |
Years: 2013 to 2018 | Employer: Emerson Process Management | Title: (Undisclosed) | Department: (Undisclosed) |
Responsibilities:As a consultant to Emerson Process Management, Expert was engaged to help streamline the production functional test area for HART-based wireless process monitoring devices. He coordinated activities of technical personnel across sites in Europe, Asia, and the U.S.In a subsequent engagement, he developed security features for Industrial IoT (IIoT) equipment. |
Government Experience
Years | Agency | Role | Description |
---|---|---|---|
Years: 1985 to 1989 | Agency: U.S. Air Force | Role: Space Systems Equipment Maintenance Specialist | Description: Technician - Space Track Phased-Array Radar |
Career Accomplishments
Associations / Societies |
---|
Expert is a member of the International Association of Software Architects (IASA). He is also a certified member of the Institute for Certification of Computer Professionals (ICCP). |
Licenses / Certifications |
---|
Since 1992, Expert has held the designations CCP and CSP from the ICCP; along with expert level proficiency certifications in Systems Development; Software Engineering; and the Ada, Pascal, and BASIC programming languages. He also holds the CET certification from ETA-I. |
Awards / Recognition |
---|
Expert is a past recipient of Compuware's "Profiles In Excellence" award, in recognition of his accomplishments in technical leadership and project management. |
Publications and Patents Summary |
---|
Expert is the author of several white-papers. He is the editor / prime contributor to a professional weblog focused on software architecture and software assurance for high-integrity systems. |
Additional Experience
Training / Seminars |
---|
Expert has developed and delivered training to software developers at client organizations in the use of proprietary software packages, and test systems. He has been a university guest lecturer on the topic of safety-critical software. He has also delivered technology briefs to colleagues and clients with regard to translative software development. |
Vendor Selection |
---|
Expert has represented and assisted clients in sourcing various software applications and hardware components over the years. Expert has negotiated favorable licensing terms on behalf of clients with regard to high-end software analysis suites for high-assurance and safety-critical applications. |
Marketing Experience |
---|
Expert has frequently been asked to assess potential client technologies and projects. Expert has spent most of his career on the cutting edge of software tools and technologies. Today, the company founded by Expert sells professional software development services, software development tools, and training in support of those organizations that develop safety-critical and high-integrity software. |
Fields of Expertise
software safety, software design for safety, software development tool, medical device safety, medical device testing, software engineering, software engineering systems analysis, software engineering systems design, real-time software engineering, real-time system, software design, software system development, system analysis, system design, system development, system software design, computer program modularity, software life cycle, object-oriented development, object-oriented analysis, object-oriented design, object-oriented programming, object-oriented programming language, real-time embedded system software development, assembly language, assembly language programming, cross-platform development, embedded software, embedded system software development, firmware, real-time programming, C programming language, ANSI C programming language, C++ programming, software standard, computer programming, application program interface, application software design, computer software, operating system, computer science, high-level programming language, computer language, medical software quality assurance, black box testing, built-in self test, computer algorithm, computer algorithm optimization, data acquisition, embedded software testing, software testability, automatic electronics testing, automatic test equipment, .Net, IEC 61508, DO-178B, software design patterns, software reverse engineering, year 2000 problem, Java, ANSI C compiler, software validation, Current Good Manufacturing Practice, software integration, software testing standard, software engineering process standard, software regression testing, computer hardware interfacing, radio frequency device testing, data acquisition software, C compiler, data acquisition system, personal computer-based data acquisition, software certification, structured analysis, binary number system, systems diagnostics, software modeling, embedded system engine control coding, embedded system engine control algorithm, electronic instrumentation, interactive virtual reality, computer-aided software engineering, computer software technology innovation, computer system integration, IBM personal computer disk operating system, computer interface designing, application software, software systems requirements definition, standard generalized markup language, optimization, embedded computer system, computer system, computer program, electronic medical device, Microsoft disk operating system, analysis technique, software reliability, software inspection, software design recovery, software configuration management, relational database, real-time operating system, OS/2, electronics testing, control system, control loop, compiler