Software Engineering
We design and build systems where getting it wrong has a cost — forecourts that cannot stop mid-fuelling, tills that have to keep selling when the connection drops, billing that has to be right to the litre. That means thinking about failure before features: what happens on a crash, what happens offline, what happens when the hardware answers slowly.

What that covers
System and data architecture for multi-site, multi-tenant products
Hardware and protocol integration where no vendor SDK exists
Crash-safe transaction handling and offline-first behaviour
Long-lived services and background workers on Windows and Linux
Where we've done it
We wrote the forecourt layer for Delta Group's 20+ stations — speaking the controller protocol directly, one thread per dispenser, transactions that survive a crash mid-fuelling. See the work
