Backend and data systems
Services and pipelines that take data in, validate it and keep it, with typed contracts between the parts.
I build backend services and data pipelines, and I work below them too: custom engines, machine code and legacy hardware.
Now at Space Interactions, on the services and pipelines behind satellite and orbital data.
Services and pipelines that take data in, validate it and keep it, with typed contracts between the parts.
Software for work that runs on real rules: orbital data, field-service scheduling and mapping, and SMS compliance.
Custom engines, firmware, reverse engineering and machine code, down to 6502 and x86 assembly.
Where the three meet is the work I like best: understanding an unfamiliar system, keeping it reliable, and connecting it to modern software.
Backend platforms, operational software and systems internals, from a space-domain awareness platform to 6502 and 65816 assembly.
A space-domain awareness platform. I build the services and pipelines that bring in satellite and orbital data, and the views that show it.
I built Rust and MongoDB back-end services for the platform's data operations. I also develop and extend the TypeScript and Electron frontend that visualizes the data, and I design the 3D models that the orbital views are made of.
Work orders, scheduling, job maps and dispatch, in one platform for a field-service team.
As software lead I automated the data integration behind it: work-order history and scheduling, GPS maps of jobs and company vehicles, and messages between field workers and dispatchers. I also pulled point-of-sale data into Google Calendar, so the whole company scheduled from one place.
Data-integration and automation tools that small businesses run on every day, and a network monitor with its own iOS app.
The Relay suite is in daily production use at a regional appliance-service company. RelayPing watches networks and reports to an iOS app that is in production, and a custom data-compression scheme keeps the bandwidth it needs low.
Reverse engineering old software & hardware, then rebuilding and upgrading them.
I have built compression and decompression tools for 6502 and 65816 software, and a modding tool for graphics, palettes and 65816 assembly. Currently, my primary personal project is developing for the SFX-100, the SNES CD prototype also known as the "Nintendo PlayStation".
A 3D voxel space sim, on a custom engine that I wrote and then moved from XNA to SharpDX.
As engine lead I built the engine's internals: the 2D and 3D rendering pipelines and their shaders, the font rendering, the asset loading, the netcode and the modding support.