Infrastructure
real-time greeks aggregation: knowing your portfolio delta/gamma at sub-second speed
·2716 words
2:15am wednesday.
still processing this week. the q1 factor attribution post from sunday was cathartic but it also made me confront something i’d been papering over: i was flying blind on real-time greeks for most of march. not completely blind — i had position-level greeks from IB’s TWS feed. but aggregating them into a coherent portfolio view? that was a manual spreadsheet thing i’d run every few hours.
march vol spike: when the risk engine earns its keep
·1429 words
2:30am friday. rough week in the books.
march has been a whole thing. tariff headlines dropping every 48 hours, VIX spiking then partially recovering, nobody knows what SPX does next. january was decent (+2.1%), february went against me (-1.3%). march hasn’t been great either. week ending today, i’m down about $2.3k for the five sessions. month’s probably closing around -1%.
signal decay and execution latency - my hidden edge killer
·1640 words
2:15am on a monday.
been staring at fill data for the past six hours.
march has been rough. not catastrophically down, but underperforming where my models say i should be. january was decent (+2.1%). february was a loss (-1.3%). march was supposed to recover and it’s just… flat.
monitoring and alerting for algo infrastructure - grafana + prometheus setup
realized last month that i had a massive blind spot in my infrastructure: monitoring. my algos were running 24/7 but i had no idea if they were running WELL until i checked PnL at end of day. that’s like driving with your eyes closed and checking if you crashed when you stop.
exchange connectivity layer - handling binance, kraken, and coinbase in one abstraction
·1665 words
one of the most annoying parts of crypto algo trading is that every exchange has a different API. different auth schemes, different rate limits, different order types, different error codes. writing strategy logic for each exchange separately is a nightmare and a maintenance disaster.
async signal generation - why your pipeline is probably too slow
·1590 words
been refactoring my signal generation pipeline for the last 2 weeks. old version was synchronous - fetch data, compute indicators, generate signal, repeat. worked fine when i was running 3 strategies. now i’m running 11 and the whole thing was choking.
redis for market data - why i ditched postgres
·1319 words
moved all my real-time market data from postgres to redis about 8 weeks ago. latency dropped from ~15ms to sub-millisecond. should’ve done this way earlier.
the postgres problem # when i first built my algo infrastructure i stored everything in postgres because that’s what i knew. tick data, order book snapshots, greeks, everything went into timescaledb (postgres extension for time-series).
slippage models - making backtests actually realistic
·1251 words
been thinking about slippage modeling a lot lately. most backtest frameworks have absolute dogshit slippage assumptions - either zero (lmao) or some fixed percentage that doesn’t scale with order size or volatility.
prometheus + grafana - my algo monitoring stack
·800 words
finally got around to documenting my monitoring setup.
been running this stack for almost 2 years now. saved my ass multiple times.
why monitoring matters # had an algo go sideways in march 2024.