Blog

Übertechnisierung unseres Bewertungsverfahrens

Jordi Smit

Jordi Smit

Aktualisiert Oktober 16, 2025
5 Minuten

Übertechnisierung unseres Bewertungsverfahrens

Kürzlich haben wir beschlossen, unser Bewertungsverfahren zu überarbeiten. Im letzten Schritt unseres Einstellungsprozesses senden wir den Kandidaten eine kleine Bewertung, in der sie eine kleine Fallstudie lösen müssen. Als wir mit diesem Prozess begannen, wählten wir den einfachsten Weg: Wir schickten eine gezippte Version der Bewertung per E-Mail an den Kandidaten und erwarteten eine aktualisierte ZIP-Datei per Post zurück. Jahrelang war diese Lösung ausreichend, aber als wir wuchsen, wurde es immer deutlicher, dass diese Lösung nicht gut skalierbar war. Wir stießen zum Beispiel auf Probleme wie diese:

  • Es war schwer zu erkennen, welche Änderungen ein Kandidat vorgenommen hat.
  • Es war viel manuelle Arbeit nötig, um Linters und andere Tests zur Codequalität durchzuführen.
  • Es war schwierig, Änderungen an den Aufgaben vorzunehmen und diese mit dem Einstellungsteam zu teilen, das diese E-Mails verschickte.

Als wir uns diese Probleme ansahen, wurde uns klar, dass wir die meisten dieser Probleme mit Git lösen konnten. Idealerweise wollten wir für jeden Kandidaten ein neues Projektarchiv anlegen und ihn seine Lösung über einen Pull Request einreichen lassen, da wir so einen klaren Überblick über seine Änderungen erhalten würden. Die wichtigste Frage, die sich bei diesem Ansatz stellte, war jedoch: Können wir diesen Prozess der Repo-Erstellung automatisieren und ihn gleichzeitig auch für unsere nicht-technischen Benutzer zugänglich halten? Die Antwort lautet: Ja, das können wir, wenn wir die GitHub API und einen maßgeschneiderten Slackbot verwenden.

Lösung

Unser Einstellungsteam beginnt jetzt mit dem Senden von Aufträgen, indem es den Slack-Befehl eingibt: /gdd_assignment_form. Dieser Befehl öffnet ein Formular in der Slack-Benutzeroberfläche und fragt nach dem GitHub-Benutzernamen des Kandidaten und der Aufgabe, die er erhalten soll. Nach dem Absenden dieses Formulars erstellt der Slackbot ein privates neues Repo innerhalb unserer neuen godatadriven-assessments GitHub-Organisation und lädt den Kandidaten als Mitwirkenden zu diesem Repo ein. Wenn der Slackbot fertig ist, wird er die Person, die das Formular eingereicht hat, per Direktnachricht informieren. Das Einstellungsteam muss dann nur noch den Link zum Repo an den Kandidaten senden.

Wie funktioniert das?

Wir verwenden in unserer Codebasis hauptsächlich zwei Python-Bibliotheken, nämlich PyGitHub und Bolt for Python. PyGitHub macht es extrem einfach, sich bei GitHub zu authentifizieren und Informationen innerhalb einer GitHub-Organisation zu lesen/schreiben. Wir verwenden diese Bibliothek, um alle Vorlagen-Repos innerhalb unserer Bewertungs-GitHub-Organisation zu finden und neue Repos für unsere Kandidaten zu erstellen. Die andere Bibliothek, Bolt for Python, macht das Abhören und Reagieren auf jedes Slack-Ereignis mit Hilfe einer breiten Palette von Python-Dekoratoren einfach. Wir verwenden diese Dekoratoren, um auf den Slack-Befehl zu hören und darauf zu reagieren und um auf die Interaktionen mit dem Slack-UI-Formular zu hören. Die Bolt for Python-Bibliothek macht auch die Bereitstellung Ihres Slackbots auf serverlosen Bereitstellungslösungen extrem einfach. Da der Slackbot nur während des Versendens der Aufgaben aktiv sein muss, haben wir uns für die Bereitstellung auf einer Google Cloud-Funktion entschieden. Wir haben uns für diese Option entschieden, weil Sie bei einer Google Cloud-Funktion nur für das bezahlen, was Sie auch nutzen, so dass uns unsere Slackbot-Bereitstellung letztendlich nur ein paar Cent pro Monat kostet.

Vorteile

Wir verwenden diesen neuen, auf Slackbot basierenden Workflow nun schon seit einigen Monaten, und er ist ein großer Erfolg. Dieser neue Arbeitsablauf bietet Vorteile für alle, die am Arbeitsablauf beteiligt sind.

Kandidaten

Auch für die Bewerber ist der Prozess viel reibungsloser geworden. Er muss nur noch auf den Repo-Link klicken, den er vom Einstellungsteam erhalten hat. Über diesen Link gelangen sie auf eine Seite, die ihnen mitteilt, dass der godatadriven-assessment-bot sie als Mitarbeiter zu einem Repo eingeladen hat, das speziell für ihre Bewertung erstellt wurde. Nachdem Sie diese Einladung angenommen haben, gelangen Sie auf die Readme-Seite des Repo, auf der der Projektaufbau, die praktischen Aspekte der Bewertung und das Problem, das Sie lösen müssen, beschrieben werden. Sobald sie fertig sind, müssen sie ihre Lösung als Pull Request einreichen. Mit dieser Einreichungsmethode ist es einfach zu sehen, welche Änderungen der Kandidat vorgenommen hat. Sie ermöglicht auch zusätzliche automatische Qualitätsprüfungen der eingereichten Lösung. Durch diese Änderungen hat der Kandidat das Gefühl, zu einem kleinen Open-Source-Projekt beizutragen, während es für uns viel einfacher ist, die eingereichte Lösung des Kandidaten zu bewerten.

Entscheidungsträger

Aus der Sicht des Bewertungsprozesses ist es auch viel einfacher geworden, Änderungen an der Bewertung vorzunehmen und sie mit dem Einstellungsteam zu synchronisieren. Wenn das Einstellungsteam mit dem Slackbot interagiert, bietet der Bot einen Überblick über alle Vorlagen-Repos in der Bewertungsorganisation. Das Einstellungsteam muss nur eine der Vorlagen auswählen und der Slackbot kümmert sich um den Rest. Der Vorteil dieser Vorlagen-Repos ist, dass sie es ermöglichen, schnell ein neues Repo zu erstellen, das die Git-Historie des ursprünglichen Repos nicht kennt, was dazu beiträgt, ein versehentliches Auslaufen der Lösung zu verhindern. Indem wir also alle unsere Bewertungen in private GitHub-Vorlagen-Repos verschieben, können wir sie immer noch problemlos mit einem typischen Git-Workflow ändern. Gleichzeitig stellt der Slackbot sicher, dass das Einstellungsteam immer die neueste Version verwendet. Auch die Erstellung neuer Bewertungen ist viel einfacher geworden. Unser Slackbot bietet unserem Einstellungsteam einen Überblick über alle Vorlagen-Repos in der godatadriven-assessments Organisation. Wenn wir also eine neue Aufgabe hinzufügen möchten, müssen wir nur ein neues Vorlagen-Repository zu dieser Organisation hinzufügen. Mit diesem neuen Arbeitsablauf haben wir also im Grunde eine kontinuierliche Bereitstellungspipeline für unsere Bewertungen geschaffen.

GoDataDriven ❤️ Coole Lösungen für Ingenieure

Wenn jemand bei GoDataDriven auf ein Problem stößt, ermutigen wir ihn immer, eine coole Lösung zu entwickeln und sie bis zum Ende durchzuziehen. Dieses Projekt war das erste Projekt, das ich bei GoDataDriven durchgeführt habe. Dadurch, dass ich es bis zum Ende durchgezogen habe, habe ich in meinen ersten Wochen bei GoDataDriven nicht nur unseren Prozess zum Versenden von Aufträgen neu gestaltet, sondern es führte auch zu meinem ersten PyData-Vortrag, was für mich eine unglaubliche Erfahrung war.

Erkennen Sie diesen Drang, etwas zu bewirken, und wünschen Sie sich Kollegen, die Sie anspornen und Ihnen helfen, Ihre Idee bis zum Ende durchzuziehen? Ich habe gute Nachrichten. Wir stellen in Amsterdam, Eindhoven und sogar in Zürich neue Mitarbeiter ein!

Verfasst von

Jordi Smit

Contact

Let’s discuss how we can support your journey.