For two years after graduating from college I worked as a software engineer for a small company called Aid Networks. We developed a product called a Medical Information Tag, or miTag for short.
The miTag was a small device for monitoring a hospital patient's heart rate and blood oxygen saturation levels. Those levels were transmitted back to a central workstation where doctors
and nurses could monitor all of the patients' vital signs from one location.
The unique ability of the miTag was that it could operate and transmit vitals without requiring any expensive wired
or wireless infrastructure to be installed. Instead, only a handful of small, low-powered, and very cheap wireless repeaters needed to be distributed within the area. These repeaters
automatically organized themselves into a wireless mesh network that carried the data from the miTags to the monitoring station.
A user interface on the device itself also allowed a nurse or doctor present to view and chart current and past vital signs as well as customize the appearance and operation of the device.
While at Aid Networks I developed the application-level firmware for the miTag, including both the graphical user interface and the application logic, as well as the server-side
Java software that received the vital signs and forwarded them to the workstation user interface.
Programming for the devices was a significant challenge because they had only 10Kb of RAM and 50Kb of code ROM into which the application, user interface, operating system,
networking stack, and drivers all had to fit and operate simultaneously. I developed a custom graphical user interface framework from the ground up to consume very little memory.
The framework was a custom high-level user interface scripting language that was translated by a tool I wrote into efficient C code which was then compiled onto the device.