Todd Coram
todd at maplefish dot com, http://www.maplefish.com/todd
(rev. 05/12/21)

I have over 30 years experience as a professional software/hardware/firmware developer (and computer technologist) for everything from bare metal embedded devices to cloud-hosted multi-node systems. In particular, I specialize in prototyping and exploration of cutting-edge-technology with an emphasis on practicality. My current focus is on rapid prototyping of deeply embedded systems, low power computing, software defined radio (SDR) design, remote OTA control of hardware, home monitoring systems, TCP/IP network programming, and Ethernet/IP protocol manipulation.


Expertise


Programming language Expertise
Lua/LuaJIT, C, C++11, Perl, Haskell, Erlang, Java, Clojure, Python, various Forths (including OpenFirmwware, SwiftX for MSP430 and 8051, MPE Forth for ARM Cortex-M0/3/4, ArrayForth for GreenArray's GA144), awk/gawk, Tcl/Tk, Unix scripting (bash, korn, Busybox, etc), Standard ML, Scheme, Smalltalk and Common Lisp.
OS
Ubuntu/Debian Linux, OpenWRT, TinyCore, FreeBSD, Solaris, Windows, Nucleus (for ARM).
Protocols
TCP/IP, Bluetooth, Bluetooth LE, NFC, LoRA, LoRAWAN, USB (device drivers), XMPP (Jabber), AMQP (RabbitMQ), ZeroMQ and STOMP.
Design
Concurrent (CSP), Functional, Procedural, Object Oriented, Relational, Functional, Generic Programming
Web
Amazon EC2, Digital Ocean
Databases/MQs
SQLite, Berkeley DB, Postgres, RabbitMQ.
Client/Server
RESTful, transaction based, workflow systems, database backed websites, concurrent, distributed, TCP/IP socket based event driven servers.
Security/Forensics
Hardware tamper detection, Laptop forensics, Personal security devices, rootkit detection, filesystem analysis.
Low Level/Embedded
I2C, SPI, 1-wire, bit-banged UART, USB device drivers, bootloaders, BIOS firmware, Bluetooth, NFC, IP packet analysis and modification.
Microcontrollers
Cortex-M0/3/4 (STM32 and Kinetis), ESP32, Nordic nRF51, TI MSP430, 8051 (Silabs), Atmel AVR 8-bit, Parallax Propeller,ARM7, GreenArray GA144.
Modeling language Expertise
SPIN Promela model checker.
Hardware Skills
Digital design of MCU based systems, Teardowns, hand soldering of components down to 3x3mm QFN, board repair.
Technical Writing
Published author (book chapter, technical papers, etc), Writing workshop "shepherd" award recipient.
Inventions and Patents
Co-inventor of technique for managing battery monitoring false positives for body-worn medical devices with multiple high current spike inducing components. Patent Pending (Senseonics).

Selected Projects and Products


PC/Server/Network/Cloud

Healthcare FWA Data Science
Used Clojure (in a web-based notebook) to explore large health care data sets looking for incidents of Fraud, Waste and Abuse. The code was designed to demonstrate how an analyst may do adhoc queries against arbitrary data sets before full ingestion into a structured database. (AELIUS 2017)
PrivNet
Developed a Managed Attribution toolkit in C++ and Clojure. This toolkit has been deployed to commercial and government clients in order to facilitate anonymous web browsing and secure disassociated communications. It currently utilizes custom deployment of RAM resident software to the Amazon EC2 and Digital Ocean cloud providers using user-space IP packet handling/manipulation/obfuscation. - (Novetta Solutions 2012-2016)
Secure Executive Devices (SED)
Developed a secure commercial travel laptop targeted for Corporate Executives of large companies. Developed software to detect hacking attempts (in real time) and hardware modification. - (Novetta Solutions 2013-2014)
DARPA Active Authentication
Developed a hypervisor based security containers for DARPA's next generation PC platform. - (Novetta Solutions 2014-2016)
Mutter
A Mumble (VOIP/chat) compatible server designed for extendability and customization. - (Self 2015-2016)
Various Open Source
Some of my open source code can be found at http://github.com/tcoram and http://gitlab.com/maroc .

Embedded

Body Worn Sensor Network
Designed and implemented a body worn "sensor hub" for collecting data from body worn sensors (via BLE, analog signals, I2C, SPI, UART, etc) and sending to an edge server via LoRA. The sensor hub was based on the Green Arrays GA144 (144 core processor). I designed the hardware, firmware and application software for the hub. (AELIUS 2018)
Elderly Monitoring System
Designed and developed a microcontroller based system for monitoring the independent elderly. This is a system I worked on in my spare time that involved occupancy, activity and temperature monitoring with minimal intrusion onto the daily lives of the elderly. The system used BLE, STM32F4 processors, custom temperature sensors and XMPP (as a messaging system). - (Self 2011-2016)
SBC based Moving Vehicle Imager
Designing and implementing an OpenCV based motion detector to track, photograph, identify and thumbnail vehicles in motion. The system is designed to be portable and battery powered using a single board computer (SBC). - (Novetta Solutions 2016)
Remote Controlled Software Defined Radio
Designing and programming prototype board to facilitate remote control (via GSM SMS) of a power hungry Linux based SBC. The board performs power manage and command & control of the SBC. The board utilizes the Parallax P8X32A multi-core MCU. - (Novetta Solutions 2016)
NFC Messaging Device
Designed (hardware and software) a NFC device (Cortex M4 based) for secure near field communication with Android smartphones and RFID cards. - (Novetta Solutions 2013)
Multi-mode GPS Tracker
Designer and implementer of a multi-mode GPS tracker (running on an MSP430) that uses multiple output paths (including SMS and Iridium SBD). Developed in uForth. - (ITT Nexgen 2010)
Motion Sensor for Waking Satellite Transceivers
Circuit and firmware designer of an extremely low power, motion sensing peripheral device for a an Iridium satellite Transceiver. Dsigned around a TI MSP430 and 3 axis accelerometer. - (ITT Nexgen 2007/2008)
Hand Held Tracker for Iridium Satellite System
Lead designer and implementer of a hand held personal tracker device for the Iridium Satellite system. This device is built around an 8-bit AVR microcontroller and the Nexgen Cutlass transceiver. - (ITT Nexgen 2007/2008)
uForth
I am the designer and implementor of a very lightweight scripting system for 16-bit memory constrained microcontrollers (such as the MSP430) based on a subset of ANS Forth. It is written in ANSI C and itself. It runs on MSP430s and STM32 Cortex based processors. (2010)

Personal projects

I have lots of projects, ranging from Internet servers to personal electronics. See some of my code at https://github.com/tcoram and https://gitlab.com/maroc (although most stuff there is currently private).



Work Experience


Owner on Maplefish LLC, 5/16 to Present, VA

Hire me! I do freelance embedded product development!

Sr. Embedded Software Engineer, 5/20 to Present, RI, VA

Here I work in the R&D department as Lead HW & SW developer, working on embedded sensor technology research and developement.

Embedded Software Engineer & Computer Scientist), 7/17 to 5/20, AELIUS Exploitation Technologies, VA

  I design and build gadgets (hardware/software) based on MCUs and SBCs to do lots of interesting stuff.

Firmware Developer (Consultant), 9/16 to 7/17, Senseonics, MD

  I was their lead firmware engineer, engaged in debugging, improving and enhancing a body worn blood glucose monitoring system. In particular, I was responsible for the transmitter device which uses NFC to communicate with an implantable sensor and Bluetooth LE to communicate with a smartphone. The transmitter is designed around the STM32L4 family of Cortex M4 processors and the Nordic nRF51 BLE chip.

Senior Computer Scientist, 9/10 to 9/16, Novetta Solutions, various locations in MD and VA

  I developed tools in Haskell, Erlang, Clojure, Lua, C, Perl, Awk, etc (and whatever else that makes sense) to do secure communication software (and forensics) for personal devices and cloud servers. I am also designing microcontroller based gadgets for a variety of secure communication uses for the US government.

Principal Software Engineer, 5/06 to 9/10, NexGen - A wholly owned subsidiary of ITT Defense, Dulles VA

  I worked on all types of embedded device side software solutions for the Iridium Satellite network. I was involved with a number of products and projects involving microcontrollers, encryption, USB, Bluetooth and motion sensor devices. I also designed and implemented protocols for satellite handset authentication under Solaris and Linux.

Senior Systems Engineer, 11/02 to 5/06, L3/Titan, Reston VA

  Lead software engineer for the Integrated Broadcast System (IBS) IBS was a government funded soft realtime message processing system with high availability and performance requirements. I was responsible for the design and architecture of the core system. I was also the designer and implementor of the L3/Titan OWL (One Way Link) network appliance.

Other Positions



This document was generated using AFT v5.098