Skip to content
Madsoft
← All capabilities
04Custom Software Engineering

Software built to be inherited

durable

Most custom software is written to be delivered. We write it to be run — for years, by people who were not in the room, after we have gone.

01How we work

Scope from the floor, not from a document

A specification describes the process as management believes it works. The system has to serve the process as it actually runs, workarounds included. So the work starts with a shift at the busiest site, watching, before a line is written. A system nobody uses was usually built from a manual describing a process that does not exist.

Typed, tested and boring on purpose

Types, tests and small dependency trees are not craftsmanship for its own sake; they are what lets somebody change this safely in three years. We prefer the standard library to a package, a documented pattern to a clever one, and a dull deployment to an impressive one. The interesting part should be your operation, not our stack.

Handover is a build requirement

Before final payment, a third party of your choosing can rebuild and deploy the system from source using only our documentation. If they cannot, it is not finished. That single condition changes how everything upstream is written, and it is the clearest commitment on the engineering charter.

02What this covers
  • Web platforms and operator consoles
  • Native mobile for field operations
  • API design and system integration
  • Legacy migration without a shutdown
03What you are handed
  1. 01Source, credentials and infrastructure in your name from day one
  2. 02A typed codebase with tests that run in a pipeline, not on a laptop
  3. 03Documentation an engineer who never met us can build from
  4. 04An independent rebuild, verified before final payment
04Recognisable by
  • The process lives in spreadsheets and messages, and reporting is a reconstruction

  • An off-the-shelf product fits two thirds of the work and fights the rest

  • A previous supplier delivered something nobody uses

06Questions we are asked

How long does a system take?

The engagement model on /company#engagement gives the typical range for each phase of a large system, and says plainly that they are ranges rather than a quote. A focused internal tool compresses by roughly half. Anyone who gives you a date before watching the work is guessing.

What technologies do you use?

Mostly typed JavaScript and TypeScript, Node, React and PostgreSQL, with native mobile where field conditions require it. We keep dependency trees small and avoid frameworks that will be somebody else's problem to upgrade. Where you have a stack your team already runs, that usually wins.

Can you work with our existing developers?

Yes, and it tends to produce better handovers. The condition is that the code, the pipeline and the documentation are shared from the start rather than handed over at the end.

What if we want to leave?

You can. Source, credentials and infrastructure are in your name throughout, the documentation is written for a stranger, and support is a choice you renew rather than a dependency you are in. That is principle eight, and it is the point of the whole charter.

Start here

Bring us the problem nobody has solved.

A 30-minute technical briefing. We will tell you what we would build, roughly what it costs, and honestly whether we are the right people for it.