Start a conversation
Software development

Software people use every day, built to survive real users.

Custom applications, multi-tenant platforms, mobile apps and the integrations that hold an estate together. We build the unglamorous parts — permissions, audit trails, migrations, tests — because those are what decide whether a system is still running in three years.

11software systems shipped
13isolated tables in production
80%satisfaction uplift on a rebuild
live
What we build

Six areas, and exactly what is included in each.

Every bullet below is work we have shipped. Where a line looks like filler on another company's site, it is here because a client needed it and we built it.

Custom business applications

Bespoke web and desktop software built around how your organisation actually works.

What this includes
  • Requirements captured from observing the work, not a wish list
  • Role-based permissions designed before the first screen
  • Reporting and export built in, not bolted on
  • Full test suite and CI pipeline

SaaS and multi-tenant platforms

Subscription products with the parts nobody puts in a demo: tenant isolation at row level, audit logging written on the way in, billing hooks, and a migration path that does not require downtime.

What this includes
  • Row-level tenant scoping on an organisation identifier
  • Audit trail on every access and change
  • Single sign-on through Entra ID or your provider
  • Zero-downtime migration strategy

Mobile applications

iOS and Android, including on-device inference and private distribution where an app is for one organisation rather than the public store.

What this includes
  • Native or cross-platform, chosen on your constraints
  • On-device models where connectivity is unreliable
  • App Store and unlisted distribution handled
  • Offline-first data handling

Integration and APIs

Connecting systems you already pay for.

What this includes
  • REST and GraphQL API design and versioning
  • Microsoft Graph, Firebase and Oracle experience
  • Webhook and event-driven patterns
  • Rate limiting, retries and idempotency

Web and e-commerce

Marketing sites, portals and storefronts that load fast on a mid-range phone and rank because the foundations are crawlable, not because someone stuffed keywords in afterwards.

What this includes
  • Core Web Vitals as a build constraint
  • Structured data and semantic markup
  • CMS or static, chosen on who edits it
  • WCAG 2.2 AA conformance

Legacy modernisation

Moving an ageing system forward without a rewrite-everything gamble.

What this includes
  • Strangler-pattern replacement, module by module
  • Data migration with reconciliation checks
  • Parallel running before cutover
  • Knowledge capture from the people who know it
What you receive

The deliverables, listed before you ask.

The same artefacts every time, regardless of project size.

  • Working software demonstrated fortnightly
  • Automated test suite and CI pipeline
  • Architecture and API documentation
  • Deployment scripts and environment configuration
  • Handover sessions until your team can run it
  • Thirty-day support window after go-live
Stack

What we build this with.

Deliberately narrow. A team our size claiming twenty frameworks is claiming one thing badly, twenty times over.

PythonTypeScriptJavaReact 18FastAPISpring BootPostgreSQLOracleDockerAzureGitHub ActionsiOSAndroid
Proof

Three things we have already shipped in this practice.

Open the work page for the full case note on any of these, including what did not go to plan.

Delivered

Task Tracker Hub

Led the move from Java Swing to JavaFX, achieving an 80% improvement in user satisfaction.

Delivered

Asset management system

Procurement to disposal with 30% fewer reporting errors and 40% stronger access control.

Delivered

ClassAura

Multi-tenant SaaS across thirteen core tables, in production with paying customers.

11software systems shipped
13isolated tables in production
80%satisfaction uplift on a rebuild
22systems shipped across the company
Questions

What clients ask about this practice.

Answered as we would answer them on a call, including the ones with awkward answers.

Yes. We start with a short review of what is there, what is tested and what is load-bearing, then propose the smallest change that gets you moving. We do not open by recommending a rewrite.

That is the intent. Building for your team to maintain costs more up front and less over three years. Handover includes documentation, tests and sessions until your engineers are comfortable.

Then we write for that. Documentation aimed at whoever will actually operate it, plus a support agreement so there is someone to call.

Other practices

Most projects use more than one.

The reason a product is not working is rarely where the client first thought it was, so these three sit alongside this one more often than not.

Tell us what you are trying to build.

Describe the problem rather than the specification. If a smaller piece of work would answer it, we will propose that instead.