project · 2017-2018
User-management platform for Sainsbury's
First professional engagement: built REST APIs and backend services for Sainsbury's (UK's largest retailer) user-management platform via TCS. Python Flask, OOP design patterns, and direct collaboration with the Corporate Pingit Business Product Owners through an Agile SDLC.
The starting line of my engineering career. A year and a half on a TCS engagement with Sainsbury’s (UK’s largest retailer), building the user-management platform that maintained internal user accounts across the retailer’s systems.
What I worked on
- REST APIs in Python Flask for the user-management surface: account lifecycle, role assignment, audit logging.
- OOP and design patterns. Most of the codebase had been around long enough to need careful refactoring; introducing standard patterns (factory, strategy, repository) where they fit kept the surface tractable as new endpoints were added.
- Stakeholder collaboration. Worked directly with Sainsbury’s Corporate Pingit Business Product Owners to scope and ship change requests, then support the existing services they depended on.
- Agile delivery. Two-week sprints, daily stand-ups, sprint reviews with the product owners. Real Agile, not theatre.
What I learned
This was the engagement that taught me three things I still rely on:
- The product owner is the source of truth, not the ticket. Read the ticket; then go talk to the person who wrote it. Half the requirements only emerge in conversation.
- REST API design is a long-running cost centre. Every shape you bake into a v1 endpoint, you live with for years. Spend an extra hour up front on the contract.
- OOP is a tool, not a goal. Reach for a pattern when the duplication or coupling actually justifies it; do not impose patterns on code that is fine without them.
Stack
Python · Flask · REST · OOP design patterns · Agile (Scrum) · Git.