todd at maplefish dot com, http://www.maplefish.com/todd
I have over 30 years experience as a professional software 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.
- Programming language Expertise
- Lua/LuaJIT, C, C++11, Perl, Perl6, Haskell, Erlang, Java, Clojure, 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), Python, Standard ML, Scheme, Smalltalk and Common Lisp.
- Ubuntu/Debian Linux, OpenWRT, TinyCore, FreeBSD, Solaris, Windows, Nucleus (for ARM).
- TCP/IP, Bluetooth, Bluetooth LE, RFID, USB (device drivers), XMPP (Jabber), AMQP (RabbitMQ), ZeroMQ and STOMP.
- Concurrent (CSP), Functional, Procedural, Object Oriented, Relational, Functional, Generic Programming
- Amazon EC2, Digital Ocean
- SQLite, Berkeley DB, Postgres, RabbitMQ.
- RESTful, transaction based, workflow systems, database backed websites, concurrent, distributed, TCP/IP socket based event driven servers.
- 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.
- 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.
Selected Projects and Products
- 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)
- 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 .
- Elderly Monitoring System
- Currently designing and developing a microcontroller based system for monitoring the independent elderly. This is a system I am working on in my spare time that involves occupancy, activity and temperature monitoring with minimal intrusion onto the daily lives of the elderly. The system uses Zigbee, 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)
- 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)
I have lots of projects, ranging from Internet servers to personal electronics.
See some of my code at https://github.com/tcoram and visit my blog at http://toddbot.blogspot.com to see what I am working on.
I design and build gadgets (hardware/software) based on MCUs and SBCs to lots of interesting stuff.
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.
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.
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
I also designed and implemented protocols for satellite handset authentication
under Solaris and Linux.
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.
- Chief Software Engineer, 3/02 to 11/02, Re-route Corp, Alexandria VA
- Senior Software Engineer, 10/01 to 3/02, iDirect Inc, Reston, VA
- Software Engineering Manager, 5/01 to 10/01, BAE Systems Inc, Reston, VA
- Senior Software Developer, 3/01 to 5/01, Sendmail, Inc., Herndon, VA
- XML Czar, 11/00 to 3/01, Digital Creations, Inc. (now Zope, Inc), Fredericks
- Director of Technology 1997 to 11/00, BLaCKSMITH Inc, McLean, VA
- Senior Software Engineer, 1995 to 1997, BTG Inc, Fairfax, VA
- Software Developer, 1994 to 1995, Network Imaging Systems, Herndon, VA
- Senior Software Engineer, 1992 to 1994, BTG Inc, Fairfax, VA
- Software Developer, 1991 to 1992, Digital Analysis Corporation, Reston, VA
- Software Engineer, 1989 to 1991, Innovative Technology Incorporated, McLean,
- Software Developer, 1988 to 1989, Nexus, Inc., Vienna, VA
- Systems Programmer, 1987 to 1988, University of the District of Columbia
This document was generated using AFT v5.098