Summary:
Extensive architecture, design and development expertise in areas ranging from aircraft visual display firmware to OS drivers. Familiar with varied environments, including embedded processors with various constraints, for both Fortune 500 and small companies. Adept at working closely and effectively with hardware engineers and other team members to make appropriate system design decisions and to solve problems. Strongly self-motivated to produce results and satisfy the customer. Astute at addressing the “white space” that falls between official roles.
Languages, OS’s and Methodologies: C, C++, Ada, Pascal, Algol, PL-1, Basic, Lisp, numerous Assembly Languages, HTML, PHP, UNIX shell scripts
Experienced with numerous OS’s, including kernel components on Linux and HP-UX (Hp’s Unix)
Familiar with several design methodologies, including Agile and Object Oriented Design
Experience:
Hewlett-Packard, Roseville, CA
1984 – 2012
Systems/Software Engineer VII – “Master Engineer” (2003 – 2012)
Architect & Technical Lead for device drivers on project to enable HP’s new Linux systems to recover from an uncorrectable PCIe error and resume using the PCIe device. Identified approach to enable recovery from non-correctable PCI errors by leveraging existing Linux infrastructure.
Previous Responsibilities & Key Accomplishments with HP:
-
Architect & Technical Lead on project to share PCIe device functions of non SR-IOV multi-function networking devices among different virtualized “guest OS’s” running HP-UX, and made the changes to a key network driver library. This project greatly reduces the overhead required for IO performed from virtual machines
-
Led the multi-functional “System Management Homepage Commonality Forum” team focused on providing common manageability features across HP’s x86 and Itanium Product Family architectures, allowing HP to market a consistent solution across different product lines which reduces support training needs and enhances system supportability
-
Defined a WBEM profile for reporting component and subsystem health status details, providing immediate details on system health problems without the need to consult logs
-
Member of the development lab’s Steering Committee and Strategic Planning Committee, which directs resources to the most appropriate tasks
-
Technical consultant and co-initiator of project to incorporate platform diagnostic functionality into the next generation high-end Itanium server firmware, solving numerous problems faced by OS based diagnostics due to virtualization and dynamic hardware reconfiguration capabilities. Co-author of HP Tech Con’08 abstract submission on this subject, which received a “Poster Presentation” award
-
Led project utilizing an international team to implement HP-UX OS device testing “providers” based on the WBEM Common Diagnostic Model and controlled by a web UI, creating a standards-based tools to increase customer confidence in their hardware
Software Dev. Eng./Architect – “Lead Engineer” (2000 – 2003)
-
Served as primary diagnostic team representative working with hardware and firmware teams to ensure that HP’s then-new Intel Itanium servers would be highly diagnosable. Served on several cross-organizational teams for many years in this ongoing effort
-
Participated in a multi-functional team to develop an event architecture based on IPMI for Intel IPF systems which allows different platforms to define different descriptions and corrective actions for different platforms, thus increasing system reparability. Designed and developed an event lookup library to be used by the proactive event reporting system and an event display tool. Developed the XML parser on which the library was based
Software Engineer (1984-2000)
-
Led the development of a proactive event notification system for HP-UX systems, which can often warn customers of developing system problems before they cause downtime, and in some cases isolate failing hardware
-
Developed numerous web submittal forms and shell script tools to simplify development, which were frequently adopted by other engineers to improve productivity
-
Architected and led the development of the UI for a diagnostic system for HP-UX systems. A key design feature was the ability to define user dialogs once and have them render in a GUI, Terminal UI or Command Line interface
-
Developed display terminal firmware & test tools for HP’s Roseville Terminals Division
Kaiser Electronics, San Jose, CA
1979 – 1984
Senior Engineer
Designed and developed firmware and test code for electronic displays used in aerospace applications, including
-
firmware for an experimental display for the F-16 AFTI (custom processor)
-
firmware for a ground contour display with “ground proximity warning for the A-6 terrain following radar (Zilog z8000 assembly language)
-
a prototype multi-purpose display plus object file writer and reader (in Ada). Developed a display simulator for this system
-
an assembler for a custom graphics processor by utilizing and post-processing output from the Digital Equipment VAX assembler
NCR Corporation, Ithaca, NY
1974 – 1979
Software Engineer: (part time, full time and under contract)
Firmware development for a data entry terminal and a display terminal (Intel 8080 assember). Key accomplishments include:
-
Developed an RS-232 “driver”, a higher level communications protocol handler, and “arithmetic module to simulate keypunch devices, etc.
-
Developed an interpretive serial communications tester
Education, Professional Development and Training
BS EE, concentrating in Computer Science, Cornell University – Ithaca, NY
Numerous courses, including ones focused on Agile Development methodology, Object Oriented Design, Programming in Java and C++, Red Hat Linux Virtualization, and HP’s “Technical Career Path Catalyst” program.
US Patents Issued:
Issue Date Patent Number Title
04-21-2009 7,523,346 Systems and methods for CPU repair
05-12-2009 7,533,293 Systems and methods for CPU repair
10-20-2009 7,607,040 Methods and systems for conducting processor health-checks
10-20-2009 7,607,038 Systems and methods for CPU repair
10-13-2009 7,603,582 Systems and methods for CPU repair
03-02-2010 7,673,171 Systems and methods for CPU repair
04-06-2010 7,694,174 Systems and methods for CPU repair
04-06-2010 7,694,175 Methods and systems for conducting processor health-checks
03-29-2011 7,917,804 Systems and methods for CPU repair
01-31-2012 8,108,724 Field replaceable unit failure determination
09-04-2012 8,260,790 System and method for using indexes to parse static XML documents