He started out at IBM Storage Systems Division in Tucson, Arizona where he developed test and validation systems for new product development, including hardware and software solutions. His last project before returning home to Michigan, was participating in the development of a black-box test architecture in C/C++ for communications protocols. It involves capturing communication protocols using Markov chain modelling techniques, which allows creation of randomized tests with optimized state and path coverage (patent pending). While at IBM, Greg obtained 5 patents for design and testing methodologies for communication protocols and storage system architecture ideas.
Greg came to us from X-Rite, Inc. in Kentwood, MI. X-Rite is a color management company who is one of AO’s biggest customers. He started out in the Automated Test Equipment group where he developed PCB test systems for production line testing. He also led a project to move their test software architecture from Visual Basic to C# .NET. The new system allows tests to be written in XML and added SQL database integration for test versioning and result archival for defect tracking and analysis. He later transitioned into the role of Digital Systems Engineer, designing both hardware, firmware, and software for new color-measurement instruments. He was the primary firmware developer for MonacoOptixXR (for display calibration) and Pulse (for printer calibration). Together, these 2 products have made complete workflow color-management affordable to amateur graphic artists and small companies. Greg has 2 patents pending for innovative ideas in color measurement.
Greg has done professional development in C, C++, C#, Java and Ruby. During his career at Atomic Object, he has worked on project for many customers, including:
- Savant Automation where he worked on AGVs (Automated Guided Vehicles). He developed firmware for modular control and monitoring modules in C, while developing tools and methods for TDD in C for embedded systems, as well as automated system testing using Ruby third-party hardware stimulus and data collection for the hardware/firmware under test.
- Chrysler where he contributed to a Rails/Ruby test architecture for automating the testing of their handheld devices for diagnosing vehicle failures and upgrading firmware in vehicle ECUs.
- X-Rite where has worked on developing firmware for their color measurement devices in C. He has also developed end-user software applications for updating instrument firmware and providing a diagnostic portal for remote technical support and diagnostics.
In his free time, Greg loves to spend time with his wife Kelli and daughters Natalie and Sedona. He also has a rich musical background, having performed in stage shows and also plays guitar and sings. He shares his musical interests with his wife Kelli, who also sings and plays bass. Another related hobby of his is music recording and post-production.
Publications
Mocking the Embedded World: Test-Driven Development, Continuous Integration, and Design Patterns
Embedded Systems Conference Silicon Valley
San Jose, California, USA
April 2007
Open-Source Projects
Unity on SourceForge
Unity is a unit test framework written entirely in the C language. It has special features for embedded systems. It has scaled well from small to large embedded projects, but can be used for any C project.
Favorite Blogs