How I work

Structure without rigidity.
Process without ceremony.

Good consulting looks a lot like good engineering: understand the problem before you propose a solution, and make your reasoning visible so others can challenge it.

Philosophy

How a consultant differs from a contractor

A contractor executes a specification. A consultant helps you write a better one — and tells you when the spec itself is the problem.

The most valuable thing I can do for an engineering team is not write code faster than they can, but help them see around corners: the scaling assumption that breaks at 5× load, the API contract that boxes in a future mobile client, the shared database that makes two supposedly independent services a single point of failure.

I also take code quality seriously as a business concern, not just an aesthetic one. A messy codebase slows every future feature. I write the kind of code — documented, tested, well-named — that your team will be glad exists in six months.

I am not an order-taker

If the brief has a flaw, I'll surface it before I start the work. My value is in the thinking, not just the typing.

I leave teams better than I find them

Architecture docs, ADRs, runbooks, and knowledge-transfer sessions are part of every engagement. The goal is independence, not dependency.

I keep a small client roster intentionally

Working with two or three clients at a time means I'm present, responsive, and genuinely close to your codebase — not spread thin across ten.

Engagement phases

From first call to handoff

Every engagement is scoped individually, but the underlying structure is consistent.

  1. Discovery

    Before I write a line of code or draw an architecture diagram, I need to understand your system as it actually exists — not as it's documented. This means reading the codebase, running production queries, reviewing logs and dashboards, and talking to your engineers.

    Discovery outputs a written brief: the current state, the stated goal, my interpretation of the real problem, and a proposed scope. You approve it or we revise it before any chargeable work begins.

    Codebase review Stakeholder interviews Scope document ~1–2 weeks
  2. Architecture sessions

    For engagements involving system redesign, I run a series of focused sessions with your technical leads. These are working sessions, not presentations — we put diagrams on a whiteboard (virtual or physical), probe assumptions, and walk through failure modes.

    The output is a set of Architecture Decision Records (ADRs) that document what was decided and why. These are living documents and the most durable artefact an engagement produces.

    ADR documentation Sequence diagrams Capacity modelling Risk register
  3. Spikes & proof of concept

    Where the architecture involves a non-trivial technical bet, I write a spike: a focused, time-boxed prototype that answers a specific question before the team commits to an implementation path. Spikes are not production code, but they're not throwaway either — they come with a written summary of what was learned.

    This phase often surfaces unexpected constraints (a third-party API that can't handle the expected load, a library with a design flaw at scale) early enough to change course cheaply.

    Time-boxed research Benchmark reports Written findings
  4. Implementation & code review

    Depending on the engagement type, I either write production code directly or review and guide the implementation your team is building. In either case, every pull request I touch includes a description of what was done and why, written for the engineer who will maintain it in two years.

    I treat code review as a teaching moment, not a gatekeeping exercise. Comments are specific, constructive, and always offer an alternative.

    Production code PR reviews Pair programming Test coverage
  5. Handoff & knowledge transfer

    An engagement is only successful if your team can operate and extend the system without me. Handoff includes updated documentation, recorded walkthroughs of non-obvious design choices, runbooks for common operational events, and a final retrospective session to surface anything the team wants to dig into.

    For longer engagements, I offer a 60-day support window post-handoff for questions that only arise once the system is in production.

    Documentation Recorded walkthroughs Runbooks 60-day support window
What sets this apart

Where agency overhead meets individual accountability

Working with an independent senior consultant versus a large consultancy or a generalist freelancer.

No account managers between you and the work

You communicate directly with the person writing the code or reviewing the design. No telephone game, no dilution of context.

Genuine seniority, not delegated to juniors

The expertise you're hiring is the expertise you get. I don't subcontract the interesting parts of an engagement.

Mentorship as a deliverable

I actively work to upskill the engineers around me. Pair sessions, design reviews, and knowledge documents are standard, not optional.

Outcome-oriented, not time-oriented

I'm paid for the value delivered, not the hours logged. Fixed-scope engagements are available for well-defined problems.

Honest about what I don't know

If a problem is outside my expertise, I say so. I'd rather refer you to the right person than produce mediocre work in an unfamiliar domain.

NDA and IP protection as standard

All engagements include a mutual NDA. Your codebase, data models, and business logic stay confidential.

See the approach in action

Read through real engagement outcomes — the problems, the solutions, and the measured results.

Case studies Start a conversation