Embedded Systems Engineering Services

Gary provides services in a variety of aspects in the areas of embedded systems, software, and intellectual property. In those areas, he has provided consulting services, contract engineering work, and training. The following are sample projects:

  • Wrote firmware in C and assembly language for printers, door locks, and power supplies.
  • Diagnosed difficult and intermittent defects and developed solutions and workarounds.
  • Developed device driver standards and promoted hardware/firmware architectural guidelines for ASICs and FPGAs.
  • Developed test suites to test, troubleshoot, and debug software components and systems.
  • Taught webinars (see below) and conference classes.
  • Produced charts showing the presence of patent claims in accused products.
  • Reverse engineered devices to examine designs for possible patent and copyright infringement.

Contact Gary to help you with your project.

Software source code on dark blue screen
  • Ray Xu
    I think, again, you have solved one of the toughest problems for us with your expertise and dedication.
    Ray Xu
    Firmware Engineer, Hewlett-Packard Co., Shanghai, RPC
  • Kim Chournos
    Gary is one of the best troubleshooters I’ve met in my 26 years at Hewlett-Packard.
    Kim Chournos
    Firmware Engineer, Hewlett-Packard Co.
  • Robert Grover
    In addition to being highly skilled, which is obvious, you are a sincerely caring person and have done us a great service.
    Robert Grover
    CEO, PCS Edventures, Inc.
  • Jack Meador
    Thanks to your inquisitive and creative nature, I think we have together arrived at a couple of significant hardware contributions that improve the firmware interface and control. Thanks for doing such a great job of establishing for me a firmware driver mindset that can play an important role in our ASIC design decisions.
    Jack Meador
    Senior Hardware Engineer, Hewlett-Packard Co.


The following are DesignNews Continuing Education Webinars Gary has presented. Each one consists of five 45-minute sessions. Free registration is required to access them.

Writing Reusable C Code for Embedded Systems

  • Session 1: Introduction, Myths & Why
  • Session 2: Writing Code That Is Reusable Through Commonality
  • Session 3: Writing Code That Is Reusable Through Flexibility
  • Session 4: Additional Approaches to Support Code Reusability
  • Session 5: Reusable Code Tests & Concluding Remarks

Principles of Interface Design

  • Introduction: 7 Basic Principles of Interface Design
  • Part II: Methodologies of Successful Collaboration & Standards
  • Part III: Hardware & Software Sharing Responsibilities
  • Part IV: Looking for & Avoiding Problems in Interface Design
  • Part V: Planning for the Road Ahead & Future Enhancements

System-Level Testing & Debugging

  • Introduction: What You Need to Know About System Test & Debugging
  • Part II: Putting Together & Executing a Test Plan
  • Part III: Getting Your System Up and Running
  • Part IV: Failure Modes & What to Do About Them
  • Part V: Soft Skills They Don’t Teach You in the Manual
Computer user watching a webinar