AVAILABLE · UK · EU HOURS

Tech Lead
shipping into real constraints.

30 years of production software engineering, the last 15 inside teams navigating architectural inflection points where the platform had to keep running while it was being replaced. Since late 2024 — in parallel with platform work at First Databank, then full-time after — I've been building agentic systems hands-on, including two AI coding agent runtimes from scratch in Python and Go.

CurrentlyApplied AI · Founder Engagements
Most recentFirst Databank · 2020–2025
LocationBath, UK
Stack todayPython · Go · Elixir · C#
01 / Selected work

The interesting parts.

Roles where the work mattered, the constraints were real, and the choices stuck. Click any card to drill in. Click a tag to filter across the timeline — the matching skill query opens in the Workbench below.
Nov 2024Present
Applied AI — Agentic SystemsPersonal Builds & Advisory
Two AI coding agent runtimes from scratch, plus shipped products with real users.
  • chapgent (Python) — TUI-based coding agent. 26 built-in tools (filesystem, git, search, shell, testing, web, scaffolding), multi-provider LLM support via LiteLLM (16 providers), session management with persistence, parallel tool execution, LRU result caching with TTL, permission system with risk classification, project context detection.
  • claudego (Go, Bubble Tea TUI) — streaming Anthropic client with goroutine-based agent loop, channel-mediated permission requests, context cancellation propagation through the tool layer. Same problem in two languages with different concurrency models, deliberately, to think through runtime trade-offs first-hand.
  • org-brain (TypeScript / Node) — a lifecycle-governed knowledge base for engineers and AI agents. Hybrid retrieval over Postgres + pgvector combines dense semantic search, curated trigger/tag matching, and a deterministic exact-identifier path (tsvector simple config, per-token OR, count-boosted) so symbols, flags and slugs named in prose always surface. Cards move draft → promote → revise → supersede behind human gates; deployed to production as an MCP (Streamable HTTP) server with a Claude Code plugin and a SessionStart context-injection hook.
  • Hexis Golf — AI-driven feel-based golf practice planning. Live with trial users, PGA professional contacts engaged.
  • Slackex — Slack-style team chat in Elixir / Phoenix on my own infrastructure. Working artefact and stress-test of agentic workflows on a non-trivial codebase.
  • grocery_planner & kuma_san_kanji — Phoenix / Elixir builds: grocery_planner pairs the Ash framework with a Python OCR service for receipt processing (JSON:API across inventory, recipes, meal planning, shopping, notifications, analytics); kuma_san_kanji is the kanji-learning app that started this journey.
  • Self-hosted delivery platform — GitHub Actions builds immutable, SHA-tagged images to GHCR; ephemeral runners join the tailnet and deploy over it by Docker Compose, with the repo as the single source of truth for each stack. Toolchain versions are pinned once in .tool-versions and read by local, CI and Docker alike; deploy secrets are split platform-owned from app-repo workflow code, so a pipeline stays green build-only and self-arms when the final secret lands. Shared Prometheus / Grafana / Tempo / OTLP observability is multi-tenanted across apps over an isolated Docker network.
  • Homelab: Proxmox cluster running Debian LXC, Docker, Caddy reverse proxy, Cloudflare DNS, Tailscale, Pi-hole. Claude Code as primary development environment throughout.
20202025
Building PharaohFirst Databank
Replaced a Silverlight + .NET platform in flight, without freezing delivery, in a clinical-safety regulated environment.
  • Sphinx was a Silverlight-fronted .NET middleware platform with regulatory and clinical-safety obligations and a lot of tribal knowledge concentrated in a few long-tenured heads. Silverlight was reaching end-of-support — the platform had to move regardless.
  • We took the move as acceleration, not a freeze: Pharaoh was the replacement we built alongside Sphinx, prioritised by features most valuable to the business, with continuous delivery throughout.
  • Event-driven messaging in place of point-to-point calls; React SPAs alongside the Silverlight UI until decommissioning; mature monitoring and alerting from day one; trunk-based delivery with BDD/TDD; pair and ensemble programming as default; feature toggles end to end.
  • Response times, infrastructure footprint and platform stability all materially improved on the Pharaoh side. Production alerts and time-to-fix dropped through better observability and event-driven boundaries.
  • Held strong views and argued for them — the ones that landed did so because the team genuinely owned them by the time they went live.
20202025
AnalyseRx Rules EngineFirst Databank
2M+ patient records processed daily through an extended rules engine, against the reliability bar healthcare imposes.
20202025
Population Analytics PlatformFirst Databank
Greenfield clinical-analytics platform for NHS Clinical Commissioning Groups.
20162020
Grocery Market Share ModernisationKantar Worldpanel
Legacy C / Oracle / COBOL stack carrying a 5-year rolling dataset across 40,000+ panelists, modernised to Azure serverless.
Oct 2012Mar 2015
Software Developer / Tech LeadBBC Future Media
Led migration of user-generated-content services from physical hardware to Azure IaaS.
Jan 2012Jul 2012
Engineering Manager (contract)BBC Future Media
First contractor Engineering Manager in Audience Facing Services. 17-person multi-language team.
Mar 2011Dec 2011
Development Manager / Test ManagerITV Technology
Ran the VOD content pipeline (excluding transcoding) feeding ITV.com and ITV Player.
Sep 2004Mar 2011
Senior Software Developer / Tech LeadBBC Future Media
Technical lead for user-generated-content services across the BBC — at BBC scale.
02 / Earlier career

The longer arc.

From 16-bit dev tools through aviation analytics, CRM modernisation, and survey software. Three decades of platforms.
2016 Reed Business / FlightGlobal Aviation analytics; C# / Web API / AngularJS / Amazon Redshift.
2015–2016 Neilson Financial Services CRM modernisation; ASP.NET MVC 5, Web API, SignalR, EF6. Introduced Octopus / TeamCity continuous delivery and Selenium browser automation.
1999–2004 SPSS Ltd C++ / COM components for multimedia survey software; ASP.NET CATI applications.
1997–1999 MCT Europe Modernised legacy Unix / AS400 advertising applications to Windows C++ / COM.
1995–1997 SN Systems PlayStation / Saturn dev tools, CD emulation, 16→32-bit migration of DOS tooling.
03 / Skills

What's in the kit.

Categorised, not ranked. Most listed here has shipped to production.

Cloud & Platform

Azure FunctionsAzure Event HubAzure Data FactoryAzure SQLService BusCosmosDBLogic AppsAPI ManagementKey VaultContainer ServicesDatabricksARMPowerShellAzure CLIGitHub ActionsAzure DevOpsTeamCityOctopus DeployTailscaleGHCRPrometheus / Grafana / Tempo

Agentic & Applied AI

Two AI coding agent runtimes from scratch (chapgent / Python, claudego / Go)Production discipline applied to agentic workflowsClaude Code as primary dev environmentLiteLLM multi-providerAnthropic streamingBubble Tea TUIMCP servers (Streamable HTTP)Hybrid retrieval (pgvector + full-text)OpenTelemetry / OTLPHomelab Gen AI infra (Proxmox, Docker, Caddy, Tailscale)

Languages & Frameworks

C# / .NET CoreTypeScript / JavaScriptPythonElixir / PhoenixGoReactAngularREST APIsMicroservicesDomain-Driven DesignWCFASP.NET MVC / Web APISQL ServerOracleAmazon RedshiftCosmosDBPostgres / pgvectorAsh FrameworkObanDrizzle

Leadership & Practices

Trunk-based developmentPair & ensemble programmingTDDBDDContinuous deliveryFeature togglesExpand/contractParallel changeObservability & alerting from day oneLean flowAgile / Scrum / KanbanTeam leadershipMentoringCoachingTechnical hiring
04 / Builds & products

What I'm making.

In parallel with platform work, then full-time from May 2025. Two agent runtimes from scratch, several products with real users.
chapgent AI
Python TUI coding agent — 26 built-in tools, multi-provider LLM via LiteLLM (16 providers), parallel tool execution, LRU cache, permission system with risk classification.
Python · TUI · LiteLLM
claudego AI
Go streaming Anthropic client with Bubble Tea TUI — goroutine-based agent loop, channel-mediated permissions, context cancellation through the tool layer.
Go · Bubble Tea · Anthropic SDK
org-brain AI
Lifecycle-governed knowledge base for engineers and AI agents. Hybrid retrieval over Postgres + pgvector: dense semantic, curated trigger/tag, and a deterministic exact-identifier path so symbols and slugs named in prose always surface. Draft → promote → revise → supersede lifecycle behind human gates; deployed as an MCP server with a Claude Code plugin.
TypeScript · Postgres/pgvector · MCP
Hexis Golf Live
AI-driven feel-based golf practice planning. Live with trial users and PGA professional contacts engaged.
golf.davewil.dev ↗
Slackex Live
Slack-style team chat in Elixir/Phoenix, deployed on my own infrastructure. Working artefact and stress-test of agentic workflows on a non-trivial codebase.
chat.davewil.dev ↗
grocery_planner WIP
Phoenix / Elixir + Ash framework with Python OCR service for receipt processing. JSON:API across inventory, recipes, meal planning, shopping, notifications, analytics.
Elixir · Phoenix · Ash
kuma_san_kanji WIP
Phoenix / Elixir kanji learning application — the originating project of this whole journey.
Elixir · Phoenix
Pocket Pro / Fleetwood Brief
Currently engaged on a voice-driven AI golf coaching product, working through founder brief and product discovery.
Discovery phase
Homelab Infra
Proxmox cluster running Debian LXC, Docker, Caddy reverse proxy, Cloudflare DNS, Tailscale, Pi-hole. Claude Code as primary dev environment throughout.
Proxmox · Docker · Tailscale
CI/CD Platform Infra
Self-hosted CI/CD for the homelab. GitHub Actions build immutable SHA-tagged GHCR images; ephemeral Tailscale runners deploy by Compose over the tailnet, repo as single source of truth for each stack. Single-source toolchain pinning, self-arming deploy secrets, shared Prometheus / Grafana / Tempo / OTLP observability.
GitHub Actions · GHCR · Tailscale
05 / Education

Foundations.

1991–1995 University of Bristol BEng (Hons), Electronic Engineering

Let's talk.

Open to permanent roles or contract from late spring. UK or remote. Strong preference for teams shipping into real constraints — regulated, legacy, agentic, take your pick.

[email protected]
Bath, UK · BA2 0PS · UK · EU hours