Skip to content

Case studies

Case studies, written like engineering reports.

What was broken, what couldn't change, what got built, and what it was worth. Client names are left out; everything else is how it happened.

Automotive

Multi-tenant platform for an OEM dealer network

Type
Legacy modernization, SaaS
Stack
Laravel, Livewire, microservices
Duration
~18 months

A. Problem

A Symfony monolith serving hundreds of dealerships had become slow to change. Every feature risked breaking another tenant.

B. Constraints

Live system, no downtime window. Dealer data isolated per tenant. Front end mid-migration from React to Vue.

C. Solution

Incremental Laravel rewrite behind the existing routes, module by module. High-load features split into separate services.

D. Outcome

~40%

Drop in response times after the rewrite.

Legal

Practice management platform for law firms

Type
SaaS product, built from zero
Stack
Laravel, Filament, Pest
Duration
~14 months

A. Problem

Small firms tracked matters, deadlines and billable time across spreadsheets, email threads and a calendar. Things got missed.

B. Constraints

Client confidentiality, strict separation between firms, and an audit trail on every record a court might ask about.

C. Solution

Multi-tenant platform with role-based access, matter timelines, document handling and time entry in one place. Tested end to end.

D. Outcome

~16 hrs

Saved a week, as reported by firms using it.

Healthcare

Web infrastructure for a national care provider

Type
Platform consolidation
Stack
WordPress Multisite, PHP
Duration
~8 months

A. Problem

Every facility had its own website, its own plugins and its own security holes. Updating them meant logging into each one.

B. Constraints

Non-technical editors at each location. Corporate brand rules. Sites that had to stay up through the migration.

C. Solution

A single Multisite network on a shared theme, with locked-down templates editors can't break and one place to patch.

D. Outcome

230+ sites

Running on one codebase, updated once.

Server security

The 97-day break-in

Type
Incident response
Stack
Ubuntu Linux, MySQL, Nginx, UFW
Duration
~3 days
Read the full story →

A. Problem

A production server had stopped sending its email. Looking into it turned up something worse: a cryptominer had been running for 97 days, and nothing on the box had noticed.

B. Constraints

A live server that had to stay up. The logs that could have shown how they got in had already rotated away, so the entry path had to be found by closing every door that was open.

C. Solution

Dated the break-in to the day it happened and swept the server for every other foothold. The most likely way in, a database port open to the internet, was closed the same morning, and every credential on the machine was rotated before I logged off.

D. Outcome

Same day

A clean, locked-down server with an alarm that rings if anything like it ever comes back, and backups that leave the building every night, restore-tested.

Got a system that needs the same treatment?

Tell me what's slowing the business down. A 30-minute call, no charge and no pitch, and you'll leave knowing what I'd do first.

Schedule a Discovery Call