Du überlegst, in einem der Kinsta-Entwicklungsteams mitzuarbeiten? Hier sind einige wichtige Dinge, die wir dir gerne mitteilen möchten!
Woran die Entwicklung arbeitet
- MyKinsta ist unser Hauptprodukt für unsere Kunden. Vereinbare gerne einen Termin für eine Demo, um herauszufinden, was es genau ist und wie es funktioniert. Kurz gesagt, bietet es unseren Kunden eine Schnittstelle zur Verwaltung ihrer Website-Einstellungen wie Cache, PHP-Version, CDN, DNS, mehrere Benutzer, Analysen usw.
- DevKinsta ist eine lokale Entwicklungssuite. Hol es dir kostenlos und probier es aus! Sie ermöglicht es dir, Websites lokal unter Linux, Windows und macOS zu erstellen und sie in deine Staging-Umgebung bei Kinsta zu übertragen.
- Wir haben unser eigenes Affiliate-System, mit dem sich Leute als Kinsta-Affiliates registrieren und Empfehlungslinks erstellen können, um sich selbst Verkäufe zuzuschreiben. Affiliates können sowohl einmalige als auch wiederkehrende Provisionen verdienen.
- Eines unserer Ziele ist es, alles, was wir können, für alle unsere Teams zu automatisieren. Zu diesem Zweck gibt es zahlreiche interne Tools, die wir für verschiedene Abteilungen erstellen und pflegen. Dazu gehören Superadmin-Tools als Abkürzungen für komplexe Aktionen, detaillierte, aber lesbare Protokolle, ein Tool, das alle Websites in unserer Infrastruktur anpingt, um einen reibungslosen Betrieb zu gewährleisten, eine spezielle Support-Plattform für unsere Kundenteams und vieles mehr.
Der Entwicklungsstack
Wir halten unsere Tools auf dem neuesten Stand und so homogen wie möglich.
- Node.js wird als Backend-Sprache verwendet.
- React wird für die Erstellung von Benutzeroberflächen verwendet.
- TypeScript ist die Sprache unserer Wahl.
- GraphQL ist unsere Abfragesprache, die durch Apollo implementiert wird.
- Wir verwenden sowohl NoSQL- als auch SQL-Datenbanken.
- Jest wird für Tests verwendet.
- Storybook wird für Komponententests und Dokumentation verwendet.
- Chromatic wird für Screenshot-Tests verwendet.
- Qase wird verwendet, um unsere automatisierten Nightwatch End-to-End-Tests zu verwalten.
Das Entwicklungs-Ökosystem
Die Entwicklung findet nicht in einem Vakuum statt. Alle Abteilungen sind miteinander verbunden, und obwohl einige von ihnen näher an den täglichen Entwicklungsprozessen dran sind als andere, arbeiten wir als ein einheitliches Ganzes.
- Wir haben ein eigenes Produktdesign-Team, das an der Vorplanung, der Recherche, den Benutzertests, der Festlegung des Umfangs und dem UX/UI-Design der Funktionen arbeitet. Sie kennen und arbeiten mit unserer Komponentenbibliothek und arbeiten mit der Entwicklung zusammen, um die Bibliothek auf dem neuesten Stand zu halten.
- Unser QA-Team hat die Aufgabe, Tests zu verwalten und sicherzustellen, dass die Entwicklungsarbeit den Erwartungen unserer Planungsphase entspricht. Wir sind der festen Überzeugung, dass die Aufgabe der QS nicht darin besteht, eine Ressource für die faule Entwicklung zu sein, um das Testen zu entlasten. QA wird als Nebenprodukt ihrer Arbeit Fehler finden, aber von den Entwicklern wird erwartet, dass der an QA gesendete Code richtig funktioniert.
- Unser Engineering DevOps Team ist dafür verantwortlich, dass die Verbindungen in unserer Serverinfrastruktur in MyKinsta kohärent sind. Sie beraten das Entwicklungsteam bei der Planung, bereiten Arbeiten vor, die auf den Servern durchgeführt werden müssen, und erstellen die Ansible- (oder andere) Skripte, die ausgelöst werden müssen.
- Unser Engineering SysOps Team unterstützt die Entwicklung bei der Erstellung von Instanzen mit angemessener Größe für die Anwendungen und wartet die für einen reibungslosen Betrieb erforderlichen Maschinen.
- Die Kundenteams und das Marketingteam sind entscheidend für unseren erfolgreichen Betrieb. Jede Änderung, die wir vornehmen, wirkt sich stark auf diese Abteilungen aus. Wir suchen diese Teams während der Planung auf, halten sie während der Bauphase auf dem Laufenden und stellen sicher, dass sie vor dem Start alle nötigen Informationen und Schulungen erhalten.
- Andere Teams und Abteilungen wie die Finanzabteilung, die Betriebsabteilung und andere können ebenfalls in Projekte einbezogen werden, wenn wir Tools automatisieren, an Abrechnungsaspekten unserer Infrastruktur arbeiten und so weiter.
Wir sind stolz auf die kollaborative Atmosphäre, die wir geschaffen haben. Von den Teammitgliedern wird erwartet, dass sie verstehen, wie wichtig es ist, die Bedürfnisse der anderen Teams zu erfüllen. Die Entwickler wissen, dass die Marketing- und Kundenteams eine Vorwarnung und vielleicht einen UI-Freeze vor der Veröffentlichung brauchen, genauso wie diese Teams die Notwendigkeit von PR-Reviews und Tests verstehen, die unseren Zeitplan nach hinten verschieben können.
Wie die Entwicklung organisiert ist
Kinsta ist ein agiles Unternehmen. Wir haben keine Angst vor Veränderungen – wir suchen sie aktiv, um unsere Leistung kontinuierlich zu verbessern. Aus diesem Grund entwickelt sich die Organisation der Entwicklung ständig weiter, während wir wachsen.
Projekte sind die wichtigste „Organisationseinheit“, die wir verwenden. Entwickler/innen werden Projekten zugewiesen und ein/e Projektverantwortliche/r wird bestimmt – in der Regel ein/e Entwickler/in selbst. Der Projektverantwortliche ist für die Umsetzung der Idee in ein freigegebenes Feature verantwortlich. Je nach Art des Projekts hat der Projektverantwortliche ein gewisses Maß an Kontrolle über das Feature selbst, seinen Umfang, die Planung usw. Der Projektverantwortliche ist auch für die reibungslose und rechtzeitige Kommunikation zwischen allen Abteilungen von verantwortlich.
Wir verwenden Jira, um unsere Aufgaben zu organisieren, und GitHub, um unseren Code und damit verbundene Aktivitäten wie PR-Reviews zu verwalten.
Wir haben zahlreiche Tools in unsere GitHub-Repositories integriert, die uns bei der Entwicklung helfen und eine gute Zusammenarbeit ermöglichen – nicht nur zwischen den Entwicklern, sondern auch mit anderen Teams:
- Codeship und Buddy.works für die Durchführung von Unit-Tests
- Chromatic für die automatische Erstellung von Storybook und für die Durchführung von Screenshot-Tests
- Danger JS zur Durchführung von benutzerdefinierten Prüfungen, um die Konsistenz von Code-Stil und PR-Beschreibungen sicherzustellen
- Ein speziell entwickelter Dienst, der automatisch eine Docker-basierte Testumgebung für jeden PR erstellt. Das ist nützlich für Code-Reviewer, das QA-Team und das Produktdesign-Team, denn so können wir die Änderungen an einem Ort diskutieren.
Schau dir unsere aktuellen Stellenangebote an!