Skip to content
View citypaul's full-sized avatar

Sponsoring

@imsnif

Highlights

  • Pro

Organizations

@EqualExperts @What-Good-Looks-Like @NorthOps @pack-software

Block or report citypaul

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
citypaul/README.md

Hey, I'm Paul πŸ‘‹

Product engineer. I help teams make software safe to change.

Website Consulting LinkedIn YouTube


About me

I'm a product engineer based in Manchester, UK. I've spent 20+ years building software in real product teams at BBC Sport, Sky, Electronic Arts, Equal Experts, Hopin, and NewDay β€” much of it practicing Extreme Programming and TDD.

Again and again, the real constraint on speed was confidence: can we change this without breaking what customers rely on? When the answer is yes β€” when a team can change its system safely, release without drama, and refactor without heroics β€” the business gets more options. That's the outcome I care about.

These days most of my code is written with AI β€” and that's made the discipline around the code matter more, not less. Fast feedback loops, tests that describe behaviour, CI/CD, domain language, clean boundaries, pairing, and close product collaboration aren't rituals to me β€” they're how I know the code is good, whoever (or whatever) wrote it, and how change stays affordable.

Selected work

  • .dotfiles β€” my AI-assisted engineering system: CLAUDE.md, on-demand skills, specialised agents, TDD workflows, TypeScript guardrails, mutation testing. Started as personal config; now a public, working example of disciplined AI-assisted development.
  • scenarist β€” scenario-based testing for Express and Next.js. Run your real application code while controlling external HTTP dependencies through named scenarios β€” integration confidence without end-to-end pain. Published as @scenarist/* packages on npm, docs at scenarist.io.
  • feedbackdriven.dev β€” my writing on product engineering, XP, TDD, and AI-assisted development.

What that looks like in practice

  • TDD as a design and feedback practice, not just a testing technique β€” in an interview I put it as "TDD is the reason I'm never stressed"
  • Front-end systems that are testable without becoming brittle
  • Refactoring as a continuous habit, not a special event
  • Architecture organised around domain language and boundaries that absorb business change
  • Mutation testing, because coverage tells you code ran β€” not that your tests would catch a bug
  • AI coding tools inside disciplined workflows: tests first, strict types, review, quality gates

Day to day that's mostly TypeScript, React, Node, and Next.js, with Vitest, Zod, Docker, Terraform, and Azure around the edges.

Current focus: XP in the AI era

The question isn't whether AI can write code β€” it can. It's whether your team has the feedback systems to know that code is correct, maintainable, and safe to change. AI is a force multiplier; your practices decide what gets multiplied.

So I've been encoding XP discipline directly into AI-assisted workflows β€” small steps, tests first, strict TypeScript, mutation testing, refactoring checks β€” and publishing the whole system as I go in my .dotfiles.

πŸ“Ί Watch: Agentic Coding + TDD β€” guiding an AI agent through a real feature, test-first.

Interviews & conversations

Working together

I consult through Pack Software: technical product delivery, front-end TDD coaching, architecture for change, and AI-assisted engineering systems built on tests, typed contracts, review, and CI quality gates.

Non-technical

When I'm not obsessing over feedback loops, I'm obsessing over Manchester City ⚽ β€” or hunting down the best curry in Manchester.


Pinned Loading

  1. scenarist scenarist Public

    E2E testing for Node.js with instant scenario switching. Run your real appβ€”mock only external APIs. Express & Next.js adapters.

    TypeScript 27 3

  2. .dotfiles .dotfiles Public

    My dotfiles

    Shell 682 87

  3. fullstack-react-tdd-example fullstack-react-tdd-example Public

    A repository designed to show good modern testing practices. Created to illustrate key points for a talk I gave: https://www.youtube.com/watch?v=jBkEz-Azsak

    TypeScript 31 3

  4. mac-dev-machine-setup mac-dev-machine-setup Public

    Scripts to automate the installation and setup of a new Mac, so I don't have to waste time

    Shell 23 5