Case files
Most of my work is for Automattic partners and internal teams, on sites and systems I can't show. Each case gives the problem, what I did and what changed, using the figures from the work. Clients are named only where the work is already public.
2024 · A major design publication
Moving a 360 GB media library off a paid CDN
$6,000+/mosaved, with zero downtime and no broken media
- Problem
- 425,000 files across 21,000+ posts lived on a third-party image CDN that cost thousands a month.
- Did
- Wrote custom WP-CLI commands, REST processing, SQL and multithreaded Python to classify, convert, resize and re-upload every file, and rewrote post content and metadata to match, all on the live site.
PHPWP-CLIPythonSQL
2026 · WordPress.com Special Projects
Site-down alerts that stopped getting lost
~445sites moved to a direct alert path
- Problem
- Downtime alerts travelled email → help desk → an internal relay, and some never arrived.
- Did
- Built a monitoring webhook receiver in the team's ops platform and registered it on ~445 sites. When the SMS path misfired, the fix was up the next morning.
PHPWebhooksMonitoring
2025–2026 · Fleet tooling
Finishing a stalled fleet rollout, then adding bot protection
100%of partner sites on Atlantis by July 2026
- Problem
- The team's fleet-management plugin had been half rolled out for a year, which blocked other work.
- Did
- Drove the rollout to completion, then shipped 1.2.0 (bulk status API, CLI commands, an MCP helper) and 1.3.0 (bot protection, live on every Pressable-hosted site). Checked internal tools wouldn't be blocked and got the owning team to move their switch under it.
PHPCLIMCPE2E tests
2026 · WordPress.com translation platform · team of two
From a 2018 GlotPress fork to 4.0.3 in four weeks
60+ PRsin four weeks, with AI translations shipped
- Problem
- Translation infrastructure ran on a GlotPress fork frozen in 2018, with 53 custom plugins on top.
- Did
- Wrote the foundation (scaffold, loader, core patches), ported 15+ of the plugins, and fixed two data-integrity bugs along the way.
PHPGlotPressLLM
2025–2026 · A long-running culture publication · 13 months
Using an LLM to decide which of 109,000 images to keep
~12Kstaff photos kept, ~97K third-party images removed
- Problem
- A copyright request covered a huge archive, and the scope changed four times.
- Did
- Wrote an LLM attribution script to separate staff shots from third-party images, recovered 350 video thumbnails from backups, and traced missing search thumbnails to a Jetpack Sync race, fixed across ~13,900 posts.
LLMWP-CLIData
2024 · A city-guide site
Event search from 40 seconds to a tenth of a second
40 s → 0.1 sper search
- Problem
- A single event search took about 40 seconds.
- Did
- Replaced the query with a lookup table held in the object cache, simplified the SQL and moved filtering into PHP.
PHPSQLCaching
2025 · opensource.org
A press-page automation the client could run without us
Handed overrunning in the client's own Make account
- Problem
- New press mentions were added by hand from a shared spreadsheet.
- Did
- Built a Make scenario from sheet row to WordPress post. Neither Make nor Zapier could fill the custom fields, so I moved them into the site's plugin and mapped a hidden field to the taxonomy. Fit it inside the free plan, then removed our own data connection.
Public: OpenSourceOrg/dotOrg #116
MakeREST APIPHP
2024 · Automattic Special Projects
The team's first plugin on WordPress.org
800+active installs of Query Loop Load More
- Did
- Took the plugin through WordPress.org review and release, and documented the process for the team. Later finished, published and wrote the launch post for the Send to Substack browser extension (2025).
Public: WordPress.org listing · specialprojects.automattic.com
WordPress.orgGutenbergJS
2024 – present · Turtle Signals platform
Production Python services delivering signals to subscribers
~500S&P 500 stocks, plus 36 crypto pairs around the clock
- Built
- Flask services for signal generation and results; Telegram delivery; a REST pull API for trading bots; an HMAC-signed webhook service with retries and dead-lettering; a heartbeat watchdog. Runs on Google Cloud with Secret Manager.
PythonFlaskGCPWebhooks
2026 · Personal
A live equities system, from universe to execution
~5,400stocks in the universe pipeline; rebalances a live account monthly
- Built
- A universe pipeline, walk-forward and Monte Carlo-validated backtests, and a FastAPI execution server that rebalances an Interactive Brokers account on systemd timers, with Telegram alerts.
PythonFastAPIpandassystemd