Enterprise Systems, Data & Custom Software
The delivery layer — systems, data, and the software that unifies them.
- The green boardClick → Every department hits its numbers and the company still misses its own.
- SpreadsheetsClick → The real system of record is a spreadsheet, and only one person understands it.
- Month-endClick → Half of closing the month is arguing about whose number is right.
- ReconciliationClick → Two systems hold the same number. The day is lost making them match.
- The changeClick → A change that should take a week takes a quarter every time you ask for one.
- The waitClick → You asked a simple question three weeks ago and the answer is still being built.
- OwnershipClick → You paid for the software, and only the firm that built it can touch it.
- The upgradeClick → The vendor's next version is mandatory. Every customization has to survive it.
- The walk-awayClick → Your vendor holds the code, the data model, and the only person who understands them.
- The morning afterClick → The number that would have changed the decision arrives the day after it.
- The winnerClick → The new system works beautifully for one department and worse for everyone else.
- The quoteClick → The license was the number you approved. The rest of it was not.
Scroll for all 12
We design, build and run the four things a business operates on: the systems themselves — ERP, CRM and the applications around them — the intelligence people make decisions from, the data underneath both, and custom software where nothing off the shelf fits. One team across all four, from the first question to long after go-live. These are the decisions where the technical and business answers have to be the same one, and getting them right is what makes the business faster at everything the system touches.
ERP and CRM programs
Three reasons hold up. You have outgrown it — you bought it when the company was half this size. It genuinely cannot do what you need, and no amount of configuration changes that. Or you are far enough behind on versions that the upgrade has quietly become its own implementation. At that distance, upgrading and replacing stop being different sizes of decision. If one of the three is yours, you have a case you can take to a board. If none of them are, we'll tell you that, and it's the cheapest answer you'll get.
These projects go to whoever knows the system best, so they get designed from one seat — with a bias toward that department and a blind spot just past it. The result works exactly as intended. Then the teams on either side of it can give up as much ground as was gained, or more, to make room for it. Only one of those numbers ever reaches the business case. We start with the whole process and everyone in it, and we look for the root cause rather than the complaint. Done that way, one department's pain becomes several departments' gain.
A client's system was failing — data corruption they had worked around until they couldn't. They came to us to plan the upgrade. What they had not worked out was how big that upgrade had become: six years behind, on a base release without the patches added since, a different interface, different logic, and a warehouse bolt-on that had changed hands and would have meant new hardware on the floor. At that size an upgrade can cost what moving to another product costs, which makes it worth looking at both. We did. They stayed where they were, and it was the right call — but now an informed one, and a year later they could still say with confidence why.
A client asked us to build a bolt-on: a note that would appear when an invoice was issued, setting out that customer's tax rules. We asked why before we quoted it. That puts a person in the loop every single time, and a note that always appears is the first thing that gets ignored. We did some digging and learned they were already paying for a module that manages tax rules and applies them automatically. They no longer needed the bolt-on — and the manual review went with it, because the note was the only reason anyone opened an invoice before it went out. They had been paying for the module and for the people working around it.
A salary is not what a hire costs. There's the recruiting, the onboarding, the months before they are useful, and the time your own people spend getting them there — none of it on the offer letter, all of it real. The quote here works the same way: license, configuration and the build. At least a quarter of what the change actually costs sits outside all three — testing, training, the communication, hypercare, and the months after go-live when people are still learning. Much of that is your own people's time, which is why it can be missing from the estimate entirely. And it isn't a tail-end activity: you don't finish the system and then manage the change. On a program that finished two months early, we had doubled the time budgeted for testing and training — and it still wasn't enough.
Driving on the other side of the road is one thing to learn. But the controls are in different places, the signs are in another language, the intersection rules aren't the ones you know, and your judgment of distance is wrong. Any one of those you would absorb in an afternoon; together, on day one, they are what makes it dangerous. A new system arrives the same way — the vocabulary, the process, who tells whom, the rules the business runs by, and the logic behind a decision that used to be obvious. Count them all, plan for each, and by the third month the new way is just how the work gets done.
We run these programs end to end — evaluation, business case, build, cutover, and the months after it — across every department. Take a single piece of that if it is all you need. Either way, you get an answer we are willing to stand behind. Start there →
Four months gone. Nothing done. Fourteen left on the clock.
- 6 mobuild to go-live
- ¼the resourcing
A $300M carve-out off a system first built in 1978, four plants live in one blackout week — hypercare complete two months before the TSA deadline. Read what happened →
Business Intelligence
Someone has asked for a number, and the person tasked with getting it doesn't necessarily know what decision it serves — only that producing it by hand takes a morning. Sometimes the request is just too wide: it asks for the whole company when the answer sits in one department. Sometimes it's the visible edge of something larger, and what's underneath is that nobody can see enough to run the thing properly. So the first question isn't what the report should contain. It's what action it produces, at what level, and whether that action points where the business is trying to go. We write that down before anything gets built — and when the answer is that you don't need the report you asked for, that's the answer you get.
Two people bring the same number to a meeting and the numbers differ. Neither made a mistake. One report counts everything. The other filters a few things out. The meeting then becomes about which number is accurate rather than what it's telling you. But the question isn't which one is right — it's why there are several. Each is a snapshot taken at a different time, and a snapshot stops being true the moment it's taken. A single source of truth is the standard everywhere else in a business, and reporting isn't an exception. Make it one source, make it real time, and people can act on it.
The person on the line is measured on output. Show them the result on Friday and the week is already gone. Show them the same number as they work and by mid-morning they know if they're behind, with the day still in front of them. The manager needs to know something else — when someone is drifting, while there's still time to help. The director needs to know how the teams compare. Leadership needs to know what it costs. Four people, four different numbers, four different clocks — and every one of them live, or none of it is worth building.
Picture a metronome. You watch the tip, but the tip decides nothing — the beat is set by a small weight near the center, and moving it an inch changes everything you see. A report that gives you the number and stops has shown you the tip. So we build two things in: the number finds you rather than waiting to be asked for — problem or opportunity, and how big — and you can go from it straight to what's driving it without opening anything else. If a report we build can't do both, it isn't finished, and we'll say so before you hand it to anyone.
A gear train is made of different sizes turning at different speeds, and they drive one output. Fit a gear cut for another machine and it still turns beautifully — and the machine stops. Four numbers only work if they're cut from the same objective — and when they are, the harder each department works, the further the company gets.
We build the measurement system a business runs on — every level of it live, every number traceable to what is driving it, and the whole of it aligned to where you are trying to get this quarter and in three years. Done that way, every layer of the organization is accelerating the same objective, and you can watch it happen. Start there →
Data
A sale moves through stages before it becomes money, and a figure taken at each one means something different. An order placed isn't revenue. What counts, and at what point, is the first decision — and everything built on top inherits it, so we build that relationship in: change the definition later and everything connected to it changes with it, and stays aligned.
To be sure what's on the shelves, you close the shop and count. Need the number twice a day and you close twice a day — and the register knew it all along. A client was running the equivalent: the figure they wanted only existed after the end-of-day job, so they ran that job during operating hours, several times a day. It locks the records while it works, and around 70 orders a day couldn't be entered in the week of month end. They called us about an ERP that was glitching. We found the root cause, replicated production into a data lake in real time, and pointed the reporting there, counting the orders that had shipped but weren't billed yet. The glitch was never a glitch, and leadership sees the number in real time.
A number is produced in one place and consumed in another. It means one thing to the team that generated it and another to whoever is adding it up, and both have to hold. The gap widens with distance — another department, another site, another entity on its own calendar. Aligning the definitions and accounting for the variations that are real is what carries one number from the floor to the board — on the day it's needed.
We design and build the architecture everything else stands on — the model, what every number means, how it is governed and secured. It sets the ceiling for everything above it. Start there →
Custom software
Few car companies make their own transmissions — one of the most complicated parts of the car. The same ZF eight-speed sits in a Jeep and in a Rolls-Royce. Each company specifies and tunes it for their own car, and that is the whole difference between the two. Software is no different: the runtime and the frameworks come from suppliers like Microsoft and sit underneath scores of businesses. What we build is everything between those and a working application, shaped to how your business runs. When a fault turns up in a supplied part, fixing it is the supplier's job, for everyone at once.
It is the architecture, and off-the-shelf software gets it wrong too — a front end talking straight to the database, nothing encrypted in transit or at rest, passwords stored as plain text. Ours is layered: the front end never touches the database. A security layer sits between them and is the only thing that does — the same one in every application we build. Identity runs through your own provider where you have one, Entra ID or its equivalent, and inside the application to the same standard where you don't. So what you're buying isn't a promise about our code — it's a structure someone else can inspect.
Anyone can say the right words in a meeting — layered, encrypted, single sign-on. The test is whether they will show you. Ask to see the architecture and the security design, not a description of them. Then ask what you would be holding if they walked away tomorrow. A builder who has good answers hands both over without being pushed; one who doesn't will explain why you don't need them.
Most mid-market companies are already running something custom — a quoting tool, a scheduler, something bridging two systems that were never meant to talk. If whoever built it has gone and there's no documentation, a change that should take a week takes a quarter, because only one party can make it. What we build ends differently. You get all of it — the source, the architecture and security design, the specification and the documentation, produced as the work happens rather than written up at the end. No subscription, because there is nothing to license. Whoever you choose can maintain it, including us if you want.
We design and build production software — architected and secured properly, and yours outright when it is done. We get there only after we are satisfied that nothing off the shelf will do the job. Start there →
Everything was custom. The contract said API.
- 10×the route the contract described
- 5 minthe call that avoided it
A CRM built entirely on custom tables, where the only API path was read-only. The agreement meant a third vendor, three months before real work could start, and a dependency with no natural end. Read what happened →
This is the layer a business runs on — the systems, the data underneath them, and whatever has been built to hold the two together. We design it, build it, and stay past go-live. Working across all of it is what lets us tell you where a problem sits, or whether the thing you are about to commit to is the right one. Start there →
on qualifying projects, a portion of the engagement effort may be capitalizable rather than expensed. Worth confirming with your finance team.
Three other ways in
Design · build · both
Not sure we're a fit? Not sure where to start?
Both are good reasons to call.
Start a conversation →- ERP — Infor, SAP, Sage & more
- CRM — Salesforce, Zoho & more
- Ops apps — Medius, Planful & more
- WMS & warehouse systems
- Legacy system replacement
- ERP upgrades & version currency
- Data migration & cutover
- Real-time replication & change data capture
- Data lakes, Power BI & analytics
- Data quality, validation & backfill
- Master data & definitions
- Single pane of glass across ERPs
- Custom .NET applications — C#, SQL Server
- Source control, CI/CD & environments — Git
- Workflow & process automation
- API & EDI integration
- Integration middleware & iPaaS
- EDI — X12, EDIFACT & trading partner onboarding
- Event-driven & message queue integration
- Application security & access control
- Single sign-on & identity federation
- On-prem, hybrid & SaaS delivery
- Hypercare & post-go-live support
- Month-end close & financial reporting
- Spreadsheet replacement & shadow systems
- Self-service reporting & analytics
- Change request & release management
- Licensing & total cost review
- Vendor lock-in & exit planning
- System-to-system reconciliation
- Enterprise KPI & performance reporting