Writing
Notes from the work.
The longer story behind each chapter: what I built at Nokia, IBM, and Print.World, the projects I ran on my own, and the research that proved me wrong. Private work stays at a level of detail I'm comfortable sharing.
- Trading the gap in CS:GO skinsThe first market I ever traded was a video game's. How instant-cashout sites created a knowledge gap, how I later played spreads between North American and Chinese marketplaces, and why the setup itself was the moat.
- Designing for the retryAny code that moves money will eventually run twice. The design rules I use so that "twice" is always harmless, with the state machines and diagrams behind them.
- One quote, every bridgeHow BRDG asks every bridge that can serve a route, ranks quotes by what you actually receive, and the bugs that shaped its sanity checks and transfer tracking.
- Fix our websocket server, or adopt one?Our in-house websocket layer was struggling with live perps order books. The bounded fixes looked cheap, adopting Centrifugo looked expensive, and the decision came down to which one I'd still trust in six months.
- One book, many venuesBuilding a perpetual futures aggregator at Print.World that merges 21 venues into one order book, routes against real depth, and never places the same order twice.
- Nights and weekends on SolanaHow a side interest during my IBM internship turned into an automated pump.fun launch pipeline, fed by a paid real-time X feed, from a post on X to a landed Solana transaction, measured stage by stage.
- The missing 300msMy real-time multimodal model for scoring a social feed was lagging by a few hundred milliseconds, and measuring every stage across 72,830 calls showed the cause wasn't where I expected.
- ClickHouse or RocksDB?When our trade and candle history outgrew TimescaleDB, ClickHouse looked like the obvious next step. I argued the case for RocksDB anyway, to make sure "obvious" meant "right". Here's how the comparison came out.
- Taking the lock off the hot pathBuilding a stress harness for our Rust market-data processor, finding a global mutex hiding behind a cache, and what changed when I replaced it. Throughput up a third, p99 down from 139ms to 40ms.
- Racing relays without paying twiceAn independent execution engine that turned social signals into on-chain trades, and how it raced several relays at once while guaranteeing only one trade lands.
- The terminal and the engineJoining Print.World to work on the Rust trade backend under a crypto trading terminal, and the first problems that taught me how it really behaves.
- Sixteen months at IBMCI/CD for Watson, then telemetry, then building Watson Code Review, an LLM review service on RabbitMQ and OpenShift. KV caching, when to re-run a review, how results reach developers, and how it scaled.
- Keep the failing tracesAdding OpenTelemetry to Watson serving at IBM, and why I biased sampling toward errors and slow requests instead of sampling uniformly.
- Four months in KanataMy first internship, at Nokia, writing C++ for a packet-inspection test harness, SIMD signature matching, and the CI that kept test networks honest.
- How I got hereMinecraft mods, a video-game skin market, and why the gap between a quoted price and the price you actually get became the thread through everything I build.