welcome Welcome! LinkedIn

Domino's Pizza

Dominos Title: Domino's Pizza
Awards: -
Release Date: -

Summary

Extending and maintaining the complete software package in the European / Australian markets of Domino’s Pizza. Solution Design and Development of Full-Stack ASP.NET Core, (No-)SQL, React and GraphQL software hosted in Microsoft Azure and AWS in an agile team. Domino’s Pizza Enterprises Ltd is the Australian-owned master franchise holder for Domino’s in Australia, New Zealand, Belgium, France, the Netherlands, Japan, Taiwan, Germany, Luxembourg and Denmark. They are a leader in the food-technology space, achieving industry firsts in drone delivery, app ordering, voice assistants, artificial intelligence and augmented reality.

Within Domino’s there is a culture of microservices, Test Driven Design and Domain Driven Design. Each of the services act in its own domain. All the microservices are written in either ASP.NET or ASP.NET Core and are all hosted in Microsoft Azure. The front-end is written with React (HTML, SCCS, ES6). The data is stored in either SQL, CosmosDB, Blob Storage or Azure Storage Tables. Aside from direct API calls, messages are also transferred between microservices using the Azure Service Bus or Azure Storage Queue. All the services are heavily tested with unit tests, integration tests and E2E tests and have automated build pipelines in either TeamCity or Azure DevOps. Some services are automatically deployed through a release pipeline in Azure DevOps. Others need to be deployed manually through Octopus.

At the time I got started at Domino’s they had a goal of moving away from RAZOR and build the front-end in React (Native) with a GraphQL Layer between the frontend and backend. All the microservices were being rewritten to ASP.NET core. They temporarily migrated away from Microsoft Azure to AWS. A key component here was Infra as Code (using Cloud Formation) and Containers (ECS and EC2). At a later point, it turned out Microsoft Azure was a better choice after all, and we moved back, but we used the things we learned from AWS and now started using Infra as Code (using Terraform) and Docker containers and Azure Kubernetes Services (AKS).

As part of the European teams, I worked on all the services through the whole stack. We occasionally worked on maintenance and adding small features to existing functionality. Most of the time was spent on projects like order prediction, GDPR sanitization tools, integrating with aggregators (JustEat, ThuisBezorgd, etc.), adding tip the driver functionality and PayPal integration and other projects. Every code change was tested automatically and manually by a QA in the test environment and was reviewed by another developer through code reviews in a pull request.

At some point, after our technical lead left the company, I got the responsibility to come up with solution architectures for new projects and have daily meetings with the teams in Australia to coordinate. The most important part of this role was to explore what needed to happen to achieve the goal of multiple large scale (€1M+) projects and help the teams to implement it in the best possible way.

Team

I was leading the two European development teams. The teams consisted of eight developers, two QAs and two business analysts. We acted as an agile team with daily stand-ups, weekly refinements, and a retrospective per two-week sprints. All the other development teams were in Australia.

Technology and Tools

Front-End: React, HTML, CSS / SASS / SCCS / LESS, Type- & JavaScript, Bootstrap, JQuery
Back-End: C#, LINQ, .NET (Core), ASP.NET (Core), NodeJs (GraphQL)
Data: Entity Framework, SQL, CosmosDb, Azure Storage
Hosting: Cloud (Microsoft Azure, AWS), Containers & Kubernetes, Infra as Code (Terraform / Cloud Formation)
Testing: Unit, Integration, E2E, Selenium, Webdriver.io, TDD
Protocols: REST
Other: SCRUM / Agile development, System Architecture Design, (Azure) DevOps, Requirement Analysis, Test Automation (Unit / Integration / E2E), CI / CD (DevOps, TeamCity), Domain Driven Design, Test Driven Design, Design Patterns (i.e. SOLID), Problem-Solving, Solution ‘Pathfinder’, Teamwork and Collaboration, Project Planning & Management, Team Lead & Management, Communication, (Technical) Documentation

Go back

Show: All Projects
Show: Game Projects
Show: Software Projects