I ship native iOS/macOS apps — a movie-maker, a media player, a live-translation app — and design and run an autonomous trading system live on a VPS, each with an AI engineer sitting next to me, not instead of me.
Claude is my tool. I am the engineer. I write the specification, make every call that matters, and verify each result against real data before I trust it — Claude writes and edits the code, on a live production server, under my direction. The division of labour is deliberate; the accountability doesn't move. If something's wrong, that's on me, not the tool.
LIQ ZONE WATCH went from an idea in conversation to a filled live trade in one session — the log above is its first fill, hours old.
My ML filter started blocking entries with 26% predicted win probability — the real outcome was 97%. I traced it, then permanently redesigned the model's role so it can never happen again.
My own backtesting logic was quietly optimistic — it never checked whether a stop-loss would've been hit along the way. I rebuilt it path-aware before trusting its numbers again.
Blocked signals were scoring 73–94% hypothetical win rate against a real 48.8% live rate. Root cause: the simulator never modelled the real bot moving its stop to breakeven after TP1. Fixed the simulation to match the actual position lifecycle.
The bot kept favouring SHORT setups on BTC through a real uptrend. Root cause: a 200-day moving average still anchored to price the market had left behind weeks earlier. Added a bounce-check that treats a stale trend reading as neutral, not a bias.
A position-recovery path was silently reusing generic stop/target math instead of each symbol's real parameters. I traced the exact numbers through the logs, corrected a live position, and confirmed the fix days later — the trade above closed at exactly the take-profit price it restored.
The tool changed. The responsibility for being right didn't.
The same discipline shows up in both codebases: don't patch the symptom, trace it back to the actual mechanism, then verify the fix against real data — not a re-run that just happens to look better.
20 minutes → under 10 seconds. A single travel-video export could run long enough to get the app killed by iOS under memory pressure. Rebuilt the export pipeline around it; the same route now finishes in under 10 seconds, verified on-device.
–$54.63 → +$0.14. A stop-loss order could silently fail to place, leaving live positions unprotected. Added a market-close fallback after 3 failed attempts; hour-by-hour P&L on that exact failure mode flipped from a loss to breakeven-positive.
A native movie-maker for iOS and macOS — turn a photo/video library and a song into an edited, exportable film, built as two separate native apps rather than one compromise codebase.
An autonomous multi-asset trading system — crypto perpetuals, metals, and US equities — live on a VPS, twenty-four hours a day, since May 2026.
A native macOS & iOS media player, SwiftUI-first, built in the spirit of the classic Winamp — the same build-with-AI process as PMQuant, tested outside of Python and outside of trading. Public preview and mailing list at macamp.duckdns.org.
A native iOS live-translation app — speak in one language, the other side reads or hears the other. Built on Apple's on-device Translation and Speech frameworks: no API keys, no per-request billing, no data leaving the phone.
Quant developer, trading-systems engineer, fintech backend, or iOS/Swift engineering roles — London or remote. Open to a first conversation even if you're just exploring whether this direction fits.
Custom trading bots, strategy automation and backtesting, exchange API integration, or native iOS/macOS apps — available for project-based work.