Unser Tech Stack – Ein Blick hinter die Kulissen

Lesezeit: 6 Min, veröffentlicht am 21.06.2023
Unser Tech Stack – Ein Blick hinter die Kulissen

Bei cosee setzen wir auf eine Vielzahl von Technologien und Tools, um innovative und qualitativ hochwertige Lösungen für unsere Kunden zu entwickeln. Dabei ist ein gut zusammengestellter Tech Stack entscheidend, um flexibel auf Bedürfnisse reagieren und erstklassige Produkte bauen zu können.

Unser Tech Stack umfasst Programmiersprachen, Datenbanken, Bibliotheken, Frameworks und Entwicklungswerkzeuge aus den Bereichen:

  • Cloud Backend Engineering
  • Frontend Engineering
  • Mobile Engineering
  • Embedded und IoT

In all diesen Disziplinen arbeiten unsere Teams nach gängigen DevOps-Praktiken. Im Blogpost geben wir euch einen Überblick unserer aktuellen Technologien in jedem Bereich.

Cloud Backend Engineering:

Beim Cloud Backend Engineering ist unser Ziel, robuste, wartbare und skalierbare Backend-Anwendungen für unsere Kunden zu entwickeln. Wir sind nicht auf eine einzige Kombination aus Technologien und Frameworks festgefahren, sondern stellen aus unserer Tool-Box einen Tech Stack zusammen, der zu den Anforderungen der Anwendung passt:

  • Bei größeren Backends setzen wir beispielsweise auf Java mit Spring Boot oder Quarkus.
  • Go und Python (mit FastAPI) kommen im Backend als weitere Programmiersprachen zum Einsatz.
  • Als relationale Datenbank setzen wir meist auf PostgresSQL, bei besonderen Anforderungen auch MySQL und Oracle.
  • Wir nutzen Flyway um Datenbankmigrationen auszurollen und setzen auf Elasticsearch oder Memcached, falls die Bereitstellung von Daten weiter beschleunigt werden muss.
  • Wir entwickeln “cloud-native” Anwendungen, die überall laufen können, wo Container unterstützt werden. Das fertige Produkt läuft meist in einer Containerorchestrierung wie Kubernetes und wird mit Helm deployt. Dieselbe Anwendung kann aber auch mit preiswerteren Container-Services wie beispielsweise AWS App Runner betrieben werden.
  • Für Authentifizierung und Autorisierung verwenden wir entweder Keycloak oder integrieren eine schon vorhandene Single Sign-On Lösung.
  • Darüber hinaus integrieren wir Observability via OpenTelemetry als festen Bestandteil in unseren Anwendungen.

Als Partner der Amazon Web Services (AWS) betreiben wir unsere Software gerne in der AWS-Cloud. Wir nutzen aber auch andere Cloud-Anbieter wie die Google Cloud Platform (GCP) oder die OpenTelekomCloud (zB wenn besondere Anforderungen an den Datenschutz gesetzt werden).

Backend Tech Stack auf einen Blick:

cosee Tech Stack Backend

DevOps:

Bei cosee legen wir großen Wert auf effiziente und reibungslose Softwareentwicklung, Bereitstellung und Betrieb. Deshalb arbeiten wir nach DevOps-Praktiken (Development & Operations). Mithilfe von Continuous Integration, Continuous Delivery und Continuous Testing schaffen wir es, dass qualitativ hochwertige, performante Software ausgeliefert wird und wir in kurzen Release-Zyklen arbeiten. Dabei können alle Mitglieder unserer Entwicklungs-Teams alle Aufgaben des Software Delivery Lifecycle übernehmen.

Ganz im Sinne der DevOps-Bewegung brechen wir die Silos zwischen Entwicklung und Betrieb in unserer Zusammenarbeit mit Kunden auf und ersetzen diese durch eine intensive Kollaboration mit unseren Kunden. Denn nur wenn ein Unternehmen die Software von Anfang nicht nur baut, sondern auch betreibt, können wir von echtem DevOps sprechen.

Wie wir mit DevOps-Praktiken erfolgreich Produkte umsetzen und diese ordentlich an unsere Kunden übergeben, erfahrt ihr in Konstantins Talk auf der Java Pro “You Build it but you aint gonna run it”.

Für die Umsetzung von DevOps-Praktiken nutzen wir folgende Tools:

cosee Tech Stack DevOps

Frontend Engineering:

Unsere Frontend-Entwickler sind in der Lage, komplexe Web-Anwendungen mit multiplen Anforderungen zu entwickeln. Wir verstehen, dass ein responsiver Web-Auftritt von entscheidender Bedeutung ist, um ein nahtloses und benutzerfreundliches Erlebnis auf verschiedenen Geräten zu gewährleisten. Daher legen wir großen Wert auf die Benutzerfreundlichkeit und sorgen dafür, dass Benutzeroberflächen intuitiv bedienbar sind und ein reibungsloses Nutzererlebnis bieten.

Unser Tech Stack im Frontend Engineering umfasst eine breite Palette von Tools und Frameworks, die wir je nach den Bedürfnissen unserer Kunden einsetzen:

  • Moderne Frameworks wie z.B. React, Vue.js, Next.js, Angular und Gatsby
  • Deployment: Netlify und AWS
  • Qualitätssicherung und Testautomatisierung: Cypress.io, Playwright, Jest, Testing-Library und Vitest
  • Für Design: Adobe Suite und Figma
  • Für die Paketverwaltung: npm und Yarn
  • Weiteres: TypeScript, Vite.js, ESlint, Prettier, Bootstrap, Tailwind CSS, Sass, Mock Service Worker, Rest, GraphQl, OpenApi und Git

Frontend Tech Stack auf einen Blick:

cosee Tech Stack Frontend

Mobile Engineering:

Im Bereich Mobile Engineering entwickeln wir nutzerzentrierte mobile Apps für verschiedene Plattformen. Da unsere Kunden oft Apps für mehrere Betriebssysteme benötigen, setzen wir bei der Entwicklung von plattformübergreifenden Apps auf das Cross-Plattform Framework Flutter. Es hat sich in den letzten Jahren als eine besonders effiziente und kostengünstige Alternative erwiesen. In einem Blogpost beleuchtet Tom, einer unserer Mobile Engineers, wann sich der Einsatz von Flutter lohnt.

Diese Technologien setzen wir für mobile Anwendungen ein:

  • Die Programmiersprache Dart als Basis ermöglicht uns die effiziente Erstellung hochwertiger und ansprechender Benutzeroberflächen.
  • Um den Entwicklungsprozess zu optimieren, setzen wir auf Fastlane, eine Automatisierungslösung für das Deployment.
  • Mit Firebase realisieren wir Echtzeitdatenbanken und Authentifizierungsdienste.
  • Für native Anwendungen nutzen wir in der Android-Entwicklung Kotlin, während Swift unsere bevorzugte Sprache für die native iOS-Entwicklung ist.
  • Unsere Toolchain im Mobile-Bereich umfasst außerdem Mockito, Flutter Golden Tests und JUnit, um effektive Tests und eine reibungslose Continuous Integration und Delivery sicherzustellen.
  • Mason hilft uns, wiederkehrenden Code in Templates zu kippen. Das spart uns Entwicklungszeit und verbessert die Codequalität.
  • Um einheitlichen und qualitativ hochwertigen Code zu gewährleisten, haben wir ein eigenes Set aus Lint-Regeln definiert.

Mobile Tech Stack auf einen Blick:

cosee Tech Stack Mobile

Embedded & IoT:

Embedded-Systeme sind spezielle Computersysteme, die in andere Geräte oder Systeme integriert sind und dabei eine spezifische Funktion erfüllen. Solche Systeme finden sich zum Beispiel in modernen Automobilen wieder, die ohne Elektronik praktisch gar nicht mehr funktionieren. Während Embedded-Systeme eigenständige Funktionen in Geräten erfüllen, bezieht sich das Internet of Things (IoT) auf die Vernetzung von physischen Geräten, Sensoren und anderen Objekten über das Internet, um umfassendere Anwendungsfälle zu realisieren.

Für die Entwicklung von Embedded- und IoT-Lösungen verwenden wir:

  • Die Programmiersprache C, um die Leistung und Effizienz unserer Anwendungen zu maximieren.
  • Mit Lua können wir die Skripterstellung und -ausführung in eingebetteten Systemen optimieren.
  • Zur Kommunikation und dem Austausch von Nachrichten nutzen wir das MQTT-Protokoll, das eine zuverlässige und effiziente Datenübertragung gewährleistet.
  • Um Anwendungen nahtlos in die Cloud zu integrieren und von den Vorteilen einer skalierbaren Infrastruktur zu profitieren, setzen wir auf AWS. (siehe Abschnitt Cloud Backend Engineering)

Embedded & IoT Tech Stack auf einen Blick:

cosee Tech Stack Embedded & IoT

Tags

Verfasst von:

Foto von Lara

Lara

Lara ist bei cosee im Marketing tätig.