Internet of Things

Experience with the major wireless technologies for IoT including:

  • Matter
  • Bluetooth Low Energy
  • Thread
  • Zigbee
  • 6LoWPAN
  • Wifi
  • 4G/GSM
  • LoRaWAN

Developed custom gateways and bridges to connect the various protocols to cloud-based back-end services. Guided multiple projects through entire lifecycle and hardware generations. Device deployments numbering in hundreds of thousands.

Distributed Systems

MQTT

Expertise with both self-hosted MQTT brokers as well as cloud-based solutions such as AWS IoT and Azure IoT.

WebSockets

Server-side push and keepalive for mobile-based client network monitoring and communication.

Erlang

Used in combination with RabbitMQ, MochiWeb, and custom websocket/long-polling/HTTP1.1-streaming API to create a real-time web API to be used with AJAX, supporting HTTP and HTTPS simultaneously.

Custom RabbitMQ modification to route messages/events on geographic proximity.

Frontend

Javascript

  • Extensive Javascript experience across the major browser engines
  • Single Page Apps in React, Vue.js, Riot.js, JQuery
  • Comfortable with server-side NodeJS and React Native for mobile apps
  • Implementing intuitive and minimal Javascript Single Page Apps as UI for microcontrollers and embedded devices

Design

  • Material Design
  • Bootstrap 3 and 4
  • Responsive across devices

Web Applications

Java

  • ORMs: Hibernate and JPA, with PostgreSQL and MySQL
  • Application servers: Apache Tomcat, Jetty, Mina
  • Frameworks: Play! Framework, Spring

Ruby

  • Frameworks: Ruby on Rails, Sinatra
  • Created RESTful API’s and tight integration with Erlang (specifically for RabbitMQ)

PHP

  • Worked with Zend, Cake, Drupal, Laravel, Magento, and Wordpress along with creating custom applications
  • PHP4, PHP5

Python

  • Frameworks: Flask and Django
  • Also worked with direct CGI processing scripts

Go (Golang)

  • Used with Gorilla and plain net/http to create APIs and microservices with WebSockets

Also wrote web applications in Lua, Javascript/NodeJS, C, and many other languages and systems.

Databases

PostgreSQL

  • PostGIS: Used in a Ruby on Rails application for mapping
  • Performance tuning
  • Migrating applications from NoSQL
  • Clustering

MySQL

Used directly as well as through ORM layers in Java, Ruby, PHP, Python, and C++

SQLite

Used for embedded and memory-constricted devices as well as in mobile applications

Mnesia and ets

Used to manage routes/bindings in RabbitMQ for custom exchange types to allow for wildcard keyword and geographic/location-based routing.

Embedded Systems

Linux

  • Linux Kernel 2.6+ on Atheros and Broadcom MIPS, TI Cortex A8 and OMAP
  • OpenWRT, Debian and Angstrom embedded Linux distributions

Microcontrollers

  • ARM: Cortex A8/A9, Cortex M0, M0+, Cortex M3
  • Atmel AVR: ATTiny, ATmega168/328, ATMega32U, Arduino library and bootloader development.
  • Freescale: HCS08, Kenetis KL2 series
  • TI: Sitara AM335X, CC3200, MSP430

NFC and RFID

  • HID 125 kHz and 13.56 MHz MultiClass reader units and cards
  • NXP PN532 NFC IC, MiFare Ultralight, Classic, and DESFire cards
  • Android NFC API and driver-level development
  • ISO 14443 and ISO 15693

Smartphone Connectivity

Android USB ADK, Bluetooth accessory, and Wifi development for full accessory integration.

Mobile

Android

  • Audio streaming, NFC, SMS and security applications
  • ADK USB accessory firmware and apps integration
  • Bluetooth accessory development

SMS and Telecom

  • VOIP: FreeSWITCH, Asterisk and Twilio API for SMS and IVR menus
  • SMS processing with serial and USB GSM modems

Streaming Media

Video transcoding engine and streaming over RTSP for mobile clients

Other platforms

  • J2ME and Blackberry SDKs
  • Mobile HTML5
  • Mild iOS experience

Security

Unix Servers

  • Firewall configuration, user management, SSH key managment, x509 TLS/SSL certificate management
  • Penetration testing with Nmap, Ettercap, Ethereal/Wireshark, Kismet, and Metasploit

One Time Passcodes

Designed and implemented OATH, HOTP (IETF RFC 4226) and TOTP (IETF RFC 6238) authentication solutions on Android, embedded Linux and microcontrollers

IoT Security

Designed secure protocols and API methods for communication to mobile apps and their connected devices, end-to-end.

Management

Co-founded and ran technical development of SMS marketing firm.

Began and led software teams for server-side and mobile as well as embedded Linux and firmware development.

Introduced and integrated distributed version control (git), Redmine project management system, and release management processes.

Teams consistently exceeded project goals ahead of schedule.