Approach

Small steps. Weekly demos. No surprises.

Twenty years of delivery have taught me that most software risk is communication risk. My process is built to keep you informed, in control and seeing real progress every week.

The four stages of a project

01
Week 0 · free

Discover

We talk about the problem, not the technology. I'll ask awkward questions, map the constraints and tell you honestly if I'm not the right fit.

02
Weeks 1–3

Prototype

A thin, working slice on your real data. It's the quickest way to de-risk an idea and get stakeholders excited, or save you from a bad investment.

03
2-week sprints

Build & integrate

Prioritised backlog, short sprints and a demo every week. You can change direction at any sprint boundary.

04
Ongoing

Run & improve

Production monitoring, support and improvements on retainer, or a documented hand-over with knowledge-transfer sessions.

The four stages, in action

Watch a project run, start to finish.

Follow one illustrative project through discovery, a prototype on real data, weekly sprints, tested AI and go-live, against a hard Black Friday deadline.

What's your deadline?

Illustrative scenario: Kransveld Outdoor is a fictional retailer and every figure is an example. Real timelines depend on scope.

Video page with chapters and transcript

Principles

What you can always expect.

These aren't slogans. They're the habits that make a one-person company a safe pair of hands.

Radical transparency

Shared board, weekly written updates and time reports. You always know where things stand.

Yours from day one

Code in your repo, infrastructure in your cloud account, docs in your wiki. No lock-in.

Outcomes over output

We agree what success looks like up front, and measure it, especially for AI.

Honest advice

If something shouldn't be built, or AI isn't the answer, I'll say so before you spend money.

Inside an AI prototype

Two weeks from idea to evidence.

A typical AI prototype sprint. The aim is a working demo and hard numbers to decide on.

  1. Days 1–2

    Frame the problem

    Pick one high-value use case, collect 30–100 real examples and agree what a "good answer" looks like.

  2. Days 3–5

    Connect the data

    Ingest the relevant documents or systems, with PII handling agreed and applied before anything touches a model.

  3. Days 6–8

    Build the slice

    Retrieval, prompts, tools and a simple UI, embedded where users already work, such as a web app, Teams or email.

  4. Days 9–10

    Measure & decide

    Run the evaluation set, compare models and costs, then present results with a clear go / tweak / stop recommendation.

  5. Then

    Production roadmap

    If it's a go: a plan to harden, secure, monitor and roll out, with a realistic budget and timeline.

Prototype sprint10 working days
D1D2D3D4D5D6D7D8D9D10
Frame
Connect data
Build slice
Measure
Decision
Demo every FridayGo / tweak / stop on day 10
Deliverables

What you walk away with.

Clean source code

Reviewed, tested and in your repository with a readable history.

Infrastructure as code

Environments you can recreate with a single pipeline run.

Living documentation

Architecture decisions, runbooks and onboarding notes.

Dashboards & alerts

Health, usage and, for AI, quality and cost metrics.

Security baseline

Secrets management, least-privilege access and audit logs.

Knowledge transfer

Walk-throughs so your team can confidently own it.

Let's build something

Have a project that needs a senior pair of hands?

Tell me what you're trying to achieve. Within one business day you'll get an honest view of whether, and how, I can help.

No sales team, no hand-offs. You'll speak directly to the engineer who builds it.

It's in South Africa · replies within one business day
Load-shedding: Stage 6. Lights out, site still up. That's how I build systems. 02:00:00
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.