Games - Work & Education - Films & Stories - Misc. Programming
About Me - Résumé - Code Samples - Blog - Contact

Aid Networks

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.