Projects

Things I've built

Work projects, mostly. Real scale, real constraints.

Fancy Configuration Library

2018 – Present
JavaJava ProxiesYAMLJSON

A configuration library built around developer ergonomics and system reliability. Reads properties, JSON, or YAML files and maps them onto annotated Java interfaces via dynamic proxies — no concrete implementations required. The fun part was using Java's Proxy API to arbitrarily implement interfaces at runtime, reading annotations on interface methods to locate and return the right config values. Also includes a robust file-watch change detection system so the application automatically picks up config changes without a restart.

  • Annotation-driven interface binding — declare config as an interface, get an implementation for free
  • Java Proxy-based runtime implementation reads annotations to resolve config keys
  • Supports properties files, JSON, and YAML from a single API
  • File-watch change detection with automatic live config reload

Maven Installer Plugin

2018 – Present
JavaMavenRPMDEB

A Maven plugin that unifies RPM and DEB package configuration into a single format. Before this, generating installers meant maintaining two separate configs in two different formats — one for each package type. The plugin lets developers declare files, permissions, and pre/post-install scripts once in Maven, then generates both RPM and DEB artifacts from the same definition. Works on macOS and Linux.

  • Single Maven config generates both RPM and DEB installers
  • Declarative file mapping, permissions, and install scripts
  • Cross-platform: builds on macOS and Linux
  • Eliminated duplicate installer config maintenance

Pattern of Life Analysis System

2013 – 2018
JavaPostgreSQLGPS analytics

Patent: US-9167389-B1

GPS-based behavioral analytics that identified movement habits and anomalies over time. The algorithm was novel enough to patent. Core challenge was building something statistically meaningful from noisy, irregular location data at scale.

  • Patent holder: US-9167389-B1
  • Real-time ingestion and scoring of GPS telemetry
  • PostgreSQL query optimization for time-series location data

Real-Time Situational Awareness Platform

2013 – 2018
JavaReactAngularJSAWSPostgreSQLWebSocket

Full-stack distributed platform for real-time operational awareness — distributed backend, browser-based SPAs, mobile clients, and automated on-prem customer deployments. Owned the entire stack end to end.

  • Real-time data ingestion and streaming to browser clients via WebSocket
  • Full-stack SPA feature delivery (AngularJS → React)
  • Automated AWS deployment pipelines for cloud and on-prem
  • Cross-platform mobile development and release pipeline
  • SSL/RSA data protection layer

License & Update Server

2013 – 2018
JavaSpring BootPostgreSQLREST APIs

Built end to end for the core product at Blackpoint. Everybody needs a license server. Sales could register new licenses; customers could register their deployed systems against it. Beyond licensing, the server handled software updates — either pushing automatically or notifying an administrator that an update was available. Single service covering the full customer lifecycle from purchase to staying current.

  • End-to-end build: design, implementation, and production deployment
  • Sales-facing license registration and customer system enrollment
  • Automatic update delivery and admin notification workflows
  • Tied to core product deployment pipeline

Cross-Platform Mobile Communication

2013 – 2018
AndroidiOSJavaWebSocket

iOS and Android communication platform for users connected to the Real-Time Situational Awareness Platform. Enabled field teams to communicate and collaborate across devices in real time. Also included an emergency signaling feature — a user could trigger an alert that surfaced immediately in the situational awareness backend.

  • Real-time messaging and collaboration across iOS and Android
  • Integrated with RTSAP for shared situational context
  • Emergency signal feature with immediate backend notification
  • Cross-platform feature parity between iOS and Android clients

Mobile Signal Collection Platform

2013 – 2018
AndroidJavaGPSWireless

Android application for collecting wireless signals in the field and uploading to the Real-Time Situational Awareness Platform. Battery life was a real constraint — the device needed to run for extended periods without a charge. Collection zones let operators configure geographic boundaries to enable or disable data collection automatically, reducing unnecessary drain and noise.

  • Wireless signal collection on Android with live upload to the situational awareness backend
  • Battery life optimization for extended field use
  • Configurable collection zones — geo-fenced enable/disable of data collection

Radar Simulation Platform

2008 – 2013
JavaJNIC++

Radar simulation work at JHU Applied Physics Lab. The simulations were implemented in Java with performance-critical components in C++, bridged via JNI. Domain accuracy was the hard constraint — the physics had to be right, not just the code.

  • Radar simulation implementation in Java with C++ extensions via JNI
  • High-fidelity physics modeling for defense domain accuracy
  • Performance optimization at the Java/C++ boundary

Performance Assessment System

2008 – 2013
C#WPFJavaScriptGroovyJava

Multi-system performance assessment platform at JHU Applied Physics Lab. Required integrating with various external systems to collect and ingest data. Front-ends in both C#/WPF and web. The core challenge was stitching together data from disparate sources into a coherent view for analysts.

  • C#/WPF desktop front-end for analyst workflows
  • Web front-end for broader access
  • Data collection and ingest services across multiple external systems
  • Groovy multi-system integration test suite