commercetools Engineering

A great product.
And a tech stack
to match.

Explore open positions

Our product

Our headless commerce platform serves as the backend for businesses to build out their commerce operations with data, which they can retrieve using separately-deployed frontends. The platform consists of the Merchant Center, a powerful user interface for managing products, categories, order and customer information, and more, and the highly-functional APIs we pride ourselves on.

That means we’re not just working with code and databases, but also UI and UX for the Merchant Center. Our customers love using Merchant Center, and for good reason. We’ve packed that part of our platform with extensive functionality and customizability, including interactive dashboards, Custom Apps, and more. The handy Import API exists to allow customers to easily populate their instance of our platform with data from their end.

Check out our Github and Youtube channel.

A snapshot at our tech stack

Frontend

Being one of its early adaptors, all of our frontend applications are built with React, while the data needed for our applications are fetched via GraphQL and Apollo. We use both our public commercetools APIs as well as internal GraphQL APIs maintained by our teams for session management, proxying requests, and storing user settings. The building blocks of our internal APIs are Prisma, Apollo Server, and Express.

In order to establish a common basis for code quality, we utilize tools such as ESLint, prettier and TypeScript where possible. Additional testing on various levels with react-testing-library and Cypress gives us confidence when improving existing or creating new features. Continuous Integration on CircleCI, or more recently, GitHub Actions provides quick checks on changes while early and frequent integration is powered by feature toggling.

We deploy all our applications and services into multiple Kubernetes clusters, which allows us to deploy multiple times a day if needed. We recently also added the notion of an automatic deployment train.

Backend

We honor our values in the way we work: We learn together to improve ourselves and our product. We celebrate autonomy in a high-trust environment which allows each individual to define their choices and processes.

When the utilization of a new technology emerges, we take time to consider it and its trade-offs before putting it in production. Our product’s high-performing backend is written in functional Scala and has Event Sourcing as its core. This allows us to add new components, react to events, persist the data from different views, and on different technologies in an eventually consistent manner. On the client-facing side, we present the best APIs, embracing CQRS and GraphQL to allow our customers to work in the most intuitive and modern ways possible.

Automated testing enables us to deploy with confidence anytime, while our custom algorithms are built in-house to ensure a resilient multi-tenant platform.

Infrastructure

We advocate our teams to use open-source solutions, with adjustments and adaptations that meet our needs, and to contribute back to the community.

Our product is multi-cloud: commercetools runs on Google Cloud Platform and Amazon Web Services in multiple regions across North America, Europe and Asia Pacific/Oceania. All services are running on various Kubernetes clusters with the help of toolings from CNCF landscape: Prometheus, Envoy (within Istio), Helm, and Fluentd. Our other tools include Terraform, Packer as well as Vault from HashiCorp. Our code repository is maintained on GitHub and we run our CI/CD jobs on Google Cloud Builder. For in-house automation, we use Python and/or Golang.

Live agile. Breathe agile.

Our multiple vertical development teams at commercetools each have their own agile ceremonies, tailored to fit the teams’ needs. Autonomy and continuous development of their frameworks are always encouraged. Our Agile Coaches are there every step of the way to assist the team in defining the best processes for themselves. However, there are certain agile elements that all the teams follow:

Planning

At the start of every iteration, the team goes through the Backlog and discusses what could be delivered and how we are going to execute the work in the upcoming iteration.

Stand-up

The team members synchronize and communicate on a daily basis their plan for the current day.

Refinement

The team continuously works on their Product Backlog and it is up to the team to add, remove, adjust, and break down items and value, time, costs and priorities shift.

Review

The team demonstrates their accomplishments to the stakeholders at the end of the iteration.

Retrospective

The team reflects in a safe environment on their collaboration and performance and takes actions to improve the next iteration.

Visit our
tech blog

Join Us Illustration

“Technical”
challenge accepted?

We are waiting for you!

or find out more at

Hiring Q&A