Software products,
shipped end to end.

Twenty years putting AR and planning software on factory floors, now in two products built with Claude.

Wattlas

European electricity, explained.

36
views, grouped as eight questions
6
bidding zones compared at once
2×
rebuilds a month · 1st & 15th, 05:17 UTC

Eight plain questions about European power, answered by thirty-six views pre-computed from open data on a fixed schedule, with no backend to keep alive.

Wattlas Pulse view: the duck curve
pulse · the duck curve, €48 at midday to €152 in the evening
Wattlas comparing four bidding zones
zone compare · Germany against France, NL and Austria
The Daily Rhythm

When does power move? The duck curve, the daily spread, negative prices, capture price.

What's on the Grid

Generation mix, carbon intensity, residual load, and when gas sets the price.

Geography of Price

Where power flows and why prices split, in Germany, France, the Nordics and the UK.

When the Grid is Tested

Dunkelflaute, storage economics, adequacy, and how far the day-ahead forecasts miss.

The Bill

What flexibility is worth, and how a megawatt-hour becomes your monthly bill.

The Charge

Where Europe's cars and first electric trucks plug in, what a charge costs, and how much of the network is built.

The Load

Data centres, a flat line for a decade until AI: what they draw, what a token costs in energy, and where that power comes from.

The Build-out

What gets built, and how fast: solar and wind capacity by country and year, and how much of the time it runs.

StockScore

Retired for now

Score the business. Read the market.

100
point score, fully shown
2
scoring engines · stocks & ETFs
3
score-free surfaces: sentiment, IPO, events

One number for the business: 100 points across quality, value and moat. Around it, a score-free read on sentiment, IPOs and events. Each score shows its working: the figures behind every pillar, and how complete the data is. It is retired for now; the screenshots show it as it last ran.

StockScore scorecard for NVDA
the full scorecard for NVDA
StockScore scorecard on a phone
the same score, on a phone

Built with Claude, reviewed by an expert

The model did the typing; the gates, tests and review kept it honest.

2
human gates: the plan & the release
0
JSON keys in CI · WIF + Secret Manager
2,921
tests in Wattlas · 2,568 Python, 353 JS

Both products were built the same way. Claude writes the tickets, the mockups, the code and the tests; a human makes the two decisions that matter, the plan and the release. Work moves in small vertical slices, each one gated, each one readable in a diff.

From intent to production
Intake
Jira & Notion, where work is raised
In parallel
Claude Cowork writes the ticket; Claude Design supplies mockups & specs
Issue
GitHub issue links ticket and design together
Claude Code
One issue, one branch, one worktree. You approve the plan.
Release
develop → staging → main, protected branches. You approve the release.
De-risked before any code
Propose the approach
Challenge it with a second model, two rounds
Human decision, weighing the trade-offs
Crystallize into a brief, then implement

Behind it, a testing gate on every session: failing-first tests, pre-commit hooks, detect-secrets. Wattlas alone carries 2,921 tests across 117 files: metric functions on inline fixtures, plus the assistant's own suite.

Two pipelines, one standard
StockScore: no keys in the pipeline

Cloud Run front and back, Cloud SQL behind a VPC, every secret in Secret Manager. The pipeline authenticates with Workload Identity Federation, so no JSON key is stored anywhere. PR checks and a Gemini-call guard sit in front of every deploy.

PR checks → gemini guard → deploy → Cloud Run
Wattlas: a cron, a commit, a redeploy

A scheduled job reruns the Python pipeline on the 1st and 15th at 05:17 UTC, commits only the JSON that changed, and the static site redeploys. Seven open data feeds, each isolated and fail-open, and nothing running between rebuilds.

open APIs → pipeline → data/*.json → redeploy

My Story

Twenty years of getting industrial software onto the floor.

20
years, research bench to production line
−18%
off client production time, best case
300%
revenue growth as Managing Director