Boring where it matters. Sharp where it pays.
We're opinionated, not religious. The list below is what we reach for most often, and what we have enough people to support at 2am. If your estate runs on something else, we'll learn it — we've inherited stranger things than whatever you're worried about telling us.
Four questions before anything enters a production stack.
Can we hire for it?
If the local market has forty people who know a technology, choosing it makes your team unhirable. That's a business risk dressed as a technical decision.
What happens when it breaks?
We want a debugger, real logs and a community that has already hit the failure. Novelty is a poor companion at 3am on a Sunday.
How hard is it to leave?
We'll use managed services happily, but we want a documented exit — where the data lives, what format it comes out in, and roughly what a move would cost.
Does it match your team?
The best stack for us is irrelevant. The question is what your people can run after we've gone, which sometimes means picking the less elegant option.
What we run, by layer.
Languages & frameworks
Front-end & mobile
Data & streaming
Cloud & platform
AI & machine learning
Quality & security
And the things nobody puts on a stack page.
A meaningful share of our revenue comes from systems written before some of our engineers were born. We're comfortable there.
COBOL batch on mainframe, Oracle Forms, classic ASP, Struts 1, VB6, AS/400 estates, PL/SQL packages with ten thousand lines and no tests. We don't sneer at them — they've been running the business for two decades, which is more than most modern rewrites manage.
Our approach is characterisation tests first, then strangler-fig migration, then retirement. Never a big-bang rewrite unless we've genuinely run out of alternatives, and we'll show you our working when we say that.
Estates we've modernised
Tell us what you're running.
Including the parts you're embarrassed about. We've almost certainly seen worse, and the embarrassing parts are usually where the value is.