Write-ups
Projects
Problem · build · result · what I'd change
Things I have built, and what I learned from each. Written for someone who wants to know whether the thinking was any good, not just what the tech stack was.
DAT‑04
Phone lifecycle analysis
SQL · DuckDB · Python
Year 2026
Status In progress
Code GitHub
The question
[What did you actually want to find out? One paragraph. The strongest version of this names something you genuinely didn't know the answer to — for example, whether the carbon cost of a handset is dominated by manufacture or by use, and whether that differs enough between manufacturers to matter to a buying decision.]
What I built
[The shape of the thing. Where the data came from, how you got it into a usable state, what the schema looked like, what the hard part was. Be specific about the modelling decisions — normalising units across manufacturers who report differently is more interesting than the fact that you wrote SQL.]
What I found
[The result. Include the number that surprised you. If nothing surprised you, say that too — an honest null result reads better than a manufactured insight.]
What I'd do differently
[The most valuable section and the one almost nobody writes. Where the method was weak, what you'd change, what you now know that you didn't when you started.]
SFT‑01
Brilliancy
Expo · React Native · TypeScript · chess.js
Year 2026
Status Submitted to the App Store
Code GitHub
The question
Most chess-puzzle apps hand you a randomly generated tactic with no context — solve it, forget it, next. I wanted the opposite: puzzles that are the real finish of games that actually happened, where solving the position earns you the story behind it, not just a checkmark.
What I built
A curated collection — not a daily drip — of historic chess brilliancies (Morphy at the opera, the Immortal Game, Fischer at thirteen) played out move by move on a hand-drawn SVG board, powered end to end by chess.js for legality and verification. Every position is derived and PGN-verified from a real move list, never typed in by hand.
What I found
The app was originally briefed with a daily-puzzle-and-streak format, and I dropped that mid-build — it would have forced a permanent content-publishing obligation onto a solo hobby project, which fought the calm, unhurried feel I actually wanted. The other real surprise was licensing: the piece-art sets I'd planned to use turned out to be non-commercial and couldn't ship.
What I'd do differently
Wire up drag-to-move from the start rather than shipping tap-only — the gesture libraries were already a dependency for the move animation, so it was mostly sequencing, not scope.
Full write-up, architecture & screenshots →
SFT‑02
UK Tax Companion
Expo · React Native · TypeScript · expo-router
Year 2026
Status Shipped — live on the App Store
The question
The mobile apps in this space from the Big 4 (BDO Germany, Deloitte Germany) are content funnels for the firm's consulting business, not tools built to be useful on their own. Could a solo, independent app do the opposite — genuinely useful, with no incentive to ever redirect you anywhere?
What I built
UK tax calculators (Income Tax, CGT, Take-Home Pay, VAT, SDLT, Student Loan, a Pension Planner and a Sole Trader vs Company comparison), decision tools (IR35, Self Assessment, side-hustle) that export to a shareable PDF, and Tax Radar — a live gov.uk news feed, tagged and ranked by a rule-based engine, personalised to your situation. No login; everything stored is local to the device.
What I found
The published tax rules were the easy part — 144 tests pin every band and edge case. The harder problem was resisting the urge to build a scenario tool nobody had asked a real question of; an early "salary vs dividend" screen and a "unified position" screen were both built and then cut once they turned out to duplicate what already existed without adding anything.
What I'd do differently
Design the personalisation profile (situation → followed topics) from the start instead of retrofitting it after the feed and calculators already existed separately — it's the piece that actually ties the app together.
Full write-up, architecture & screenshots →