TechLead-Story: Oskar Kruschitz, Head of Software Development bei Huemer Group

karriere-tips Arbeitsleben

Team

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

Unser Dev-Team besteht aktuell aus insgesamt sechs Personen, verteilt auf die beiden Standorte Klagenfurt und Wien.

Wir arbeiten zurzeit an relativ vielen Projekten gleichzeitig, unter anderem einer Log-Management und SIEM Lösung, einer IoT- und Mobilitäts-Plattform, einer Daten-Management Plattform und einer Digital Signage Lösung. Das hat zur Folge, dass eigentlich jedes Teammitglied an mehr als einem Projekt arbeitet. Dabei hat jedes Mitglied eigene Kern-Kompetenzen, welche im jeweiligen Projekt eingesetzt werden – Frontend, Backend, Datenbanken, etc.

Bei manchen Projekten greifen wir zusätzlich auf externe EntwicklerInnen zurück, welche dann dementsprechend ihr Knowhow einbringen können. 

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?

Aufgrund der Vielzahl unserer Projekte und der sich stetig ändernden Anforderungen haben wir uns agilen Methoden verschrieben. Da sich Prioritäten oft kurzfristig ändern können, setzen wir generell auf Kanban und nicht Scrum. Scrum schien uns aufgrund der Sprints nicht flexibel genug für unsere Anforderungen.

Zur genauen Planung setzen wir uns regelmäßig zusammen und legen neue Aufgaben und deren Prioritäten fest, um uns auch an vorgegebene Deadlines halten zu können. Zusätzlich haben wir regelmäßige Jours fixes, in denen wir uns über den aktuellen Herausforderungen und Fortschritten in den einzelnen Projekten austauschen, damit alle Teammitglieder denselben Wissensstand aufweisen.

Was macht euer Team im Vergleich zu anderen Teams besonders ?

Unser Team hat sich im Laufe der Zeit gut eingespielt, d.h. jedes Teammitglied kennt die Stärken und Schwächen der anderen Mitglieder. Dementsprechend arrangieren wir uns bei der Aufgabenverteilung bereits automatisch so, dass jede Person die passenden Aufgaben erhält.

Außerdem hat niemand im Team Berührungsängste vor neuen Herausforderungen, was sehr wichtig ist, da wir verstärkt auf bleeding edge Technologien setzen. Jedes Teammitglied bringt sich aktiv in Projekte ein, wodurch auch verschiedene Sichtweisen auf Funktionen besprochen und berücksichtigt werden. 

Recruiting

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

Wir sind sehr stark in den Recruiting-Prozess integriert. Bewerbungen werden direkt an mich weitergeleitet, wo ich dann anhand der Bewerbungsunterlagen entscheide, ob die Person interessant für uns ist. Wenn die Unterlagen vielversprechend aussehen kommt es zu einem persönlichen – oder online – Gespräch. Bei diesem Gespräch ist zumindest ein Teammitglied aus dem Projekt dabei, für welches das Bewerbungsgespräch stattfindet. Dieses erste Gespräch wird rein von der Entwicklungsabteilung durchgeführt und dient dem Zweck herauszufinden, ob die beworbene Person sowohl technisch als auch menschlich in unser Team passt. Natürlich möchten wir im Laufe dieses Erstgesprächs auch vermitteln, woran wir aktuell arbeiten und vor welchen Herausforderungen wir stehen. Verläuft dieses Gespräch und unsere Einschätzung positiv, so wird die Personalabteilung informiert und es kommt zu einem weiteren Gespräch mit unserem Geschäftsführer und/oder der Personalabteilung.

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

Jein. Natürlich erklären wir einem neuen Teammitglied Details zum jeweiligen Projekt, unsere Arbeitsabläufe, welche Tools wir verwenden, etc. Anschließend besteht ausreichend Zeit, um das von uns zur Verfügung gestellte Arbeitsgerät einzurichten und sich in erste Teile von bestehendem Code einzulesen.

Da wir aber eine hohe Selbstständigkeit voraussetzen wird das neue Teammitglied relativ schnell ins kalte Wasser geworfen und bekommt erste Aufgaben. Dabei steht aber natürlich jeder im Team zur Seite, wenn Unterstützung benötigt wird.

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

Es ist uns sehr wichtig, dass die Person menschlich ins Team passt, was bedeutet, dass ein ähnliches Mindset gegeben sein sollte. Wir legen viel Wert darauf, dass Interesse an aktuellen Themen, z.B. IT Security, IoT, Machine Learning, Blockchain, usw., besteht.

Zusätzlich muss eine hohe Selbstständigkeit und Lernbereitschaft vorhanden sein, vor allem da wir mit bleeding edge Technologien arbeiten und man dementsprechend Spaß daran haben sollte, neue Dinge und Technologien auszuprobieren.

Technologien

Welchen technischen Herausforderungen seht ihr Euch gegenüber?

In den teils sehr unterschiedlichen Projekten stoßen wir täglich auf verschiedenste Herausforderungen. Im Log-Management und IT Security-Bereich ist es wichtig, dass wir sehr viele Daten in kürzester Zeit verarbeiten, dazu gehört das Empfangen, Normalisieren bzw. Decodieren, Korrelieren und Abspeichern der Daten. Dazu kommt, dass zum Normalisieren und Decodieren der Daten vorab bestimmte Regeln bzw. Muster definiert werden müssen, um wichtige Informationen aus Log-Daten zu extrahieren. Es gibt kein einheitliches Log-Format oder einen Standard, daher müssen wir hier stetig Erweiterungen für neu angebundene Systeme durchführen. Ähnliches gilt im IoT Umfeld. Es gibt kein Standard IoT-Protokoll, welches von jedem IoT-Geräte-Hersteller verwendet wird, weshalb wir die Möglichkeit bieten müssen, Protokolle zur bidirektionalen Kommunikation im laufenden Betrieb hinzuzufügen. Unsere Herausforderungen betreffen uns jedoch nicht nur Software-seitig, sondern müssen auch auf Hardware-Ebene durchdacht werden. Es würde uns relativ wenig bringen, wenn wir einen schnellen Algorithmus entwickeln, die Hardware aber nicht mit entsprechenden Schreib-/Leseoperationen nachkommt.

Mit welchen Technologien arbeitet ihr?

Da wir an relativ vielen Projekten arbeiten, setzen wir auch dementsprechend viele Technologien ein. Wir haben uns ein sehr modulares Basis-Framework entwickelt, womit wir mittlerweile die meisten Projekte abbilden können. Jedoch gibt es auch Projekte, bei denen wir auf Open-Source Technologien angewiesen sind, und daher auf vorgegebene Technologien aufbauen müssen.

Eine Zusammenfassung unserer eingesetzten Technologien sieht momentan wie folgt aus:

Programmiersprachen und Frameworks: Scala, Java, Apache Kafka, JavaScript, TypeScript, React, Go, PHP, C++, Swift, Flutter, React Native. Bei speziellen Kundenprojekten setzen wir auch C# und .NET ein.

Datenbanken: Elasticsearch, MariaDB, PostgreSQL

Allgemein: Git mit Bitbucket Server und GitHub, Docker 

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

Das Unternehmen selbst gibt es bereits seit 2006, mittlerweile also schon recht lange. Software Entwicklung kam erst vor wenigen Jahren bei speziellen Projekten ins Spiel, und erst 2018 wurde von uns eine explizite Abteilung für alle Software-Projekte aufgebaut. Durch diesen Verlauf haben sich auch die verwendeten Technologien teils stark verändert. Ein Projekt wurde zum Beispiel gänzlich neu entwickelt, woraus dann auch unser eigenes Basis-Framework entstanden ist, welches nun bei vielen weiteren Projekten eingesetzt wird. Durch diese solide Basis haben wir einen Weg für die nächsten Jahre vorgegeben. Natürlich werden hier im Laufe der Zeit immer wieder neue Technologien eingebaut werden, die Basis wird aber die selbe bleiben.

 

 

Oskar Kruschitz

Web: https://www.huemer-group.com/

Twitter: https://twitter.com/oskarkruschitz/

Github: https://github.com/hiiamok/ https://github.com/huemergroup/

Linkedin: https://www.linkedin.com/in/oskarkruschitz/