Embedded work can vary greatly, as can the meaning of what is "embedded". I roughly group embedded projects into three types:


Most of my work in this category has been on Atmel processors, particularly on Arduino-based designs and the Ethernut embedded computer. These project typically involve reading and/or processing data, as well as interacting with GPIO pins. Almost all these projects involve my software running inside a custom hardware design.

Examples: Bridge Inspector, Tank Protector


Usually Linux-based (but some "trimmed" Windows-XP too) embedded-PC software, these projects involve heavy processing, monitoring and/or logging of data, and in most cases reporting via email, SNMP, or custom protocols.

Examples: Maestro, Seismographer, PMWB

Managers & Automation

The purpose of the software is not so much as a recorder but as a coordinator. These projects often involve multiple tiers of components, from server processes that talk to peripherals with custom protocols, to desktop-based software which interfaces and manages them.

Examples: Ecosystem, Maestro