Bjarke Walling, Lead Backend Engineer bei Book A Tiger
22. Juni 2017Bjarke ist Ansprechpartner für seine Kollegen in Backend- und Frontend-Themen und das Verbindungsglied zwischen Produkt und Technologie. An einem B2B Funnel-Projekt erklärt er uns, wie sie Services um die Salesforce-API herum bauen und warum sie keinen Scrum-Master brauchen. Außerdem gewährt uns der gebürtige Däne einen Einblick in seinen turbulenten Werdegang, der mit einem Colour Genie EG2000 beginnt.
Vita
Der dänische Seriengründer und Entwickler Bjarke Walling gründet erstmals mit 19 einen Computerreperaturservice in Arhus. Bei weiteren Studienversuchen setzt sich aber stets sein Engagement für seine Unternehmungen als Entwickler und Berater durch. 2014 zieht Bjarke zu seiner Freundin nach Berlin und arbeitet seit 2015 als Lead Backend Engineer bei Book A Tiger.
Tools
- Node.js, Git
- Salesforce, Gulp
- Sublime Text, Cloud 9, Eclipse
- Trello, Skype
Hallo Bjarke, wie lange bist du schon bei Book A Tiger?
Im Juli bin ich seit zwei Jahren bei Book A Tiger. Dann werden wir auch das Dreijährige mit der Firma feiern. Wir sind also ein noch recht junges Unternehmen.
Welche Rolle spielst du bei Book A Tiger?
Als Lead Backend Engineer helfe ich meinen Kollegen bezüglich Backend-Themen, stehe aber auch aufgrund meiner Erfahrung immer wieder für Frontend-Themen zur Verfügung. Außerdem schaue ich mir die Bewerbungen für unseren Bereich unter technischen Gesichtspunkten an und versuche zu beurteilen, ob sie zur ausgeschriebenen Stelle passen.
Zu meinen Aufgaben als Entwickler gehört die Implementierung von Features und der Austausch mit dem Produkt-Team. Dabei geht es zum Beispiel um die technische Realisierbarkeit von Features, aber auch darum, in welche Richtung wir unsere Produkte entwickeln wollen. Man könnte sagen, ich bin das Verbindungsglied zwischen Produkt und Technologie.
Wie viel deiner Zeit programmierst du, wieviel davon sprichst du mit Mitarbeitern und kümmerst dich um Bewerber?
Ich bin hauptsächlich mit der Entwicklung beschäftigt. Darum würde ich sagen, dass ich 60 bis 70 Prozent meiner Zeit entwickle. Den Rest der Zeit führe ich Job-Interviews und spreche mit dem Produkt-Team. Ich bin stark in den Entwicklungsprozess eingebunden.
Product Jobs
Für welchen Aspekt deiner Arbeit schlägt dein Herz?
Ich liebe es auf welche Weise wir Technologie bei Book A Tiger einsetzen. Zum Beispiel nutzen wir recht viele Cloud-Provider, die wir dann miteinander verbinden. Das bedeutet, dass wir uns nicht um die ganzen Details kümmern müssen, also wie bestimmte Services funktionieren, wie Emails versendet werden, oder dass unser Kundenchat funktioniert. Wir nutzen diese ganzen Cloud-Services und verbinden sie mit unserem Kern-Business. Das finde ich spannend, denn das bedeutet, dass wir uns auf die eigentlichen Kernfunktionen konzentrieren können. Man verliert sich weniger in den ganzen Details, wenn man diese Services auslagert.
Ich liebe es zu entwickeln.
Und ich liebe es zu entwickeln. Ich code jeden Tag und mag den Release-Prozess eines neuen Features. Es ist ein gutes Gefühl, wenn man etwas verbessert hat und es dann live geht.
Was war dein erster Computer, und wie bist du zum Programmieren gekommen?
Meinen ersten Computer, einen Colour Genie EG2000 habe ich mit zehn Jahren bekommen. Der war schon damals alt und auch ein bisschen kaputt. Man konnte, ehrlich gesagt, nicht allzu viel damit machen. Glücklicherweise lag ein Buch dabei, eine Art Programmieranleitung, in dem ich dann während der Sommerferien las. In diesem Buch gab es den Quellcode für ein Spiel, das ich begann einzutippen. Am Anfang ging es nur darum, dass das Spiel überhaupt funktionierte. Später fand ich heraus, wie man cheatet, um mehr Punkte zu bekommen. So habe ich durch Herumprobieren ein Gespür für das Programmieren entwickelt.
Hattest du im Zuge deiner Games-Erfahrung Kontakt zur Demoszene?
Ich hatte Freunde aus der Demoszene und war auch mal auf einer Demoszene-Party. Ende der Neunziger programmierte ich viel, und es war eher angesagt auf LAN-Parties zu gehen. Ich kann mich noch daran erinnern, wie ich zu Freunden nach Kopenhagen fuhr. Ich hatte noch keinen Laptop. Also habe ich meinen richtigen Computer und den schweren Monitor im Zug mitgenommen. Das war noch während meiner Schulzeit.
Wie ging es dann weiter?
Ich fing an zu studieren. Aber ehrlich gesagt, war meine studentische Laufbahn ziemlich chaotisch. Zu Anfang studierte ich Mathe und Physik. Aber nach einigen Monaten ließ ich das bereits wieder sein. Wahrscheinlich lag es daran, dass es ein neuer Studiengang war, der ziemlich schlecht organisiert war. Da ich nicht mehr studierte, musste ich erst einmal meine Wehrpflicht absolvieren. So ist das in Dänemark geregelt.
Danach gründete ich meine erste Firma, weil ich etwas Eigenes machen wollte. Zu der Zeit war ich 19. Ich half bereits Freunden auf LAN-Parties mit ihrer Hardware, und das wollte ich auch für lokale Firmen anbieten. Ich schaltete kleine Anzeigen in der lokalen Zeitung, was nicht sehr erfolgreich war, aber ich konnte damit meine Rechnungen bezahlen und lernte viel.
Später fing ich wieder an Informatik zu studieren und gründete mit Freunden weitere Firmen. Aber auch diesen Studiengang brach ich ab, weil ich viel zu beschäftigt mit dem Betrieb meiner Firmen war. Das war etwa 2008.
Wie bist du dann nach Berlin gekommen?
Irgendwann bin ich nach Kopenhagen gezogen und war dort viel in der Startup-Szene unterwegs. Dort habe ich zum ersten Mal moderne Technologien wie NoJS kennengelernt. Das muss um das Jahr 2010 gewesen sein. Bei einem Startup lernte ich viel aus der Business-Sicht, weil es ein zweiseitiges Geschäftsmodell war. Dann gründete ich zusammen mit einem Designer eine Beratungsfirma. Meine damalige Freundin lebte in Berlin, und da ich bei ihr sein wollte, zog ich ebenfalls nach Berlin. Das Problem dabei: Ich hatte keinen Kundenstamm in Berlin und war schlecht vernetzt. So schaute ich mir Startups in Berlin an und stieß auf Book A Tiger.
Wie viele Firmen hattest du bisher gegründet?
Vor meinem Start bei Book A Tiger hatte ich drei Firmen gegründet.
Was hast du am Anfang bei Book A Tiger gemacht?
Am Anfang ging es nur darum dieses oder jenes zu implementieren und zu entwickeln. Das Team war damals noch outgesourcet. Heute ist alles inhouse und das Team ist stark gewachsen. Das bedeutet, die Leute haben viele Fragen, die ich Ihnen als Lead Engineer beantworte.
Woran arbeitest du aktuell?
Bis vor kurzem habe ich noch an unserem B2B-Funnel gearbeitet. Book A Tiger vermittelt ja Reinigungskräfte an Privathaushalte und KMUs. Für unsere B2C-Kunden hatten wir bereits einen gut funktionierenden Funnel auf unserer Website entwickelt. Im B2B-Bereich konnten Aufträge bisher nur über ein Formular abgeschlossen werden. Diesen Prozess wollten wir automatisieren und für unsere Kunden vereinfachen. Ziel war es, alle Daten online übermitteln und zudem unseren B2B-Kunden automatisch erste Kostenvoranschläge zur Verfügung stellen zu können.
Wie seid ihr dabei vorgegangen?
Die Produkt-Abteilung ist unterteilt in das Tech-Team und das Produkt-Team. Das Produkt-Team hat für den B2B-Funnel recherchiert und versucht herauszufinden, welche Features wichtig sind. Das Team fokussiert sich auf Business-Themen. Darum erklären sie uns die Perspektive des Users im Kick-Off sowie ihre Vorstellungen, wie sie verschiedene Dinge gerne umsetzen würden. Hierfür entwickeln und präsentieren sie auch schon erste Specs, Designs und Wireframes. Wir übernehmen dann die Umsetzung.
Wie lange dauert ein Kick-Off?
Für gewöhnlich dauert so ein Kick-Off zwischen einer halben und einer ganzen Stunde.
Welche Aufgabe habt ihr als Tech im Kick-Off?
Unsere Aufgabe ist es Fragen zu stellen und zu verstehen, was wir tun müssen. Dafür überreicht uns das Produkt-Team alle Infos, die wir brauchen, und wir diskutieren darüber, wie wir etwas umsetzen, oder ob das überhaupt möglich ist. Für gewöhnlich ist uns recht schnell klar, wie wir was zusammenstecken müssen. Zum Beispiel nutzen wir Salesforce als Tool, um alles miteinander zu verbinden. Wir haben ein Backend-Team, ein Frontend-Team und ein Mobile-Team. Das Backend-Team ist dafür verantwortlich, die Datenmodelle mit Salesforce über die API, oder was auch immer gerade vonnöten ist zu verbinden. Das Frontend- sowie Mobile-Team nutzt dann die API-Endpoints und arbeitet am User Interface.
In einem separaten Meeting splitten wir dann die Aufgaben in verschiedene Module. Jedes Business-Anliegen hat also ein eigenes Modul. Anfangs ist das alles sehr grob strukturiert, mit der Zeit entwickeln sich die einzelnen Module aber weiter, und es gibt immer detailliertere Aufgaben, die definiert werden und zu erledigen sind. Ein Beispiel wäre, dass wir neue Daten-Felder in Salesforce brauchen. Diesen Task würden wir dann in Trello übertragen.
Habt ihr einen Scrum-Master?
Nein. Ich persönlich spreche eigentlich nie von Scrum oder Kanban, weil man sich für gewöhnlich davon nimmt , was man braucht und seinen eigenen Prozess etabliert. Unser Prozess ist wie ein agiler Prozess, bei dem wir versuchen die Abhängigkeiten der Features voneinander zu lösen, sodass wir auch schon am User Interface arbeiten können, bevor es dafür überhaupt die Schnittstelle gibt, an die die Daten gesendet werden müssen. Am Ende stecken wir dann alles zusammen.
Aber wer hält das Projekt zusammen?
Der Projektmanager. Er kümmert sich um die Organisation. Allerdings versuchen wir den Kontakt zwischen Produkt- und Tech-Team viel direkter zu gestalten und kommunizieren bei Fragen direkt mit der richtigen Person.
Welche Aufgaben hattest du beim B2B Funnel?
Das Projekt war in zehn Tagen nach dem Kick-Off fertig. Bei diesem Projekt habe ich viel Code-Review gemacht. Dafür haben wir einen “pull-request based workflow”. Wir nutzen Git als Versionskontrollsystem, und wenn wir an einem Ticket arbeiten, erstellen wir einen Feature-Branch, an dem wir dann arbeiten. Wir holen den Branch auf BitBucket, was wir für die Git-Verwaltung verwenden, und markieren dann einen Kollegen. Für gewöhnlich bekomme ich die Tickets assignt, reviewe sie und gebe es frei. Der CTO, ich oder ein anderer Backend-Developer merged und deployed den Code.
Das klingt nach einem eher einfachen Projekt. Gibt es denn auch kompliziertere Tasks?
Für gewöhnlich arbeite ich eher an wesentlich komplexeren Backend-Features, die ein etwas breiteres Wissen verlangen. Zum Beispiel wenn es darum geht, die Maschinen-Logik zu verbessern oder den Code zu refaktorieren.
Welche Technologien verwendet ihr für das Backend?
Wir nutzen Node.js und splitten das in einige Services auf, die wir in Salesforce zusammenführen. Ich würde es nicht wagen sie als Microservices zu bezeichnen, da sie nicht wirklich “micro” sind. Aber wir haben die Services in verschiedene Module aufgeteilt, und sie sind klar voneinander abgegrenzt.
Wie hat sich das im Laufe der Jahre entwickelt?
Als ich dazukam, hatten wir eher eine grobe Struktur, die sich im Laufe der Zeit immer weiterentwickelt hat. Zum Beispiel hatten wir für jeden Service eigene Repositories, für die Webseite, das Backend und so weiter. Letztes Jahr haben wir uns dann dazu entschlossen die komplette Code-Basis in ein Repository zu verschieben. Das ermöglicht uns ein viel einfacheres Refactoring über die verschiedenen Teile des Systems hinweg. Außerdem ist die “History” viel übersichtlicher.
Wenn ihr alle Services in Salesforce bündelt, dann seid ihr auch sehr davon abhängig. Was passiert wenn Salesforce down geht?
Das ist einmal passiert. Für gewöhnlich passiert das auch öfter mal mit den Services. Wir haben dafür ein Message-System entwickelt, durch das selbst wichtige Business-Transaktionen gespeichert werden, wenn ein Service nicht erreichbar ist. Das heißt, der Service fährt wieder hoch und die Message wird dann einfach später ausgeliefert. Nichts geht verloren.
Wenn Salesforce down gehen würde, wäre das allerdings schon schlimm. Fairerweise muss man sagen, dass das wirklich selten passiert.
Welche Tools nutzt ihr noch in eurem Team?
Zum Testen nutzen wir zum Beispiel Gulp. Als IDE nutze ich Sublime Text. Aber jeder im Team kann das nutzen, was er möchte. Ich mag Sublime, weil man damit auch größere Dateien ohne Probleme öffnen kann. Außerdem nutze ich Cloud 9 als Online Editor für die Salesforce-Entwicklung. Außerdem nutzen wir Eclipse. Das mag ich persönlich nicht sonderlich, weil die Ladevorgänge teilweise zu lange dauern.
Ein anderes Tool, das ich viel für die Team-Kommunikation nutze, ist Skype. Hierüber laufen unter anderem Bewerbungsgespräche.
Darfst du während der Arbeitszeit an eigenen Projekten arbeiten?
Wir haben so viel bei Book A Tiger zu tun, das ich dazu während der Arbeitszeit nicht komme. In meiner Freizeit entwickle ich aber schon hin und wieder eigene Projekte. Je nachdem ob ich dazu in Stimmung bin oder nicht. Meistens hat es dann aber doch etwas mit der Arbeit zu tun. Zum Beispiel habe ich ein Modul entwickelt, um besser mit den IDs zu arbeiten, die Teil der Struktur von Salesforce sind. Mir macht es Spaß nach Feierabend mit solchen Themen ein wenig zu experimentieren.
Welche Themen und Trends sind aktuell in deinem Bereich wichtig?
Es ist spannend zu beobachten, wie sich alles in Richtung der Services orientiert, “Everything as a Service”, wie wir es ja auch umsetzen. Du kannst heutzutage ein komplettes Business aufbauen, ohne wirklich viel programmieren zu müssen, weil man diese Services miteinander verbinden kann. Ich finde das ist sehr aufregend.
Du kannst heutzutage ein komplettes Business aufbauen, ohne wirklich viel programmieren zu können, weil man Services miteinander verbinden kann.
Außerdem ist Automatisierung ein wichtiges Thema. Immer mehr Unternehmen arbeiten mit künstlicher Intelligenz. Aber manchmal reicht es auch einfach Business-Prozesse zu digitalisieren und zu automatisieren. Das ist auch etwas, an dem ich persönlich sehr viel arbeite. Ich nutze das Terminal sehr viel und schreibe Skripte, um meine Aufgaben zu automatisieren, versuche Abkürzungen zu nehmen. Wenn ich etwas zu oft mache, dann frage ich mich immer, was muss ich tun, damit ich das nicht noch einmal machen muss? So bin ich einfach.
Welche Fehler werden immer wieder in deinem Beruf gemacht?
Ich sehe viele Entwickler, die komplett fokussiert im Quelltext arbeiten und alles um sich herum vergessen. Was ich immer versuche ins Team einzubringen, ist die Möglichkeit, mal die Perspektive zu ändern. Ich würde jetzt nicht behaupten, dass ich ein Business-Experte bin. Aber ich habe ein gewisses Verständnis dafür. Und ich versuche die Entwicklung und die Business-Seite immer miteinander zu verknüpfen. Denn ich denke, dass es einen Unterschied macht, ob man effektiv oder effizient arbeitet. Wenn du effizient arbeitest, dann kannst du etwas gut. Aber effektiv zu arbeiten bedeutet, das Richtige zu tun.
Was würdest du Leuten empfehlen, die Backend-Developer werden wollen?
Mein eigener Weg hat mich zu ganz unterschiedlichen Themen geführt. Wenn man also sowohl Wissen als einen gewissen Überblick haben möchte, dann sollte man sich mit sehr verschiedenen Projekten befassen. Außerdem macht es Sinn, sich bei bestimmten Themen sehr tief einzuarbeiten und an OpenSource-Projekten mitzuarbeiten.
Was inspiriert dich?
Lernen und Wissen inspirieren mich. Das ist auch der Grund, warum ich die kleinen Projekte nebenher mache. Man lernt unglaublich viel dabei. Ebenfalls wichtig: Der Austausch mit Kollegen. Ein gutes soziales Umfeld, in dem man sich intensiv über Technologie austauschen kann, ist meiner Meinung nach sehr wichtig.
Welche Bücher oder Blogs kannst du empfehlen?
Es gibt nicht wirklich Bücher oder Blogs, die ich empfehlen kann. Ich schaue mir gern Ted Talks an. Hier gibt es super spannende Dinge zum Lernen. Aber ich lese auch oft News und informiere mich beim Social-News-Aggregator reddit. Im Moment lese ich allerdings Harry Potter. (lacht)
Okay, weil da so viel Backend-Themen vorkommen?
Nein, ich mag einfach Abenteuer-Literatur.
Vielen Dank für das Interview!
Dieses Interview wurde am 23. März 2017 via Skype gehalten.
Fotos: Andreas Lukoschek