Product engineer and tech lead specialising in data-heavy products, with 20+ years taking raw data from ingestion to the screen a customer uses. Built OLAP and analytics SDKs at Crystal Decisions and i2, live sports data systems for NTT DATA fed by GPS, timing and scoring feeds over Kafka and WebSockets, search alerts that have sent millions of emails, and LLM classification pipelines in production. More than 20 applications shipped to production for long-standing clients along the way.
Tech lead: led small engineering teams to immovable live-event deadlines, setting coding standards and reviewing every pull request. Product-focused: founded two products, and own work from the first customer conversation to long-term production. Test-first: coding agents now write most of my code, under guardrails I built for test-first development, code review, and security and performance audits. That leaves my time for architecture, reliability and tech debt: I kept one platform healthy for 13 years, from Rails 1 to Rails 8.
- Long-running retained contract, held alongside other client work since 2013.
- Kept the platform current for 13 years, from Rails 1 to Rails 8, paying down tech debt alongside feature work.
- Build and maintain systems for job search, advertiser and job-seeker tools, admin workflow, CRM and reporting. Changes ship in days and stay in production for years.
- Designed the data model and built Elasticsearch full-text search, faceted filtering and an email alert system that has sent millions of emails.
- Built AI import, clean-up and classification systems.
- Built a software tool for monitoring relevant new job postings across hundreds of websites, later spun out as its own SaaS.
- Founded, built and operate a production Rails SaaS for website monitoring, change detection and customer alerting.
- Designed the core data model, monitoring pipeline, background jobs and notification workflows end to end.
- Integrated Puppeteer/Node.js browser automation with Rails, PostgreSQL, Redis and Faktory/Sidekiq.
- Built LLM pipelines for classification, summarisation and cleaning, plus an in-app AI agent.
- Built a daily automated audit that flags suspected missed alerts, because regulated-industry customers cannot afford a silent miss.
- Owned the full lifecycle, from customer conversations and pricing to deployment, production reliability and support.
- Now a stable, lightly maintained side product rather than an active venture.
- Delivered time-critical data-ingestion and visualisation systems for NTT DATA sponsorships including The Open, Tour de France, BMW International Open and Indy 500, ingesting GPS, timing, weather and scoring feeds over Kafka, WebSockets and XML.
- Built ShotView, live 3D shot tracking in Three.js for The Open's website, taken from creative concept to over 1 million visits a day within 4 months; won Best Use of Technology at the Sports Industry Awards 2023.
- Rebuilt the NTT DataWall as a 30-metre 3D visualisation synced with the live broadcast, using real-time OCR of the feed and ActionCable to put matching player and hole analysis on screen within milliseconds.
- Led a small team of software engineers within a wider multidisciplinary team of creative directors, designers and producers, owning coding standards, automated testing and code review.
- Built a medical voice-of-customer analytics platform for GlaxoSmithKline (GSK), with data exploration, interactive visualisation and PDF/PPT reporting exports.
- Shipped on time and on budget with a 9/10 satisfaction score from 50+ stakeholders.
- Developed the first generation of NTT DATA's live onsite data experiences and event websites in Rails, JavaScript and D3.js for The Open Championship.
- Delivered large-format live data screens for Team GB at the Olympic Games.
- Built Rails reporting tools, touch-screen interactives and a Cordova mobile events app for Emirates Airline.
- Recruited and managed other engineers as projects required, reviewing every pull request and running estimation and delivery against fixed event dates.
- Built a social media analytics platform from scratch, covering live social data ingestion, enrichment and interactive visualisation.
- Enriched social data with sentiment, gender, age and geolocation classification by integrating third-party APIs.
- Joined as first employee, set the technology direction with the founders, and recruited and led the initial Ruby on Rails engineering team.
- Architected and built a bespoke CRM and customer-portal system underpinning the firm's client communications.
- Set the company's software development practices from the start, including coding standards, unit testing, continuous integration and Kanban.
- Co-founded a not-for-profit creative co-working space for remote workers, freelancers and contractors.
- PHP and Ruby consultancy for UK clients.
- Responsible for the web SDK of the company's flagship analytics tool; built on Java and JavaScript, it let third parties embed its charting technology in any web page.
- Built enterprise OLAP components and a front-end JavaScript SDK, and mentored new developers.