The work, described as problems
Below is work we can name, with the problem each one was actually solving rather than a logo and an adjective. Some client work stays under NDA. For those we've written up the situation and how we approach it instead, further down the page. Some of it predates allgree, shipped by the same engineers under their own names, and some of those engagements are still running; each write-up says in what capacity.
Selected work
Products we designed, built, or took over, and what was hard about each.
RecoWealth
A research advisory platform taken from an idea to a product in market, the part of the advice that comes after 'buy'.
Permit Pro
Permit Pro, the parking permit platform from Park Loyalty in the US, replacing counter visits and paper books.
Marmin
A cloud e-invoicing platform that files compliant tax invoices across several countries from one integration.
DotPe
Scan-Order-Pay: contactless ordering and payment from a QR code on the table.
PayU: Offer Engine
A rules engine that resolves discounts and campaigns at checkout, in the checkout's latency budget.
OpenMic
A platform for AI voice agents that answer and place real phone calls, wired into the tools a business already runs.
Yellacon
A mobile marketplace for US households to list and share private parking: driveways, garages, guest spots.
Estackk
A loyalty and commerce platform in two halves: the dashboard a merchant runs the business from, and the app their customers use at the counter.
Internal operations tools
Two internal mobile applications replacing the spreadsheets a team was running operations on.
The work we can't name
The situations we get brought into most often, how we approach each one, and what you end up holding at the end. Written as approach, not as a result we'd need your trust to claim.
The database became the bottleneck
Queries that were fine at ten thousand rows are timing out at ten million. The obvious suggestion is a new database; the actual problem is usually three queries and a missing index.
- Find the real hot paths from query logs rather than from opinion
- Fix indexing and query shape first, since it's often enough on its own
- Introduce a read model or cache only where the numbers justify it
- Move the heavy work off the request path into jobs
A written before-and-after of the slow paths, and a migration plan that runs while the product stays up.
The AI prototype needs to become a feature
It works in a notebook and demoed well. Nobody knows its real answer rate, what it costs per user, or what it does when it's wrong.
- Build an evaluation set from real examples and grade the current version honestly
- Improve retrieval before touching prompts or models
- Set a cost and latency budget, then find the cheapest model that passes
- Define the fallback path and put the whole thing behind a flag
A feature with a measured answer rate, a cost ceiling, a defined behaviour when unsure, and a dashboard for both.
Two systems of record and a spreadsheet in between
A CRM, an internal tool, and someone reconciling them by hand every week. Everyone knows it's fragile; nobody has time to fix it.
- Map what actually flows between the systems, including the manual steps
- Decide which system owns each field, because most of the mess is unowned data
- Build a sync layer with retries, idempotency, and an audit trail
- Alert on divergence instead of discovering it at month end
The manual reconciliation step disappears, and when something does fail there's a log that says what and when.
The app got slow and nobody noticed when
It feels sluggish on real devices but fine on the team's laptops. Everyone has a theory and no one has a measurement.
- Measure on representative devices and real payload sizes, not a local build
- Separate server time, transfer size, and render cost before optimising
- Fix the largest contributor, re-measure, repeat, with no speculative rewrites
- Add a performance budget to CI so it can't drift back
Numbers before and after on the journeys that matter, and a check that fails the build when they regress.
First enterprise security review is coming
A large customer has sent a security questionnaire and the answers are currently 'we think so'.
- Review access control and find where authorisation is assumed rather than checked
- Get secrets out of code and into managed storage with rotation
- Add audit logging on the actions a reviewer will ask about
- Rehearse a restore from backup, because an untested backup isn't one
The questionnaire answerable with specifics, and the gaps closed before somebody else finds them.
A codebase nobody wants to touch
It works, it's business-critical, and the people who wrote it have left. Every change is quoted defensively because nobody can predict the blast radius.
- Add tests around the parts that change most often: safety before surgery
- Carve out the highest-churn area first, leave the stable core alone
- Run old and new side by side and compare outputs before switching over
- Document as we learn, so the knowledge stops being tribal
Changes stop being scary in the areas that matter, without a rewrite nobody could afford.
Recognise one of these?
Tell us which one is closest and where yours differs. That's usually enough for us to say what the first two weeks would look like.