Jeder Tag ist gefüllt mit neuen Herausforderungen und komplexen Aufgaben, die vor der Umsetzung eine gründliche Analyse erfordern.

Andrii, du bist der Front-End Guild Lead bei esurance. Was ist ein Guild Lead?

esurance hat eine moderne Softwarearchitektur mit mehreren Microservices und dementsprechend eine moderne Teamorganisation mit mehreren Teams. Die meisten Teams haben Front-End-Ingenieure. Die Front-End-Ingenieure sind nicht nur Teil eines formellen Teams, das einen Microservice pflegt, sondern auch Teil einer informellen Gruppe, die als Gilde bezeichnet wird und es ermöglicht, voneinander zu lernen oder einfach teamübergreifend zu fachsimpeln. Ein Konzept, das viele in der Softwarebranche von Spotify übernommen haben.

Microservices sind mit einer gewissen Komplexität verbunden. Wie kommen Sie zu komplexen Lösungen für architektonische Probleme und wie stellen Sie sicher, dass die daraus resultierende Komplexität hauptsächlich notwendig und nicht zufällig ist?

Zuallererst analysieren wir Probleme gründlich und modellieren Lösungen vor der Implementierung. So können wir uns ein vollständiges Bild machen, bevor wir neue Technologien oder Ansätze einführen. Zweitens streben wir eine leicht konfigurierbare und erweiterbare Lösung an. Dies ist nicht möglich, ohne viel in die Architektur zu investieren. Und das Sahnehäubchen ist, dass wir den DDD-Ansatz verwenden, um die Kommunikation auf allen Ebenen zu vereinfachen.

 

Microservices bringen ihren Anteil an Komplexität mit sich. Wie kommst du zu komplexen Lösungen für architektonische Probleme und wie stellst du sicher, dass die daraus resultierende Komplexität vor allem notwendig und nicht zufällig ist?

Zuallererst analysieren wir Probleme gründlich und modellieren Lösungen vor der Implementierung. So können wir uns ein vollständiges Bild machen, bevor wir neue Technologien oder Ansätze einführen. Zweitens streben wir eine leicht konfigurierbare und erweiterbare Lösung an. Dies ist nicht möglich, ohne viel in die Architektur zu investieren. Und das Sahnehäubchen ist, dass wir den DDD-Ansatz verwenden, um die Kommunikation auf allen Ebenen zu vereinfachen.


Ist bei esurance alles auf dem neuesten Stand der Softwareentwicklung?

Ja und nein. Wir sind sehr offen für moderne Ansätze im Software-Engineering, sei es in Bezug auf Prozesse, Technologien, Tools – was auch immer. Aber wir sind uns auch sehr bewusst und respektieren bewährte Erkenntnisse wie das Conway’sche Gesetz oder Prinzipien wie SOLID.

Wir haben das Conway’sche Gesetz oben bei der Zuordnung zwischen Microservices und Teams gesehen. Können Sie ein Beispiel für SOLID in Aktion bei esurance geben?

Sicher, das ist ganz einfach, da wir versuchen, diese Grundsätze überall zu befolgen. So haben wir beispielsweise die Umfragekomponente in eine separate Bibliothek ausgelagert und in kleinere Pakete aufgeteilt, die jeweils nur ein Problem lösen (S-Prinzip). Es ist leicht erweiterbar, da wir Abstraktionen über alle Hauptkomponenten haben. Das erlaubt uns, eine neue Implementierung zu schreiben, ohne die bestehende anzufassen. Da wir wenig gekoppelten Code haben, der an mehreren Stellen/Bibliotheken wiederverwendet werden kann, ist es für uns sehr wichtig, die Prinzipien L und I zu befolgen. Und last D, unsere Codebasis ist in unabhängige Schichten aufgeteilt, in denen wir den Abhängigkeitsfluss kontrollieren und eine klare Trennung zwischen unserer Kernlogik, der Logik für den Datenzugriff und der Schicht, die für die Benutzeroberfläche verantwortlich ist, haben.

 

Irgendwann wurdest du von esurance eingestellt und hast dann auch weitere Ingenieure für esurance eingestellt. Was kannst du uns über den Einstellungsprozess erzählen?

Bei esurance ist es uns sehr wichtig, die richtigen Leute einzustellen, da wir versuchen, langfristige Beziehungen aufzubauen, die uns helfen, das Produkt zu verbessern. Zu diesem Zweck führen wir mehrere Gesprächsrunden durch, die uns helfen, eine Entscheidung über den Kandidaten zu treffen. Eine der wichtigsten Phasen ist das Vorstellungsgespräch mit dem Team, bei dem der Kandidat die Möglichkeit hat, sich mit seinen potenziellen Kollegen zu treffen. Dieser Teil des Einstellungsverfahrens ist für uns sehr wichtig, da er dazu beiträgt, potenzielle Schwachstellen zu erkennen und zu beseitigen und zu verstehen, ob ein Bewerber zum Team passt und umgekehrt. Nach dem Vorstellungsgespräch entscheiden wir als Team, ob wir einem Kandidaten ein Angebot machen oder nicht.

 

Was bedeutet esurance für dich?

Normalerweise ist das Unternehmen, in dem man arbeitet, die wichtigste Art, Geld zu verdienen, aber nicht in meinem Fall. Ich bin wirklich froh, dass ich zu diesem Unternehmen gekommen bin, denn es ist zu meiner zweiten Heimat geworden. Ich schätze es sehr, dass die Leute hier einem bei der Lösung aller möglichen Probleme helfen können, auch bei persönlichen Problemen.

 

Was gefällt dir am meisten an esurance?

Es ist nie langweilig bei esurance. Jeder Tag ist voller neuer Herausforderungen und komplexer Aufgaben, die vor der Umsetzung eine gründliche Analyse erfordern. Wenn wir eine Plattform aufbauen, kommen zusätzliche Anforderungen an die Codequalität und Stabilität hinzu. Die Mitarbeiter hier sind also bestrebt, eine solide Lösung zu entwickeln, die den Best Practices folgt.

 

Danke Andrii für deine Zeit!

Wir sind für Sie da
Montag bis Freitag 8:30 - 12:00 & 13:30 - 17:30