Insights · Notes · Projects

Thinking in public, carefully.

Short technical notes on the problems I work on. Options analytics, forecasting, and the quiet craft of building systems that keep running. Open any note to read it.

01 Technical notes

Notes from the desk

Options · Market structure

Why dealer gamma exposure moves the market you trade

Most retail traders watch price. Dealers watch their books. When market makers carry large positive gamma they sell rallies and buy dips to stay hedged. That dampens volatility. When gamma flips negative their hedging does the opposite and moves get amplified.

Gamma exposure, or GEX, is an attempt to estimate that aggregate dealer position from open interest. It is an approximation with real assumptions baked in. You have to guess who is long and who is short each strike. Still, tracking the sign and the concentration of exposure around key strikes tells you a lot about how a session is likely to behave.

On my platform I compute GEX across roughly one hundred tickers throughout the trading day. The most useful signal is rarely the level itself. It is the change. When exposure migrates from one strike cluster to another the character of intraday price action often shifts with it.

Options · Greeks

Vanna and charm, the second-order Greeks worth your attention

Delta and gamma get all the attention. But two second-order Greeks quietly drive a lot of hedging flow. Vanna measures how delta changes when implied volatility moves. Charm measures how delta decays as time passes.

Why care? Because dealer hedges respond to both. A drop in implied volatility changes dealer deltas through vanna and forces rebalancing even when spot has not moved. Charm does the same thing on a clock. It is one reason flows cluster around expiration dates.

Computing these across a full universe of tickers taught me a practical lesson too. Analytic Black-Scholes derivatives are cheap to evaluate but the data pipeline around them is the hard part. Getting clean chains, consistent implied vols and a sane treatment of dividends matters more than the calculus.

Trading · Systems

Lessons from automating a delta-neutral strangle strategy

Selling strangles looks simple on paper. You collect premium from both sides and manage the position back to delta neutral as the market drifts. The hard part is deciding which strangles are worth selling and when to walk away.

I ended up building efficiency ratios from the Greeks themselves. Theta over gamma tells you how much decay you earn per unit of hedging risk. Vega over theta tells you how exposed that income is to a volatility spike. Ranking candidates by these ratios in real time turned a discretionary process into a systematic one.

The biggest lesson had nothing to do with math. An automated strategy is only as good as its failure modes. Timeouts, stale data and half-filled orders will find you. Design for them from day one.

Engineering · Python

Keeping Greeks fresh: a two-loop pipeline on a small budget

Real-time options analytics sounds like it needs expensive infrastructure. It does not, if you separate what truly needs to be fast from what does not. My platform runs two loops. A slow loop refreshes full option chains on a schedule. A fast loop re-computes gamma and dealer exposure intraday from cached chains and fresh spot prices.

The stack is deliberately boring. Flask serves the dashboard. APScheduler drives the loops. SQLite in WAL mode handles concurrent reads while writes stream in. A thread pool fans out per-ticker computation and Cython accelerates the pricing engine where profiling said it mattered.

The result runs all trading day on a single small EC2 instance. Boring technology, chosen carefully, is a feature.

Forecasting · Retail

What options trading taught me about demand forecasting

Markets and merchandise have more in common than people think. Both punish overconfidence. A demand forecast is a position and inventory is the cost of being wrong. Buying deep into a seasonal SKU is not far from selling a naked option. The upside is capped and the downside shows up in the clearance bin.

Trading taught me to think in distributions rather than point estimates. In planning that translates to buying to a confidence band, protecting the downside on volatile styles and letting proven sellers run. It also taught me to respect the base rate. Last season's sell-through is a better prior than this season's enthusiasm.

The tools differ. The discipline is the same. Size your bets, measure your errors and never fall in love with your forecast.

Analytics · Practice

Dashboards people actually open on Monday morning

Most dashboards die quietly. They get built, demoed once and never opened again. The ones that survive share a trait. They answer a question someone already asks every week, faster than the old way of answering it.

My rule when building executive reporting is to start from the meeting, not the data model. What number gets asked for first? What comparison settles the argument? Build that view first and make it load fast. Depth can come later as drill-downs for the few who want it.

The second rule is to automate the refresh completely. A dashboard that needs manual care becomes stale the first busy week. Stale once, distrusted forever.

02 Projects

Things I've built

GEX Options Framework

Completed in 2025

A rules-based intraday options workbench built on dealer gamma exposure, the mechanical hedging force that decides whether a market pins, trends or whipsaws. Five linked tools carry a morning exposure read through to a sized trade: regime classification with entry specifications for four strategies, an eight-signal confluence scorecard, charm timing for 0DTE, option pricing on a calibrated volatility smile, and position sizing with expectancy, break-even hit rate and a Monte Carlo risk of ruin. One HTML file, bilingual, no dependencies and no network.

Vanilla JSBlack-Scholes Volatility smileMonte CarloSVG charts
View project

Effective Risk-Free Rate

Completed in 2025

An effective risk-free rate engine for the United States and Canada. It bootstraps a government zero curve and an overnight-anchored curve for each market, then returns the rate for any maturity in the exact convention each use needs, continuous ACT/365 for option Greeks, semiannual for bonds and simple ACT/360 or ACT/365 for money markets, plus implied forwards. A daily GitHub Action rebuilds the curves from New York Fed, FRED and Bank of Canada data, and all the pricing math runs in the browser.

PythonNY Fed API FRED APIBank of CanadaVanilla JS
View project

Portfolio Tracker

Completed in 2023

A full-stack tracker for a mixed CAD/USD stock portfolio. It records trades and cash flows, applies dividends, splits and historical FX, then computes both time-weighted and money-weighted (XIRR) returns, risk metrics, and a comparison against the S&P 500, Nasdaq 100 and S&P/TSX 60. FastAPI, SQLAlchemy and SQLite behind a bilingual React front end.

FastAPISQLiteReactTypeScript
View project

Nasdaq-100 Fundamentals

Completed in 2021

A live dashboard for the fundamentals of every Nasdaq-100 company, built end to end from free public data. Ten years of SEC EDGAR financial statements, valuation ratios, an interactive DCF and direct links to every filing, with up to six companies compared side by side. A nightly Python pipeline normalizes the data into SQLite and exports per-company JSON that renders in the browser with Chart.js.

PythonSQLiteSEC EDGARChart.js
View project

Market Structure Dashboard

Completed in 2021

A live dashboard of the macro and market indicators that define the regime, built entirely on free Federal Reserve Economic Data. Rates and the full Treasury curve, the volatility complex, credit spreads, FX, commodities, inflation and the labor market, back to 2010. A twice-daily GitHub Action refreshes the data with the API key kept as an encrypted secret, and the browser reads static JSON with a bundled Chart.js.

PythonFRED APIGitHub ActionsChart.js
View project

Want to go deeper on any of these?

I am happy to share methodology details or compare notes with fellow builders and traders.