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 →