TechLead-Story: Jürgen Ratzenböck, Head of Technology von jobs.at

TechLead-Story: Jürgen Ratzenböck, Head of Technology von jobs.at

Team

Grundsätzlich besteht unser Dev-Team jetzt derzeit aus vier Personen, inklusive mir als Lead von dem Team. Glücklicherweise bekommen wir nächste Woche mit zwei neuen Entwicklern Verstärkung wieder – und wachsen so jetzt. Aufgrund der doch trotzdem noch relativ kleinen Größe sind wir noch nicht in gewisse Fachbereiche unterteilt, das heißt es gibt jetzt noch klassisch Back End Development Department und Front End, sondern wir sind derzeit ein Full Stack Team sozusagen. Natürlich wenn wir weiter wachsen ist es perspektivisch schon so, dass man es einmal aufteilt und sagt man hat gewisse Entwickler, die sich um die Arbeitgeberseite, um unsere B2B Kunden kümmern und das andere Team sich um die Jobsuchenden kümmert. Wenn man dann speziell Product Owner für beide Bereiche hat, dann macht das auf jedenfall Sinn. Aber derzeit ist es so, dass alle alles machen kann man sagen – was aber so sehr soll ist weil dadurch ein großer Grad an Flexibilität dadurch gegeben ist. Das heißt, die Entwickler können dann an einen Tag datenbanknahe oder APIs programmieren und sie machen am nächsten Tag wieder etwas mit clientside Rendering im Front End – und so ist das eigentlich sehr abwechslungsreich, was unsere Devs derzeit auch sehr gut gefällt.

So ist es grundstätzlich aufgebaut, unser Team.

Was man auch noch sagen kann, dass – dadurch, dass wir im Gesamten noch ein sehr kleines Unternehmen sind – ein jeder recht proaktiv ist und jeder selbst viel Ideen einbringen kann. Wir suchen keine Entwickler denen man sagt, du musst das so und so machen, und er muss dies dann abarbeiten, sondern man hat da wirklich viel Freiheiten dann wie man etwas umsetzt welche Tools man einsetzt welche Technologien und so. Das macht es eigentlich recht spannend und herausfordernd!

Was man auch sagen kann, dass die Devs bei uns sehr teamorientiert arbeiten – was eigentlich sehr cool ist. Also es gibt bei uns keine wirklichen Alleingänge von Leuten. Es steht dann wirklich immer der Teamgedanke im Vordergrund, so nach dem Motto: wir kommunizieren wirklich auf Augenhöhe und schauen immer, dass wir möglichst effizient arbeiten. Da wir ja so jetzt in diesem agilen Kontext unterwegs sind, funktioniert das eigentlich sehr gut bei uns.

Recruiting

Der Recruiting Prozess ist bei uns standardisiert bei uns nach einem gewissen Format, wir bedienen uns aus mehreren Quellen, wo wir Kandidaten herbekommen wollen – das ist eigentlich cool, weil wir ja selbst ein Jobportal sind, und das heißt wir sind eigentlich unsere erste Veröffentlichungsplattform. Und dann haben wir mit karriere.at einen großen Player, wo man ausschreiben kann oder beispielsweise bei devjobs.at – hier versuchen wir auch dementsprechend Bewerbungen zu bekommen. Aber auch active Sourcing ist ein großer Kanal – wie bei vielen Unternehmen die Fachkräfte suchen – weil die heutigen Entwickler sich eher finden lassen wollen, als dass sie sich selbst bewerben. Wenn wir dann einen Kandidaten haben, den wir uns ansehen wollen, dann gibt es ein Erstgespräch – da bin ich dabei Tech-Lead, wenn es um einen Developer geht und ein HR-Verantwortlicher. Im Erstgespräch geht es mal darum, dass man sich mal kennenlernt, wie ist der Charakter, passt dieser ins Team, ich stelle auch schon die eine oder andere fachliche Frage um schon mal abzustecken, ob das passen kann von den Skills her. Grundsätzlich sollte man mit dem Gefühl rausgehen, passt der in unser Team und würde dieser fachlich ungefähr passen.

Dann entscheidet man sich hoffentlich für ein zweites Gespräch, wo es im Vorhinein eine kleine Programmieraufgabe gibt – so eine Coding Challenge – und diese schickt man zwei Tage vorher aus an den Kandidaten. Die wird dann durch besprochen in der zweiten Runde. Da gibt es zuerst einmal ein Kennlernen mit dem Dev-Team, was auch ganz nett ist, die potenziellen Kollegen kennenzulernen. Danach spricht man die Aufgaben durch und zum Schluss stellt man noch Fragen mit dem mit der HR – und im besten Fall ist noch unsere Geschäftsführerin dabei, diese ist auch immer interessiert wenn laden wir hier ein, wer möglicherweise bei uns arbeiten wird. Und dann wird es im besten Fall zu einer Einstellung kommen im besten Fall! So ist der Prozess bei uns organisiert und funktioniert soweit eigentlich auch sehr gut.

Auf was ich noch Wert lege beim Recruiting – weil es die Frage war – der kulturelle Fit ist schon sehr wichtig, wir sind trotzdem ein sehr kleines aber feines Team, wir wollen dass sich die Leute untereinander verstehen, gerade in der Software Entwicklung ist es, super wenn man ein homogenes Team hat – und wie gesagt Teamgeist ist sehr wichtig bei uns – aber natürlich sollte die Person die fachlichen Anforderungen erfüllen. Mit dieser Programmieraufgabe sind wie eigentlich immer sehr gut gefahren, damit man abchecken kann wo dieser steht. Natürlich muss dieser nicht zu 100% das was in der Stellungsausschreibung steht erfüllen, aber es sollte natürlich was da sein auf das man aufbauen kann.

Die zwei Punkte sind eh die wichtigsten.

Technologien

Kerntechnologie bei uns ist PHP, wir verwenden für alle unsere Web-Apps das Laravel Framework. Dieses funktioniert sehr gut und ist mittlerweile schon sehr mature und ist schon länger verfügbar, hat eine großartige Community, es wird extrem stark weiterentwickelt und erspart uns wirklich viel Arbeit an Boilerplate Code den man sonst entwickeln und warten müsste. So sind unsere Web-Apps grundsätzlich aufgebaut, dann haben wir im Front End für unser Arbeitgeberprodukt einen Businessaccount, wo die ihre Jobs managen können – das heißt sie können dort neue Jobs eingeben und edieren, Statistiken ansehen etc. Und das ganze Ding ist eine single-page Application, diese haben wir mit Vue.js aufgebaut und ist mittlerweile auch schon gewachsen, weil die Funktionalitäten auch immer mehr geworden sind, das heißt Vue.js ist bei uns sehr stark im Einsatz – da ist dahinter ein API die mit Laravel gemacht worden ist, wo die App dann kommuniziert dementsprechend.

Wir haben fast alle Daten in einer MySQL Datenbank abgelegt, dann verwenden wir auch noch einen Redis besipielsweise für so Caching- und Session-Daten für User Authentification und solche Dinge, weil das natürlich sehr performant und schnell funktioniert und besser als eine relationale Datenbank für diese Usecases.

Dann haben wie noch für die Kommunikation untereinander zwischen den einzelnen Apps - die auch dementsprechend kommunizieren müssen, wenn jetzt ein neuer Job eingegeben wird, dass dann eben eine andere App benachrichtigt wird oder irgendwelche Aktionen asynchron im Hintergrund passieren – da verwenden wir dann die RabbitMQ, das ist ein Messagebroker, mit so einen Publish/Subscribe Mechanismus, wo die Apps dann drauf hinhorchen können und die Nachrichten abholen und weiterverarbeiten. Im Großen und Ganzen sind das die Programmiersprachen und Frameworks die wir im täglichen Einsatz haben.

Und wie man die Apps bauen und deployen ich auch vielleicht noch interessant.

Unser Code liegt grundsätzlich alles auf GitLab – da verwenden wir dann auch die CI-Pipelines für automatisierte Test beispielsweise, und für das Deployment haben wir dann noch einen Jenkins als Buildserver wo wir per Knopfdruck jederzeit neue Versionen auswählen können auf unsere Umgebungen, sei es Tests oder auf live für den User. Das wäre so der Techstack im Großen und Ganzen.

Herausforderungen technischer Natur, ist gerade in der Produktentwicklung generell immer ein Thema und auch bei uns – wenn immer mehr Funktionalitäten dazu kommen und das ganze Produkt natürlich skaliert – dass es wichtig ist, auf die Codequalität ein spezielles Augenmerk zu legen, weil wir nie den Fall haben wollen, dass man sich dann keine Änderungen machen traut weil man dann das Side Effects ganz wo anders hat. Wie man es auch öfters hört, wenn es dann so ein großes Monster wird. Ja, das ist sicher eine große Challenge, die uns täglich begleitet und wo wir dahinter sind. Konkret würde ich sagen, das Cost-per-Click Modell, das wir für unsere B2B Kunden haben, ist sicher etwas was viel Hirnschmalz benötigt – wo man ständig dran bleiben muss, damit man das analysiert, wie es funktioniert es und optimiert dann auch, dass wir für die Kunden wirklich die bestmögliche Performance in Form von Klicks und Bewerbungen rausholen.

Da versuchen wir auch den Algorithmus bestmöglich abzubilden, es wird immer komplexer uns ist sicher ein herausforderndes Thema.

 

 

Erfahre mehr zum DevTeam von jobs.at

Jürgen Ratzenböck

Interview im September 2021