Trading Pulse — Automated Futures Trading Infrastructure
operating dailyFour years of designing and building automated systems, culminating in this: a private operation across 8 CME futures roots (equity indices, metals, energies) running 7+ PowerLanguage strategy variants. Signals flow through crash-safe ingestion into FastAPI hubs on Railway, mirrored over HMAC-signed webhooks to live React dashboards and a Telegram signal network, with direct broker execution via the Rithmic bridge in final build-out.
How it works
Problems I solved
- Multi-level diversification, one pipeline. Risk is spread across three axes at once — instrument (8 futures roots), strategy (7+ independent variants, each with its own point-value registry entry), and route (live and paper run as parallel mirrored stacks) — all flowing through a single ingestion and accounting pipeline that keeps per-strategy, per-instrument books.
- Automated contract rollover with back-adjustment. Quarterly CME rollovers (NQM → NQU) silently break naive systems: orders route to expired contracts and history goes discontinuous. I built rollover automation around a calendar-alert scheduler, root-symbol resolution that survives symbol changes (a progressive prefix-match resolver that correctly handles roots-with-digits like M2K, chosen over regex after a 16-case test table), back-adjusted continuity for strategy history, and a 4-phase migration where every step is independently revertible.
- The phantom trade from last session. The charting platform re-emitted a prior session's order verbatim at market reopen — new file offset, fresh timestamp, invisible to normal dedup. Two-layer idempotency fixed it: deterministic hash IDs plus a session-boundary content guard that latches a 5-minute window at reopen, survives restarts, and stays inert mid-session so real repeat signals are never suppressed.
- The stall NinjaTrader can't see. Feed connections would half-open stall: Connected on screen, zero ticks flowing, P&L silently frozen. My C# watchdog AddOn runs its own canary tick subscription against a feed-independent timer, logging backdated stall evidence that drove a staged fix ending in owning heartbeat and reconnect explicitly.
- Delivery you can trust. File offsets advance only after the mirror ACKs; retries back off 1s/3s/9s; a poison line force-advances only after ~5 minutes with a loud alert; every boot prints a receipt of restored state; and an emergency flatten-all kill switch works independent of strategy logic.
Aesthetika — AI Business Operating System for Beauty & Personal Care
live in productionA complete operating system for appointment businesses — salons, lash and brow studios, head spas, PMU artists — live in production with paying tenants. At its center is A.R.I.A, the AI agent that answers real phone calls, books appointments, transfers to staff, and follows up by SMS, with per-tenant voice, greeting, and speech vocabulary resolved on every call.
Platform features
Engineering highlights
- What happens when the voice vendor 500s mid-sentence? Layered dead-air floor: structured alarm, automatic re-synthesis, then watchdog-triggered fallback audio pre-rendered in the tenant's own voice, with sequence guards so a late retry can never talk over healthy audio.
- Dropped connections resume the same conversation — session registry keyed on the stable call ID, cached voice so it never changes mid-call, greeting suppressed on reconnect.
- Transfers never leak the bot. A triple-signal gate keeps the AI pipeline off staff phone legs; ring-outs and failed dials speak honestly different recovery lines and page staff automatically.
- "Slow is not failed." A turn timeout doesn't hang up, because the booking may have already persisted — a real booking was once clipped by 13 milliseconds. Timeouts speak "Just a moment…" and keep the call alive.
CourtPilot — Multi-Tenant Booking & Club Management SaaS
pilot deploymentA booking platform that understands courts, deployed with a multi-location badminton facility as its pilot club. The end goal is bigger than software: we're building toward the first fully unmanned badminton facility — AI answering every channel, members booking, paying, and checking themselves in with no front desk at all. First AI-made booking on a real court: confirmed.
Platform features
Engineering highlights
- Double-booking is impossible, not unlikely — a Postgres EXCLUDE constraint backstops app-level checks, so no concurrency pattern can create overlapping bookings.
- The payment-hold race. Expired-hold sweeper vs late webhook success is a real race; the residual case auto-refunds idempotently with an audit trail, and failed refunds page a human.
- Money math that refuses to guess. Integer cents everywhere; bookings straddling peak boundaries price pro-rata per segment; a missing price rule returns an explicit error, never silent free.
- Jobs without queue infrastructure. In-process loops with FOR UPDATE SKIP LOCKED claiming keep multiple replicas from ever double-sending, with no Redis or SQS to operate.
ScoutWire — AI Reel Studio & Recruiting Platform
early stageA membership platform for college-bound athletes: AI fit-matching against ~600 college programs, shareable profiles with a US program-map explorer, admin-curated warm intros to schools, and a Reel Studio that turns raw game film into captioned, branded highlight reels automatically. Third product generation on the reusable multi-tenant SaaS core I extracted from the first two.
How it works
Engineering highlights
- A render farm with zero queue infrastructure — Postgres row locking does the job claiming; the stale-claim reaper path runs on every crash, so recovery is routine, not an incident.
- Portable native binaries. whisper.cpp crashed with illegal instructions on some cloud hosts; fixed with GGML_NATIVE=OFF and static linking, model baked into the image so cold starts never fetch over the network.
- Fail-closed everything. Unset webhook secrets reject all events; reset tokens are signed with a different key than sessions; the payment funnel never lets the client pick a price.
I'm an architect first. Before anything gets built I decide what the system is: where the boundaries sit, what the failure modes are, what has to be true when a connection drops mid-transaction or a vendor returns a 500 in the middle of a customer's sentence. That thinking is what these systems are made of. Every hard problem on this page — the session-boundary guard, the transfer gate, the payment-hold race, the render-farm crash path — was a design decision before it was code.
Then I pick the tools that fit the problem, and I bend them to it. Postgres row locks instead of a queue service, because the job semantics I needed were already in the database. A charting platform's file output as a signal bus, because it was the only atomic seam it exposed. A native transcription binary compiled to run on hardware I don't control. AI coding agents, directed under audit gates, merge gates, and acceptance-test suites, because that's the highest-leverage instrument available right now — and I've spent four years learning where every one of these tools breaks.
The result is one person shipping at team scale, and systems that hold. No framework worship, no infrastructure I can't justify, no dependency I haven't read. I build what the problem actually requires, then I run it in production and fix what reality finds.