Unsere Stimmen hallen von den hohen Wänden wider, als wir Martin Javorek von Auctionata interviewen. Wir befinden uns in Berlin, Charlottenburg, in einem ehemaligen Verwaltungsgebäude der Bleicherei und Maschinenfabrik Fr. Gebauer, das ganz im Stile typischer Gewerbearchitektur des 19. Jahrhunderts mit Backsteinen erbaut wurde. Hohe Räume mit Bogenfenstern, die eigentlich viel Tageslicht hereinlassen sollen. Normalerweile sperren die Programmierer das Tageslicht heute größtenteils wieder aus. Für uns ziehen sie die Jaloussien aus weißen Lamellen hoch und Martin erklärt uns wie sie hier die Entwicklung von Auctionata vorantreiben.

Vita

Martin Javorek ist Lead Software Engineer bei Auctionata. Schon in seiner Kindheit besitzt Martin einen C64, den er für erste Entwicklungen verwendet. Am Gymnasium belegt er das Fach Programmieren, wenig später studiert er IT Science an der Universität zu Bratislava. Schon während des Studiums arbeitet Martin als Software Engineer. Zwei Jahre nach seinem Studium zieht er mit seiner Frau nach Berlin und startet seine Karriere bei Auctionata.

Tools
  • GitLab CI
  • .Net, NodeJS, AngularJS, ReactJS
  • Visual Studio Code, Atom, Sublime
  • Slack
  • Jira
Empfehlungen
  • Blogs: Pluralsight.com
  • Bücher: Implementing Domain-Driven Design
Social

Hallo Martin, wann hast du deinen ersten Computer bekommen?

Mit fünf. Meine Eltern kauften mir einen Commodore 64. Ich erinnere mich noch genau, wie ich damals in einem Computermagazin blätterte und mir die Bilder von Computern und Robotern anschaute. In diesem Magazin gab es auch Seiten mit Code und ich fing an den Code Buchstabe für Buchstabe abzutippen. Das dauerte den ganzen Tag. Und als ich fertig war und das Programm startete, war da so eine Art Blase, die sich von einer Seite des Monitors zur anderen bewegte. Ich war absolut begeistert, dass ich das selbst geschaffen hatte.

Mit 14 habe ich meinen nächsten Computer bekommen, den ich erst mal nur zum Spielen nutzte. Später schrieb ich dann eigene Programme. Zu der Zeit entschied ich mich Entwickler zu werden, denn Programmieren ist für mich wie mit Lego zu spielen. Du hast Bausteine, die deine Bibliothek darstellen. Und du hast deine Tools. Und damit kannst du alles machen, was du willst. Und darum bin ich Entwickler geworden.

You are the creator.

Wie ging es weiter in deiner Laufbahn?

Schon auf dem Gymnasium in meiner Heimatstadt hatte ich das Fach “Programmieren”. Später studierte ich IT Science an der Universität von Bratislava, der Hauptstadt der Slowakei, während ich bereits für die eine oder andere Firma arbeitete. Nach dem Studium arbeitete ich dann noch eine Weile in der Slowakei. 2010 zog ich dann mit meiner Frau nach Berlin. Seitdem arbeite ich für Auctionata.

20160906-img_4312

Was war dein erster Job bei Auctionata?

Bei Auctionata habe ich als Senior Software Developer angefangen und mich um alle möglichen Projekte gekümmert. Ich bin da eingesprungen, wo ich gebraucht wurde. Wir waren damals noch wenige Entwickler und darum war jeder beinahe für alles zuständig. Im Laufe der Zeit wurden unsere Teams immer größer und ich konnte eine Menge Erfahrung sammeln.

An welchem Projekt oder Feature hast du zum Beispiel gearbeitet?

Ich habe zum Beispiel am Verhandlungs-Tool gearbeitet, einem internen Tool, das dem Sales Department hilft, die Preisverhandlungen zwischen Bieter und Käufer zu organisieren. Das war eine Erfolgsgeschichte! Wir konnten sehr umständliche Prozesse ersetzen, bei denen das Sales-Team mit Word und Excel arbeitete. Heute nutzen sie ein übersichtliches Tool, das automatisiert Daten aggregiert und übersichtlich anzeigt. Das ist für unser Sales-Team eine wesentliche Arbeitserleichterung.

img_43101609061714

img_43031609061712

img_42931609061710

Wie habt ihr dieses Tool entwickelt?

Die Projektentwicklung begann im Oktober letzten Jahres. Unser Teamleiter informierte uns im IT Kick Off Meeting über die Ziele des Projekts. Das war sehr wichtig, um genau zu verstehen, welche Ziele wir damit verfolgen. Anschließend hatten wir ein Kick Off mit allen Entwicklern, bei dem wir das Projekt in Stories aufgeteilt haben.

Nutzt ihr Scrum oder Kanban?

Das hängt vom Team ab und von den Entwicklern. Ich persönlich habe nichts gegen Scrum oder Kanban, das ist mir eigentlich egal. Wenn wir zum Beispiel ein Projekt haben, das man nach jeder Aufgabe deployen kann, dann ist Kanban besser geeignet. Wir haben also Teams, die sowohl Scrum als auch Kanban nutzen. Ich glaube wir haben sogar ein Team, das Scrumban nutzt, was eine Mischung aus beidem ist.

img_43491609061726

img_43761609061729

Wie seid ihr bei der Entwicklung des Verhandlungstools vorgegangen?

Nachdem wir das Projekt in Stories und in kleine Aufgaben eingeteilt haben, wurde alles auf ein Scrum-Board gepackt. Es gab natürlich ein riesiges Backlog und jeder Entwickler ist durch jedes Ticket gegangen und hat versucht, es genau zu verstehen und abzuschätzen. Jeder Entwickler hat seinen Input abgegeben, damit wir am Ende eine gemeinsame Vorstellung davon haben, wie aufwändig jede Story ist.

Im Grunde geht es darum, die Komplexität zu messen, statt einfach nur festzulegen, wie lange alles dauern wird. Das passiert alles in Rücksprache mit dem Product Owner, der bei jedem Feature überprüft, ob es auch auf unsere Ziele einzahlt. Zum Schluss kommt dann noch der QA Engineer, der schaut, wo er automatisierte Tests einbauen kann und dann kann es losgehen mit der Entwicklung.

Im Januar 2016 waren wir fertig mit der Entwicklung und im Februar konnten wir das Tool dann für die Nutzung freigeben.

img_4458-bearbeitet1609061753

img_42981609061711

img_43401609061720

Welche Tools nutzt ihr bei der Produktentwicklung?

In der Entwicklung nutzen wir GitLab CI. Viele unserer Applikationen laufen in Docker-Containern. Außerdem nutzen wir viel Microsoft-Technologie mit .net. Des weiteren NodeJS. Für das Frontend nutzen wir AngularJS und ReactJS.

Wie versuchen eigentlich immer die neueste Technologie zu nutzen, denn das ist für die Entwickler am spannendsten. Gleichzeitig stellen wir damit sicher, dass alle Entwickler am Ball bleiben.

Welche Editoren nutzt ihr?

Ich selbst nutze Visual Studio Code. Unsere Jungs, die Applikationen in C# schreiben, nutzen das auch. Alle, die in NodeJs schreiben Atom und Sublime.

20160906-img_4331

Welche Tools nutzt ihr im Software-Engineering sonst noch?

Momentan nutzen wir alle Slack. Eine Zeit lang hatten wir auch HipChat, aber das war nicht so das Gelbe vom Ei. Allerdings nutzen wir noch Jira von Atlassian als unser Ticketsystem. Es gab den Versuch, Trello für kleinere Aufgaben wie zum Beispiel das Deployment, einzusetzen. Es hat sich aber gezeigt, dass es für uns keinen Sinn macht und wir sind komplett auf Jira umgestiegen.

img_43281609061718

img_43231609061717

Wie muss man sich deinen Tagesablauf vorstellen?

Je nachdem, ob ich “Auction Duty” habe, oder nicht, komme ich gegen 10 Uhr ins Büro. Jeden Tag habe ich mit meinen Teams zwei Standup-Meetings, in denen wir besprechen, was wir am Vortag geschafft haben und was noch ansteht. Das sind alles eher organisatorische Themen.

Je nachdem kann es dann sein, dass ich danach noch viele weitere Meetings habe, oder dass Besprechungen und Diskussionen anstehen. Natürlich programmiere ich dann auch oder implementiere neue Features.

Gegen 18 oder 19 Uhr habe ich dann meistens das fertig, was ich mir für den Tag vorgenommen habe. Dann habe ich Feierabend.

Software Engineer bei der Arbeit bei Auctionata

img_44811609061758

img_44891609061759

Was hat es mit dem “Auction Duty” auf sich?

Der offizielle Name ist Second Level Support. Aufgabe ist es, bereit für einen Anruf vom First Level Support zu sein, wenn er ein Problem nicht lösen kann. Seit letztem Donnerstag haben wir tägliche Auktionen, darum haben wir einen Schichtdienst eingeführt, zu dem ich auch hin und wieder eingeteilt werde.

Da geht es dann zum Beispiel um eine falsche Nummer in einem Katalog, weil es eine Inkonsistenz in der Datenbank gab. Da der First Level Support nicht auf die Datenbank zugreifen kann, korrigiere ich das dann.

20160906-img_4461-bearbeitet_neu

Welche Themen sind aus Entwicklerperspektive für Auctionata wichtig?

Ich arbeite zwar nicht in diesem Department, aber die Streamingtechnologie ist sehr wichtig für Auctionata, weil unser Bietprozess ja in Echtzeit geschieht. Für unsere Live-Auktionen müssen wir das beste Streaming auf der Welt haben, mit sehr niedriger Latenz und extrem zuverlässig, damit die Gebote auch im richtigen Moment zustande kommen.

Außerdem werden Microservices immer wichtiger für uns in der Softwareentwicklung. Insbesondere für die Entwicklung der Apps, die unsere Bieter nutzen. Das muss alles funktionieren. Die Aufgabe besteht also darin, alles zu monitoren und sehr hohe Sicherheitsstandards zu haben.

Software Engineer bei der Arbeit bei Auctionata

Welche Themen findest du persönlich spannend?

Ich persönlich finde das Internet of Things sehr spannend. Ich betreibe das zur Zeit als mein privates Hobby. Ich beschäftige mich seit Kurzem damit und habe schon kleinere Anwendungen mit einem Raspberry Pi und verschiedenen Sensoren gebastelt. Dabei lernt man viel über Home-Automation. Alle neuen Technologien sind für mich spannend.

Ohne welche Tools kannst du nicht arbeiten?

Ein gutes Notebook und einen Kaffee!

Gibt es etwas bei deiner Arbeit als Software Engineer, das dich stört?

(überlegt lange) Ich kann sagen, was ich an der Arbeit wirklich mag: Dass ich als Entwickler hier die neueste Technologie nutzen darf und damit herumspielen kann. Und, dass ich in meiner neuen Rolle als Lead Developer lerne ein Team zu leiten. Ich habe mehr Verantwortung und es ist eine große Herausforderung, die mir großen Spaß macht.

Und dann gibt es noch meine Kollegen, die mir jedes Mal das Gefühl geben, dass es noch so viel zu lernen gibt.

Ich mag es, wenn jemand smarter ist als ich. Weil ich dann was von ihm lernen kann.

Was machen Leute in deinem Job immer wieder falsch?

Manche tendieren dazu, wenn sie etwas nicht verstehen, oder auf ein Problem stoßen, erst mal Andere zu fragen. Das ist erstmal nichts Schlechtes. Aber besser wäre es, das Problem selbst zu lösen und nicht so schnell aufzugeben.

Try harder in the first place.

Eine andere Sache, die ich wirklich hasse, sind Meetings ohne Ergebnisse. Es passiert zwar selten, aber es passiert.

Wer oder was inspiriert dich?

Das habe ich schon erwähnt, aber das passt hier auch ganz gut hin: Ich finde es inspirierend, wenn die Kollegen mehr wissen als ich. Dadurch kann ich Vollgas geben und lernen und versuchen die Kollegen einzuholen. Und ich arbeite hier mit ein paar wirklich cleveren Köpfen zusammen.

Dass sie aus aller Herren Länder kommen, finde ich da umso besser. Wir bei Auctionata sind sehr international, zumindest was die IT angeht.

Software Engineer bei der Arbeit bei Auctionata

Welche Bücher und Blogs kannst du empfehlen?

Bücher über Domain Driven Design haben mich besonders geprägt, wie etwa Implementing Domain-Driven Design von Vaughn Vernon.

Außerdem kann ich noch Pluralsight.com empfehlen. Die haben sehr gute Video-Kurse, die ich immer wieder nutze.

Vielen Dank für das Interview.

img_43971609061737

Dieses Interview wurde auf Englisch geführt und fand am 6. September 2016 im Büro von Auctionata in Berlin statt.

Webseite: Auctionata