commercetools Engineering

Außergewöhnliche
Menschen für ein
außergewöhnliches
Produkt

Aktuelle Jobangebote

Unser Produkt

Unsere headless E-Commerce-Plattform ist ideal für Unternehmen, die mit ihrem Backend die unterschiedlichen Touchpoints („heads“) bedienen wollen – von Standard-Webshops und mobilen Geräten bis hin zu Sprachassistenten und Car-Commerce-Szenarien. Unsere Plattform punktet mit ihrem flexiblen Merchant Center, einer leistungsstarken Benutzeroberfläche zur Verwaltung von Produkten und Kategorien sowie Bestell- und Kundeninformationen – und mit hochfunktionalen APIs, die all das erst ermöglichen.

Das heißt, dass wir nicht nur mit Code und Datenbanken arbeiten, sondern dass auch UI und UX-Design für unser Merchant Center eine beachtliche Rolle spielt. Unsere Kunden nutzen es aus gutem Grund gerne: Wir haben es mit umfangreichen Funktionen und individuellen Einstellungsoptionen ausgestattet, z.B. intuitiven Benutzeroberfläche, benutzerdefinierten Applikationen und vielem mehr. Dazu gibt es die praktische Import-API, mit der jeder Kunde seine Plattform unkompliziert mit Daten befüllen kann..

Schau bei Github oder unserem YouTube-Kanal vorbei.

Unsere Technologie – ein kurzer Überblick

Das Frontend

Sämtliche Frontend-Anwendungen werden mit React erstellt – schließlich gehören wir zu den Nutzern der ersten Stunde. Die für unsere Applikationen benötigten Daten werden über GraphQL und Apollo abgerufen. Dabei arbeiten wir sowohl mit unseren öffentlich nutzbaren commercetools-APIs als auch mit internen GraphQL-APIs, die unsere Teams für das Session-Management, Proxying-Anfragen und die Speicherung von Benutzereinstellungen pflegen. Dabei sind Prisma, Apollo, Server und Express die Bausteine unserer internen APIs.

Um eine hohe Qualität unsere Codes sicherzustellen, verwenden wir Analysewerkzeuge und Code-Formatierungstools wie ESLint, Prettier und TypeScript, wo immer es möglich ist. Anpassungen, beispielsweise wenn wir bestehende Funktionen verbessern oder neue erstellen, durchlaufen stets zusätzliche Tests auf verschiedenen Ebenen der react-testing-library und Cypress. Über die kontinuierliche Integration auf CircleCI und seit Kurzem auch GitHub Actions können wir Änderungen durch eine frühzeitige und kontinuierliche Integration überprüfen und deren Qualität sicherstellen.

Sämtliche commercetools-Applikationen und Dienste stellen wir in diversen Kubernetes-Clustern bereit, sodass sie, wenn nötig, mehrmals pro Tag ausgerollt werden können und ihre Skalierbarkeit gewährleistet ist. Dabei haben wir auch das Konzept einer automatisierten deployment train eingeführt. Im kontinuierlichen Deployment arbeiten wir mit feature flags, um das Aktivieren oder Deaktivieren von Funktionalitäten zu kontrollieren und sie so vom Deployment selbst zu entkoppeln.

Das Backend

Wir leben unsere Werte durch die Art und Weise, wie wir arbeiten. Wir lernen gemeinsam, verbessern gemeinsam unsere Skills und damit auch unser Produkt. Gegenseitiges Vertrauen ermöglicht es jedem einzelnen von uns, Entscheidungen und Prozesse zu hinterfragen und zu verbessern.

Bevor wir eine neue Technologie einführen, nehmen wir uns Zeit, sie ausgiebig zu testen. Das hochleistungsfähige Backend unserer Software ist in Scala geschrieben, ihr Kernstück ist das Analysemuster Event Sourcing. Dadurch können wir flexibel neue Komponenten hinzufügen, schnell auf Ereignisse reagieren und Daten aus unterschiedlichsten Ansichten oder Technologien konsistent speichern. Unseren Kunden stellen wir erstklassige APIs zur Verfügung, die von den Abfragesprachen CQRS und GraphQL unterstützt werden. So können unsere Kunden die commercetools-Plattform möglichst intuitiv bedienen.

Dank automatisierter Tests arbeiten wir jederzeit zuverlässig, auch in der Entwicklungsphase neuer Algorithmen. So gewährleisten wir eine verlässliche und extrem robuste Multi-Tenant-Plattform.

Die Infrastruktur

Wir motivieren unsere Teams, Open-Source-Lösungen zu verwenden, sie unseren Bedürfnissen entsprechend anpassen und durch diese kollaborative Entwicklung auch anderen Entwicklern, Nutzern und Unternehmen einen praktischen Nutzen zu bieten.

commercetools ist ein Multi-Cloud-Produkt. Es läuft auf Google Cloud und Amazon Web Services in Nordamerika, Europa und im asiatisch-pazifischen Raum. Sämtliche Services werden mit Hilfe von Tools aus der CNCF-Landschaft auf unterschiedlichen Kubernetes-Clustern betrieben: Prometheus, Envoy (innerhalb von Istio), Helm und Fluentd. Weitere Tools, die wir nutzen, sind Terraform, Packer sowie Vault von HashiCorp. Unser Code-Repository wird auf GitHub gewartet und unsere CI/CD-Jobs laufen auf Google Cloud Builder. Für die interne Automatisierung verwenden wir Python und/oder Golang.

Agil arbeiten. Agil leben.

Jedes unserer vertikal organisierten Entwicklersteams hat seine eigenen agilen Abläufe, die auf die jeweiligen Bedürfnisse zugeschnitten sind. Es liegt uns am Herzen, dass die Teammitglieder gemeinsam wachsen. Dafür schaffen wir die nötigen Rahmenbedingungen, indem wir ihnen jederzeit unsere agilen Coaches zur Seite stellen, die sie bei der Definition der für sie idealen Prozesse unterstützen. Einigen Prinzipien folgen allerdings alle Teams gleichermaßen:

Planung

Zu Beginn jeder Periode besprechen alle gemeinsam das Backlog, priorisieren die Anforderungen und teilen die Aufgaben untereinander auf.

Stand-up

Morgens bringen sich die Teammitglieder gegenseitig auf den neuesten Stand und entwickeln ihren Plan für den Tag.

Verfeinern

Das gesamte Team arbeitet kontinuierlich am Product Backlog. Dazu zählen auch die Entscheidungen, ob Elemente hinzugefügt, entfernt, angepasst oder neu untergliedert werden müssen, wenn Wert, Zeit, Kosten und Prioritäten sich verschieben.

Review

Nach dem Abschluss eines Projekts wirft das Team einen Blick auf das Ergebnis und präsentiert seine Leistung den beteiligten Akteuren.

Retrospektive

In einem abschließenden Schritt reflektieren die Teammitglieder ihre Zusammenarbeit und überlegen gemeinsam, was künftig noch verbessert werden kann.

Schau auf unserem
Tech-Blog vorbei

Join Us Illustration

“Technical”
challenge accepted?

Wir warten auf Dich!
Hiring Q&A