Tech Enabled, Solutions Oriented
Software & Support Engineer
I think of documentation as a radical act of empathy from my current self to the future self who will not have a Ouija board.
Seven-plus years building and debugging software on federal, clinical, and commerce platforms, in React, Python, and SQL.
What I Do
Building Software
At Trove I designed and shipped internal apps in React, Python, and SQL, and cut their load times by five seconds on average. I also rebuilt the warehouse photo pipeline below. Before that I was a software engineer at AIS, working in Python, JavaScript, and C#.
Troubleshooting
When something looks wrong, I trace it until I know why. At Cogstate that means following data through Azure microservices, SQL Server, and Cosmos DB, usually with a lot of KQL. Once I find the cause I write it up, since the same thing tends to break twice.
Documentation and Training
A knowledge base I built cut repeat requests 15% in three months, and onboarding docs I wrote took five hours off a new engineer's ramp-up. At Cogstate I write the runbooks for failures we've seen before. Training I ran cut escalations 30% at two different companies.
Automation
If I do something by hand twice, I start writing a script for it. That's turned into maintenance automation that gave a team back 30 hours a month, a data collection process that saved 200+ hours a year, and the warehouse photo pipeline below.
Feeding Tickets Back to Product
I read support tickets in bulk to see what keeps coming up. At Trove, that turned into three shipped features and 25% fewer repeat requests within six months.
Stack
Languages
Front End
APIs and Services
Data, Cloud, Observability
Workflow
Case Study
A Shutter-to-Retouch Photo Pipeline for Warehouse Operations
The Situation
Every item that came through Trove's warehouse needed photos, metadata, and notes before it could be listed for resale. Team members were often juggling arcane bugs between CaptureOne, the warehouse cameras, item records, Google Drive, and the retouching service, and less technical team members were often left with tickets open for weeks with zero recourse.
The Approach
I rebuilt the capture app in Python and Tkinter, with AppleScript connecting CaptureOne to the warehouse cameras. One keystroke saved the photo, its metadata, and the item notes together. Every shot went straight to Google Drive, and a cron job moved files to the retouching service and back.
The Result
The new app improved partner onboarding. Photographers could keep their hands on the camera, and metadata stopped going missing between systems. I also wrote documentation for the app and added telemetry that tracked myriad things, because I wanted all the information I could get about how it was running.
Projects & Ideas
Earworm
BuildingWhatever song is stuck in my head usually means something, so I built a place to log it: the song, plus whatever it dragged up. Each month's notes turn into a word cloud of what I kept coming back to. React, TypeScript, and Vite. It saves to the browser for now, and a real backend with Clerk auth is next. Source
NYC Taxi Pipeline
ShippedAn ELT pipeline on NYC's public taxi trip data. DuckDB reads the Parquet files straight from NYC TLC's servers, dbt turns them into daily and hourly marts, and schema tests run on every build. It all runs in a GitHub Codespace, and the docs site is generated from the pipeline. Source · Docs site
HTTP Server from Scratch
BuildingAn HTTP server in plain Python, through CodeCrafters: parsing raw requests, routing, headers, and responses, all by hand. I work with HTTP servers every day and wanted to know what one is actually doing.
InfernalOps
PrototypeHell has a backlog. InfernalOps is the internal tooling: a Python task system for the underworld's administrative staff — souls onboarded with unique IDs, burdens assigned, updated, reassigned, and on rare appeal removed. Somewhere between The Good Place and the bureaucratic-afterlife genre in Chinese fiction, where damnation is mostly paperwork and the clerks are behind on tickets.
Filler Arc
In the notebookA journal for what I watch — films, shows, anime — built on the instinct to document anything that induces frisson, or even just a thought. Rewatches are first-class: every viewing gets its own entry, so the eighth time through a film sits beside the first, and you can see what changed. (Research to date: eight viewings of Sinners, written up every time.)
Trajectory
Application Support Engineer · Cogstate
I own technical investigations end to end across the distributed Azure microservices behind clinical data pipelines — where accuracy has scientific consequences. Tracing data from creation to the report where it surfaced wrong, then turning findings into remediation plans, runbooks, and summaries leadership can act on.
Product Support Engineer · Trove Recommerce
I shipped custom applications in React, Python, and SQL and was the technical escalation point on a platform moving 500,000 transactions a day. I handled tier 2 and 3 escalations for partners, and ran the feedback loop from their tickets back to the product team. I also created tutorials and provided day-of support for product releases as the primary subject matter expert for triage.
Next-Gen Research Engineer · Accenture Federal Services
I owned SharePoint deployments start to finish: requirements, deployment, testing, and sign-off. I also worked with Matterport 3D capture, Microsoft HoloLens, and Skydio drones, and researched emerging technology for leadership, including early evaluation of ChatGPT. The work was recognized with a Department of State award for delivery.
Junior Software Engineer · Applied Information Sciences
Worked with senior engineers on design, development, and testing for client applications in Python, JavaScript, and C#. Resolved 100+ bugs and helped deliver five major projects ahead of schedule. Automating routine maintenance gave the team back 30 hours a month.
Technology Consultant · Guidehouse & CGI Group
I managed the product backlog on a $6 billion federal project, built my first RESTful API integrations, and supported 11,000+ users. Streamlining the data collection process saved 200+ hours a year.
Now
At Cogstate
I'm an application support engineer, and the job covers several roles at once: senior support engineer, systems analyst, and production steward for the distributed Azure services behind Cogstate's clinical trial data. I trace data from the moment a trial participant is created to the report where something surfaced wrong, across SQL Server, Cosmos DB, Databricks, and App Insights. The SQL and KQL I write is how I find race conditions and architectural bottlenecks.
When something goes wrong in production, I size the risk, write the remediation plan and the Jira tickets, and summarize it for leadership. I work with product, science, DevOps, engineering, client support, and outside partners.
Building
Earworm, this site and its blog, and a small Claude Code clone through CodeCrafters, working up to the tool-calling loop. I build with Claude Code, and writing my own version is how I'm learning what it's actually doing.
Data Engineering in an AI World
The pipelines, data quality, and observability that AI systems depend on. My day job is already data integrity work across Databricks, Cosmos DB, and SQL Server, and the NYC Taxi pipeline is where I practice dbt and DuckDB.
AI-Assisted Engineering
How assistants like Claude Code change what one engineer can own, and how much of a support queue an assistant can handle well before it needs someone who knows the system.
Get in Touch
I'm looking for support and solutions engineering roles where the customers are developers. If that's what you're hiring for, I'd like to talk.
Connect on LinkedIn