Expertise · Custom software
A system built for the way your organisation works, not for the general case.
We build systems from scratch when no product on the market fits: platforms with multiple applications and a shared database, connectors to systems that do not have an API, pipelines that read documents and money movements, and programmes whose output is not a screen, but a manufacturing dossier. At the end we hand over the repository, the commissioning document and the access credentials.
Already builtI chose four in-house systems from different disciplines, precisely so they would not look like four variants of the same site, and I ran tests on each of them today. A monorepo with 3 applications and 12 packages, 486 TypeScript files and 68 test files, 151 commits, clean working tree. A system for querying two B2B portals without a public API: 38 tests passed in 0.52 s, on real responses saved as fixtures. A pipeline that reads bank notifications from email and PDF and writes them to Postgres with fingerprint deduplication. And an engineering documentation generator, in Python, with 44 tests passed in 0.50 s. The figures are from my runs on 6 September 2026, not from README files.
“Custom” means the system is written according to the way your people already work, not the other way round. It has a cost that is fair to state up front: someone has to maintain it, and that someone is us or your team. That is why the first question we ask is not what you want to build, but whether there is already a product that does 80% of the job. If there is, we say so, even if that means you do not give us the work. What remains after that question — the part that is not bought — is exactly what we build well.
The scale is seen more clearly from four different systems than from a list of technologies. The first is a platform for a performing arts institution: a monorepo with three applications (public site, administrative cabinet, API) and twelve shared packages — tickets, commerce, content, notifications, refunds, security. The second queries, on demand, the B2B portals of tour operators that publish no API: programmatic authentication, return to login when the session expires, and an analyser tested on real responses captured in files. The third reads bank notifications from email and PDF statements and places them in Postgres. The fourth has no screen at all: it is the programme that generates the model, the bill of materials and the drawings of an industrial machine.
What keeps a system like this upright is not the stack, but the rules written before the first screen. In the platform for the performance institution, the implementation contract fixes in text things that would otherwise be negotiated at every meeting: money is kept in whole minor units, with the currency alongside; the availability of a seat is given only by a durable reservation in the database, never from the cache; critical orders have idempotency keys; P0 and P1 paths fail closed, not open; card data is never stored. These rules are written at the start because, if written at the end, they would mean rewriting the system.
At the end, three things are handed over, not one: the repository with all its history, the document that says how to bring it up on a blank server, and the accesses. Under our project directory there are 150 git repositories, 103 README files and 19 deployment or handover documents — counted today, not estimated. We write the ownership rule into the contract before start and it is simple: the code written especially for you is yours, third-party libraries remain under their licence, and our reusable components and our products are licensed, not assigned. If part of the work is better solved with one of our products, we say so exactly like that, so you know from the start what you are buying and what you receive.