TechLead-Story: Christian Gorbach,  CTO bei Smarter Ecommerce (smec)

karriere-tips Arbeitsleben

Team 

Wie groß ist das Dev-Team? Wie setzt sich das Team, in Funktionen aufgeteilt, zusammen? 

Wir haben drei Produkt-Teams, die sich um je eines unserer Softwareprodukte kümmern. Ein eigenes Dev-Infrastructure-Team befasst sich mit Querschnittsthemen wie Cloud-Environment, CI/CD-Pipeline, gemeinsamen Stack, Design-System, Security-Konzeption usw. Eine Solutions-Engineering-Team passt unsere Software an Kundenanforderungen an. Zu guter letzt gibt es auch ein eigenes Data-science-Team, das mit Machine-Learning-Lösungen zum Produkterfolg beiträgt. In Summe schätze ich momentan ca. 30 Personen mit technischem Background. Tendenz: stark steigend. Wir planen bal d, einen weiteren Software-Engineering-Standort in Wien zu eröffnen und ein weiteres Team etwas weiter weg aufzubauen. 

Wie ist euer Dev-Team organisiert und aus welchem Grund habt ihr euch für eine bestimmte Organisation entschieden? Worin liegen die Vorteile, wo die Nachteile? 

Wir arbeiten selbstorganisiert und agile: wir haben 2008 mit klassischem Scrum begonnen und damals schon Teile von XP (z.B. Pair Programming, TDD). Heute arbeiten wir mehr Kanban-orientiert, hegen aber durchaus noch Routinen wie Planning Poker, Retros aus der pureren Scrum-Zeit. Vorteil von Kanban ist nach meiner Meinung, der Focus auf den Value-Flow.

Was macht euer Team, im Vergleich zu anderen Teams, besonders? 

Als ehemaliger und immer noch Softwareentwickler war mir eine Entwickler-freundliche Kultur immer sehr wichtig. Bei uns gibt es kein klassisches Micro-Management, wir haben 3x in der Woche Tech-Talks zu neuen Themen, einen sogenannten ‘Freaky friday’: unverplante Zeit für jeden. Wir pflegen eine Open-house-Politik und laden auch öfter Tech-Meetups in unsere Büroräumlichkeiten ein, eine tolle Möglichkeit mit teilweise bis zu hundert Personen Austausch zu suchen und über den eigenen Tellerrand zu blicken. Stolz sind wir auch auf die Art und Weise, wie uns TDD hilft, Qualität in den Griff zu kriegen. Wir haben nicht mal ein eigenes Issue-Tracking-System. Eine Test-Batterie von über 50.000 Unit-/Integration-/External-Tests ermöglicht es uns trotzdem, größe Refactorings an kritischen Komponenten vorzunehmen, ohne dass uns das den Schlaf rauben würde. Wir leben auch echtes DevOps, d.h. wir haben keine eigene Ops-Abteilung, die Entwickler betreiben ihre eigene Software selbst. Unser Stack, die Cloud und moderne Tools machen's möglich! Apropos Cloud - wir sind auch ziemlich happy über unseren State-of-the-Art-Stack mit dem wir erfolgreich größte Datenmengen mit nicht-trivialen Algorithmen verarbeiten können. 

Recruiting 

Wie ist eure Dev-Abteilung in den Recruiting-Prozess integriert? 

Wir bieten Bewerbern oft und gerne einen ‘Schnuppertag’ an. Die beste Möglichkeit, sich ein eigenes Bild von uns zu machen. Für Senior-Bewerbungen verwenden wir in letzter Zeit oft Coding-Challenges, die nahe an dem dran sind, was wir machen. Da bekommen beide Seiten ein gutes Bild vermittelt. 

Gibt es ein konkretes Prozedere für neue Kollegen? Wie werden diese integriert 

Jeder neue Kollege bekommt einen Buddy zur Seite gestellt. Der Buddy stammt nicht aus dem eigenen Team und hilft bei der Orientierung und beim Start. Wir haben in der gesamten Firma ein sehr intensives 3-Monats-Onboarding-Programm, in dem alle wichtigen Bereiche bei uns integriert sind. Jeder Softwareentwickler bekommt auch ein fachliches und persönliches Curriculum auf seinen Leib geschneidert. Code-Reviews gehören bei uns sowieso zur Tagesordnung und helfen, beim ersten, möglichst frühen Commit. Für Expats bieten wir die Möglichkeit zu Deutschkursen an - damit eine Integration auch außerhalb der Arbeit beim Bäcker nebenan erfolgen kann. Wir haben monatliche After-Work-Aktivitäten und einmal im Monat ein klassisches All-hands-Meeting mit allen Kollegen

Neben der fachlichen Qualifikation, worauf legt ihr noch Wert, wenn ihr nach Entwicklern für euer Team sucht? 

Wir suchen Personen, die unsere Firmenwerte teilen: Excellence, Passion, Integrity, Cleverness - kurz: EPIC

Technologien

Welchen technischen Herausforderungen seht ihr Euch gegenüber? 

Eine erste Herausforderung ist eine mit-skalierende Systemarchitektur. Eine zweite, die Integration und Adaption von DevOps-Mindset in unseren Stack, Tools und Prozesse. Drittens - analog zu vorher - Integration von Design-Ops-Konzepten, Stichwort: Design System. Und zu guter letzt: Integration von immer mehr Machine Learning aka AI. 

Mit welchen Technologien arbeitet ihr? 

Java 8, Scala, Groovy, Node, Python, Git, Gitlab, IntelliJ, MySql, Elastic stack, Google Cloud, Spark, Akka, Spring, Boot, Gradle, Spock Framework, Angular 8, GraphQL, Docker, Kubernetes, Ansible, Prometheus, Grafana usw. 

Wie hat sich die Technologie des Unternehmens seit der Gründung verändert? 

Wir sind heute polyglotter und wesentlich breiter aufgestellt. Eine wichtige Zäsur dazu war die Entscheidung bei uns, in die Cloud zu ‘gehen’ und dort auch Managed-Services zu nutzen. Zweiter wichtiger Wegpunkt war der Wechsel auf eine Microservice-Architektur in Kombination mit Docker-Containerisierung und Kubernetes-Management.