Shopify · 2020 to now
Six years at Shopify.
Platforms other engineers depend on. Three teams, three moves.
- 1.2020Online Store and ThemesGit-based workflows for themes, and the first GitHub integration that let a merchant’s developers treat a theme like code.
- 2.2022Oxygen, storefronts at the edgeRe-architected hosting into event-driven services and moved every merchant without a regression. Production traffic replayed against every pull request.
- 3.2025Platform Infrastructure, Job PlatformThe datastore under every background job, moved to a replicated cross-region one. The failover path, the first live cross-region transfer, the guards against split-brain.
Senior software engineerRuby, Go, Lua, Kubernetes, Cloudflare
The work, by shapeVoice and text in; todos, events, people and ideas out, with a citation on every answer. One table of captures, a worker that extracts with one schema and one repair, hybrid retrieval fused by rank, and evals that fail the build when quality drops.
On my phone since September 2026Expo · FastAPI · Postgres · pgvector
Walk through memo

A native SwiftUI app on the same server stack as memo. One cached catalog, with hours and moments computed on the phone; row-level security in the database; Nuit Blanche and the Marathon re-skin the app as data.
TestFlight · October 2026SwiftUI · MapLibre · row-level security
Walk through Ravine

Co-founded with Cory. Voice platforms and clinical co-pilots for funded startups, fixed scope and fixed price. memo and Ravine are made here.
coraki.devToronto
The studioThe decisions · 83 written down
The decisions.
The problem, the options, what each costs, what we picked, what we accepted, when we would revisit.
- memo 0005Hybrid retrieval, fused by rank, not pure vector search.!!
- memo 0015The schema constrains the model. Semantic failure is terminal after one repair.!
- memo 0017Chunking depends on length. A short note is one chunk.!
- memo 0045The database answers the structured part. Retrieval answers the rest.!!
- ravine 0001A native Swift app on memo's backend.!?
- ravine 0004Row-level security, in the database.!
memo 0001 to 0070Ravine 0001 to 0013
Read all of them
