Tech Stack ⚙️
In den Teams entscheiden wir selbst, welche Technologien wir für welchen Zweck verwenden. Dennoch gibt es einige gemeinsame Schnittstellen über die Teams hinweg. Du findest sie unten.
Die Hochlast-Umgebung, in der wir arbeiten, bringt viele spannende Herausforderungen, die sich in unserem Tech-Stack widerspiegeln. Diese Liste zeigt nur die am häufigsten verwendeten Technologien und ist eine Momentaufnahme.
Frontend
Im Frontend setzen wir hauptsächlich auf Jinja als Template Engine. Sie lässt sich super in Python integrieren und hat für unsere Use Cases genau die Features, die wir brauchen. Reines HTML ohne Styles ist nicht so cool. Um unsere Styles zu bauen, verwenden wir Sass. Mixins und Funktionen erleichtern uns das Schreiben und stellen Wiederverwendbarkeit sicher. Am Ende wird das Sass zu CSS kompiliert und automatisch für Browser geprefixed. In manchen Fällen reichen HTML und CSS nicht aus, weshalb wir nach dem Progressive-Enhancement-Prinzip unsere Features mit Hilfe von JavaScript um Funktionen erweitern, wenn es nötig ist.
Neuere Features implementieren wir gerne mit Svelte oder SvelteKit.
Backend
Wir arbeiten im Backend mit Python, weil wir uns in diesem Ökosystem seit Jahren richtig gut auskennen und in der Community gut vernetzt sind. Zusätzlich dazu setzen wir auch noch auf weitere Technologien und Frameworks wie beispielsweise:
- PostgreSQL und PostgREST
- NGINX und Fastly
- OpenAPI Spezifikationen
Operations
Im OPS-Team verfolgen wir einen Infrastructure as Code (IAC) Ansatz. Auf diese Art können wir unsere Entscheidungen zum Betrieb gut formalisieren. Hierfür verwenden wir unter anderem:
- Terraform
- Kubernetes
- Prometheus
- Honeycomb
- Google Cloud Platform
- GitHub Actions
- FluxCD