Custom software development
The internal systems a business runs on — the ones where an outage means work stops, not that a page looks wrong. We design them around how the company already operates, then run them in production with you.
What this looks like in practice
Work we have actually done, described as work rather than as capability.
- Dispatch and scheduling
- Who goes where, in what order, with what changing under them mid-day. The part that spreadsheets model worst.
- Procurement and tender workflows
- Intake, comparison, approval and the paper trail that has to survive an audit two years later.
- Field apps that work without signal
- Data captured on a phone in a place with no coverage, reconciled when it comes back. Offline is a design decision, not a feature toggle.
- Reporting the finance team trusts
- Numbers that reconcile against the accounting system, with the difference explainable when they do not.
- Replacing a spreadsheet that became load-bearing
- The one with eleven tabs that one person maintains and nobody else can open safely.
Constraints we work with
The limits that shape this kind of project. Naming them costs us nothing and tells you more than a list of technologies would.
- The system you already run stays
- Accounting, payroll and ERP are rarely in scope and usually cannot be touched. We integrate around them rather than proposing you replace everything.
- Nobody can stop working during rollout
- Operations run while the new system arrives. That means parallel running, a migration path and a way back, not a launch date.
- The data is wrong before we get there
- Years of manual entry leave duplicates, gaps and free text where a field should be. Cleaning it is part of the project, and we say so upfront.
- The deadline comes from outside software
- A contract, a season, an audit. When the date is fixed, scope is the only variable, and we would rather cut features than quality.
Further reading
- When a spreadsheet becomes load-bearingA spreadsheet becomes a system the moment it starts holding rules rather than numbers. The observable signs, and the honest case for leaving it alone.
- Declare maintenance jobs as data, not as codeA maintenance tool that can run any command is one nobody should trust with admin rights. What changes when the job is declarative data instead of code.
- Offline-first when drivers lose signal for half the dayDrivers lose signal for half the day, so the app has to hold a day of work on the device. What that costs, and the conflict nobody designs for up front.
Outgrown a spreadsheet?
Tell us what it tracks, who maintains it and what breaks when they are away. That is usually enough for us to say whether this is a project or a smaller fix.
Start a projectWe reply within 1 business day. No sales calls unless you ask for one.