/ BLOG

Build-in-public, open notebook.

A running log of what I've built, what I've tried and dropped, and what I've looked at and decided not to touch. As much for me as for anyone else. Filter by topic, or search inline.

⌘K
trading
bets won
93.2%
wallet
−5.71%
01 SEPT · 7 MIN READ

I won 93% of my bets and still lost money.

40 days, 2,695 settled trades, real money. My best strategy won 93.2% of its bets and still finished down.

llm
4 of 26 active
25 AUG · 5 MIN READ

Your Mac isn't short of memory. It's short of bandwidth.

I run a 26 billion parameter model on a laptop. Only 4 billion of it works on any given word, and that unlocks a complete new world.

trading
ask0.6700000taken
you0.6699988miss
you0.6699988miss
you0.6699988miss
no orders found to match
25 AUG · 5 MIN READ

My best trader was a bug. I spent a week killing it.

Five of six orders came back empty. I blamed the market. The market was innocent and my own maths was a hair too cheap.

llm
24 AUG · 9 MIN READ

Local LLM on a Mac in five minutes: oMLX + Gemma 4

Ollama took 126 seconds, whereas oMLX only took 1.8 seconds. How I run a free ChatGPT on my own Mac, and what it does for me all day.

tradingcrash removed
20 AUG · 5 MIN READ

Banks delete the crash, then sell you the chart.

My backtest handed me a Sharpe ratio of 9. That is not a result. That is a receipt for something you did wrong.

trading
coin flip5.2
?money1.02
12 AUG · 5 MIN READ

I lost 122 times on Polymarket so you don't have to.

340 settled trades. One test says I beat a coin flip. The other cannot tell whether I make money.

trading
$ book --winrate
90 closes · 60.0% win
breakeven needs 60.61%
avg loss 1.54× avg win → half a trade from flat
04 AUG · 4 MIN READ

60% right and still losing. That's forecasting.

90 trades, a 60% win rate, and a book half a trade from flat. Why I swapped open-ended forecasts for 300-second windows.

infra
$ curl caldav.icloud.com
→ free-busy-query: rejected
→ expand: 21 days of slots
calendly · $144/yr$0
31 JUL · 4 MIN READ

Calendly doesn't want you to know your calendar is an API

Booking tools rent you back your own data. Mine reads iCloud over CalDAV, prices bots out in layers, and attacks itself on every deploy.

trading
$ book --settled
Jul 31 deal → 18 Jun 00:32
Aug 31 deal → 18 Jun 00:38
Oct 31 deal → 18 Jun 00:37
Dec 31 deal → 18 Jun 00:38
30 JUL · 5 MIN READ

I bet civilisation ends by Christmas. Peace broke out.

Four Polymarket contracts, four deadlines, one settlement inside six minutes. The risk was never correlation. It lived in the resolution rules.

infra
$ mail --headers
dkim=pass · spf=pass · dmarc=pass
→ spam: "similar to messages"
3 strings deleted · inbox
28 JUL · 5 MIN READ

I saved you $4,200/year and it'll bankrupt Mailchimp

Gmail binned my newsletter while every check that proves a sender is genuine passed. The first of three failures, and every one reported success.

trading
$ book --pnl
34 trades · 69% win · +0.85%
1 tweet · 6 correlated stops
book flipped · -0.9%
22 JUL · 5 MIN READ

One tweet blew up six of my Polymarket trades overnight. The model was never the problem.

My local-LLM Polymarket system hit a 69% win rate, until one tweet flipped the book overnight. The model was never the problem. So I changed the game, in public.

trading
price historyfree
fundamentalsfree
newsfree
15 JUL · 5 MIN READ

My trading bot has a hedge fund data stack on a garage-project budget.

The whole analysis brain runs on free, delayed data. I pay for exactly one feed: the live options chain an order actually touches.

agents
$ atlas callers fetchProposals
↻ re-index 1 dirty file · 20ms
✓ 3 callers · fresh · 8ms
07 JUL · 4 MIN READ

8 milliseconds. Claude Code used to take almost three minutes to find a file.

I replaced a 69,000-line code tool with 4,090 lines of Rust in a day, because a stale code graph is worse than none.

agents
#1authorcost-first
#2reviewerindependence
#3testermultimodal
#4stager1M ctx
#5pixel judgehard gate
18 JUN · 5 MIN READ

Five roles, one hard gate

Most run-phase chains optimise cost. One enforces a hard gate, because getting it wrong would ship a UI bug nobody saw.

agents
#1interviewercost-first
#2cartographercost-first
#3designerquality-first
#4panelcost-first
17 JUN · 5 MIN READ

Four roles, one frontier hire

Most jobs in a planning pipeline do not need a frontier model. Picking the right one per role saves an order of magnitude. One job earns the splurge.

agents
#1evidence
#2diagnose
#3propose
#4select
#5apply
11 JUN · 4 MIN READ

Porting RHO when you're not actually in the dark

Porting Retrospective Harness Optimisation into a harness with real gate outcomes. What the label-free recipe buys you, and what to swap.

agents
#1harness cross-check
#2delta re-verify
#3specialist fan-out
#4risk tiers
#5model routing
#6evidence bundle
#7doom-loop break
#8false-pass evals
09 JUN · 4 MIN READ

Porting Cloudflare's $1 code review into my custom agent harness

Eight techniques from Cloudflare's multi-agent code reviewer, ported into the integration-verify gate of my custom agent harness. What transferred and what I had to write down myself.