HelloTech

The HelloFresh engineering blog

Follow publication

An introduction to HelloFresh’s SCM Engineering

By Ignacio Julve

You probably have already read about HelloFresh and its mission to change the way people eat, forever, but you probably have not heard as much about what the engineers at HelloFresh are doing, right? In this post we are going to tell you a little bit about parts of the engineering organization. In particular, we are going to talk about Supply Chain Management Technology (SCM).

If you want to read more about the overall Engineering organization, called HelloTech, you can read about it here.

Impact of SCM at HelloFresh

To pique your interest, let’s look at how relevant SCM is for HelloFresh, shall we?

Each year HelloFresh launches more markets and more brands, and all of those require our technology infrastructure to keep the engine running.

SCM is at the core of what HelloFresh does and the tools and infrastructure we build is the foundation for everything we do. All HelloFresh processes rely on SCM Tech to operate. We manage the contracts with our suppliers, we place orders, we control the receipt of goods, we handle inventory, we keep track of the box labelling and production and we keep a close connection with different areas of the company, from Finance to Operations. Our challenge is to improve efficiency and reduce waste across the supply chain.

Our Challenge

We are on our way to transform how SCM works at HelloFresh. We want to go from a mostly manual process of review, analysis and decision making that takes several hours to a fully-automated under human supervision that takes minutes. We want to interconnect many different data sources to help our users make better, informed decisions. We want to access the data of the myriad of different warehouse software management systems, internal analysis tools and different systems to let it flow seamlessly. We want to unify all of the different processes and we want to make it easy, nice, fast, scalable and reliable.

HelloFresh has grown a lot in the past few years, but we are now planning to scale up our engineering teams even more. As our CEO announced, we are hiring 1,000 people for our tech team. That means lots of opportunities as new teams are formed and completely new areas are being developed.

Sounds like an interesting challenge? Keep on reading!

Ways of working

We used to follow a model that is inspired by the well-known Spotify Model. You can read up on the initial setup of this model in this article.

SCM Tech is divided into five business domains. Each of these business domains is organised by a Product Director. Our engineering teams are organised into different Tribes which are loosely coupled with business domains and are, in turn, composed of multiple Squads who work on well.defined workflows. Each Squad can consist of cross functional roles, team members with different backgrounds and skills, and possibly a Lead, depending on the mission. Development follows Domain Driven Design principles and workflows are, when possible, bounded contexts.

In addition, we have Staff and Principal Engineers who act in horizontal functions across Domains, Tribes and Squads. These specialists help us follow good practices, align technologies, coordinate cross-domain contexts and encourage code reusability, among many other tasks.

We mostly use Scrum and each Squad works closely with a Product Owner on a daily basis, who helps them to deliver valuable features to our customers. The Engineering organization works as one with the Product organization to ensure we are fully aligned with our overall strategy and mission. We value autonomy over heavy processes and each team is empowered to run their code in production in the best way they can envision.

We closely follow new videos from Dave Farley and we practice TDD, BDD, pair programming, and swarming techniques on a daily basis. Our teams fully embrace the CI/CD principles (meaning that the time between push to main and live deployment is measured in minutes), DevOps methodologies and “you build it you own it” principle.

Technologies

HelloFresh is in the middle of transforming how we store, use and distribute data. If you have not read the article about our Journey to the Data Mesh, you should do it now! You can find it here.

In parallel to that transformation we are also evolving our infrastructure, tools and software to adapt to the new needs and design.

As a rule of thumb, we mostly create microservices written in Kotlin and deployed on a Kubernetes cluster. We leverage Kafka for our data infrastructure. Our code is hosted in github.

Our microservices are mostly written in Go or Kotlin, we use gRPC and protobuf for inter-service communication and we rely on Kafka for data. But the technologies we use are not limited to those, we also use Kafka Streams, Python, Spark, Airflow, other JVM based languages, Spring and React.

Some of our services are doing pure machine to machine communication but others are used by our customers through different sites integrated into our tools ecosystem. We mostly write those sites in Javascript using React, although we also use Typescript. We do server-side rendering mostly with Nextjs and we write Micro Frontends as well.

We are also learning and experimenting constantly. One of the latest trends that we are trying in some of the teams is the concept of nanoservice, for better scalability, resilience and adaptability to asynchronous consumption and aggregation of multiple Kafka topics. What technologies and creative ideas can you bring to HelloFresh? Let us know!

Openings

During 2022 we will scale our SCM Tech organization by creating at least five new Squads that will help us deliver new and improved solutions to our stakeholders.

If anything of the above has spiked your interest and if you would like to browse our current openings, please do not hesitate and take a look below!

We are looking to hire Backend and Frontend Engineers as well as Engineering Managers that can act as Squad Leads.

Thanks for reading!

Sign up to discover human stories that deepen your understanding of the world.

No responses yet

Write a response