About

Adam Dent

I'm Adam, a QA Engineer with a curiosity for building software and solving problems.

I enjoy creating tools, experimenting with new technologies, and turning ideas into working projects. This site brings together some of the things I've been building, along with ways to get in touch.

Whereabouts

Whereabouts live

  • Overview
  • How it's built
  • Challenges
  • Overview

    Whereabouts helps people find houses in North Yorkshire that mainstream mapping apps cannot. Thousands of rural properties are known by a name rather than a number ("Rose Cottage", "The Old Vicarage"), and most of those names mean nothing to Google or Apple Maps, leaving anyone trying to reach one guessing: delivery drivers, paramedics, district nurses, visiting friends. Type the house name, see the exact house ringed on a hand-drawn village map, and get turn-by-turn directions. It works fully offline once loaded, because the places it's needed most are the places without signal.

    Built on Dr A Colin Day's free village maps (colinday.co.uk): 865 maps covering around 42,000 named houses, nearly 7,000 of them pinned by hand so far, district by district. More counties planned.

    Pipeline
    Python 3.12: pdfplumber, PyMuPDF, FastAPI
    App
    vanilla JS PWA, Fuse.js search, service worker
    Dataset
    865 maps, ~42,000 houses, ~660 KB gzipped
    Hosting
    Cloudflare Pages
    Licence
    MIT (code), CC BY-SA 4.0 (location data)
    A house's page in Whereabouts: the name, a village map with the house circled, and a Get Directions button.

    A found house: ringed on its village drawing, one tap from directions.

    Open Whereabouts How it works Source code

    Clamber

    Clamber closed beta

  • Overview
  • The Society
  • Challenges
  • Overview

    A social app for documenting and appraising path furniture: stiles, gates, footbridges, signposts, the built objects of the countryside footpath network. A member photographs one, appraises it on four dimensions (sturdiness, character, crossability, setting), and the record is shared with their friends.

    The conceit is a venerable society of country gentlefolk, and every line of system copy holds that register. React Native (Expo) with TypeScript on the client; Postgres with PostGIS behind it. One codebase targets both iPhone and Android; currently in closed beta on Android.

    Logging is a field-journal entry: photograph, location, the kind of object (chosen from a taxonomy of stiles, gates, crossings and collectables), the four appraisal sliders (haptic ticks on every step, dragging on the UI thread at 60fps), optional hazard notes, and field notes.

    Client
    React Native (Expo), TypeScript
    Backend
    Supabase: Postgres + PostGIS, Auth, Storage, Realtime
    Maps
    Mapbox, custom-styled Atlas
    Offline
    SQLite capture queue
    Testing
    Jest + RN Testing Library, Maestro end-to-end
    Status
    closed beta, Android
    The Clamber feed: a ladder stile scoring 6.3 from two sightings, and a step stile carrying a Grade II badge.

    The Feed: each card is a Piece with its aggregate appraisal; outstanding ones carry their Grade.

    Pixel Steelworks

    Pixel Steelworks live

  • Overview
  • How it's built
  • Overview

    An interactive pixel-art map of the Consett Iron & Steel Works in County Durham, built in 3D. Slide through nearly two centuries, from the works rising out of the moors in the 1830s, through boom and closure in 1980, to the green fields there today. Tap any of 46 buildings for its history at that point in time.

    Eighteen milestones mark the timeline, from the Stanhope & Tyne Railway in 1834 to closure on 12 September 1980 and the Terris Novalis sculptures in 1996. Every date is real, checked against the archives listed in the app; the geography is a stylised tribute rather than a survey.

    Stack
    Three.js, vanilla JS, no build step
    Scene
    voxel buildings merged into vertex-coloured meshes, ~120 draw calls
    Buildings
    46 tappable, era-by-era histories
    Timeline
    1830 to the current year, 18 milestones
    Hosting
    Cloudflare Pages
    Licence
    MIT
    The voxel map in 1939, mid-timeline, showing the works at full production with smoking chimneys and a busy rail yard.

    1939 on the slider: the works at full production.

    Open the map

    Trading bot

    Trading bot building

  • Overview
  • Architecture
  • Safety
  • Overview

    An autonomous quantitative trading system for US equities that iterates its own strategy. An AI strategist studies live market conditions and research, decides the posture, and hands a precise strategy to a deterministic execution engine that trades it through Alpaca. As regimes change, the system re-derives its approach without a human in the loop.

    It trades a simulated account while it proves itself.

    Engine
    Python, deterministic loop measured in seconds
    Strategist
    Claude, tiered: routine checks on the small model, deep reviews on the large
    Broker / data
    Alpaca (paper account)
    Strategies
    mean reversion, momentum, VWAP reversion
    State
    SQLite event store, full decision audit trail
    Console
    FastAPI + React over one websocket
    Sweepstake bot

    World Cup sweepstake bot live

  • Overview
  • Architecture
  • Challenges
  • Overview

    A Telegram bot running a private World Cup sweepstake. It follows every match in real time and posts goals, VAR reversals, results, eliminations, Golden Boot changes and the final prize breakdown to the group chat, in the voice of a bold, opinionated pundit.

    Facts are sacred: scores, scorers and minutes come from a live football data API and are never invented. Opinions can be bold, but only when they're real takes circulating on X, retrieved through xAI's agent tooling and voiced as the bot's own. The factual line posts instantly; the commentary follows as a threaded reply. When England score or concede, a saved photo posts alongside. It also answers questions put to it in the chat, drawing on a personality that exists as a list of memories populated by a simulated childhood.

    Runtime
    Cloudflare Workers + one SQLite-backed Durable Object
    Facts
    football-data.org, polled every minute
    Commentary
    xAI Grok, grounded in live X reactions
    Delivery
    Telegram Bot API, send-first deduplication
    Tests
    vitest suite locking in the no-double-post guarantee
    Status
    live for the 2026 World Cup
    Contact

    Contact

    Bug reports, feature requests, hellos: all welcome.

    Email hello@adamdent.uk