From complex pricing to confident decisions.
Building the services behind enterprise retail planning. From domain models and gRPC contracts to resilient publishing and multi-tenant releases.
The challenge.
Retail pricing decisions connect products, trading terms, promotions and forecasts. A planning system needs to keep those relationships consistent while multiple services and teams evolve independently.
What I built.
I architected and built Price Planner and Forecast Planner from their first commits: service contracts, domain logic, persistence, CI/CD and quality gates. I also own architecture decisions and design reviews for the pricing squad, mentor three engineers and work directly with product.
- ↗︎Two greenfield planner services
- ↗︎550+ unit tests across the new modules
- ↗︎35+ tenants on the wider platform
The decisions behind it.
Explicit service boundaries
Versioned Protobuf contracts and a BFF keep the Angular portal separate from the internal gRPC services. Each service has a clear responsibility rather than leaking persistence details across the system.
Design for partial failure
Publish and unpublish operations cross service boundaries. Compensating actions handle failed publishes, while plan locking and controlled overrides protect changes in progress.
Make releases smaller
Trunk-based development, feature flags, error tracking and automated tests support incremental releases across a platform serving 35+ enterprise tenants in Australia, the UK and the US.
What matters most.
A distributed workflow is only as reliable as its recovery path. Making ownership, state transitions and compensating actions explicit is as important as the successful request.
Based on my professional experience at Scalene Group. Diagrams are simplified illustrations; no proprietary code or customer data is included.