Skip to content

Custom software development

Software built to be operated, not just delivered.

Web, mobile and internal systems, built and run by one senior engineer. You get continuity on every line instead of a bench of five.

You have a system that needs building, or one that is stuck. Either the market does not sell what you need, or you bought four products that each do a quarter of the job and the glue between them has become the problem.

This is the custom software, shipped and operated practice at its most hands-on: I do the work, I stay responsible for it once it is running, and the same person who made an architectural decision is the one who answers for it a year later.

Before an estimate means anything, four decisions have to be settled — who can see what, what happens when two people act at once, where the truth lives, and what a release costs. Three of them are expensive to reverse. Application development — the short version covers why those four drive the budget and the feature list does not.

What I build

Web applications

The default shape: an application your team or your customers log into, with real permissions and a real data model behind it. Most of what gets described as a custom website is actually this.

Commerce and payments

Storefronts, checkout flows, and the parts that are genuinely hard — payment state, refunds, partial fulfilment, and reconciliation against the provider. Including WooCommerce work where an existing store needs behaviour the plugin market does not sell.

Content systems and CRM

Editorial systems and customer records built around how your team actually works, including WordPress builds where the constraint is a content model rather than a theme.

Mobile and cross-platform

Native applications, and the architectural question underneath them: which layer is shared. My default is a shared deterministic core with a native interface on each platform.

Sector builds — learning, fintech, logistics

Learning platforms and course delivery, financial workflows where correctness and auditability come first, and logistics systems where the routing or scheduling logic is the actual differentiator.

AI features inside an existing product

Assistants, extraction, classification and agents, wired into your real data — with an evaluation harness, because a feature nobody has tried to break is not evidence that it works.

Python and PHP codebases

Both as greenfield work and as rescue work on a codebase somebody else left. The language is rarely the interesting constraint; the existing data model usually is.

Where the evidence is

Everything on the lab page is my own work and runs in front of you rather than being described. The clearest one for this kind of engagement is Pipeline replay, running in your browser — a recorded multi-agent build session where critics reject work and hand it back, including one critic that rejected the same work three times and never signed off.

On the case studies page: a matching engine over 400,603 job postings where every point the scorer awards carries a reason code, and a fine-tuning pipeline whose adversarial audit of my own work surfaced 84 issues, including the reason the model recited instead of reasoned. The audit number is only worth something because the audit was built to disagree with the build.

Before you commission anything

Most people who ask for custom software should buy something instead, and that is worth settling first — the write-up on custom software has the three conditions under which building is genuinely the cheaper path over five years.

If your starting point is a spreadsheet that has stopped coping, more on custom business software covers the four signals that mark the threshold. If the buyer, the user and the security reviewer are three different people, then enterprise software describes the work that adds. If you are weighing native against shared, cross platform apps covers which layer to share.

Two more that decide the shape of an engagement rather than its cost: the write-up on product development, on whether you are commissioning a product or a project, and software development process, which is the sequence I run and the three places it has failed.

When I am the wrong choice

This is one person. That is the whole proposition and it is also the whole limit. You get senior judgement on every line and continuity across the life of the system, and in exchange you do not get bench depth.

If you need five workstreams running in parallel, or a team that can absorb someone leaving mid-project, an agency is the right answer and I will say so on the call rather than after the contract. If you are searching for a local supplier because someone needs to be on site, I work remotely and that is a genuine mismatch.

Client work is confidential, so what you can inspect is my own — the lab demos, the case studies, and this site. That is a deliberate trade: less name-dropping, more things you can actually open.

Bring the problem, not a brief.

A thirty-minute technical call. If it is not a fit, I will tell you on the call.