Specific Opportunity with Facebook

Specific Opportunity with FB. This was the title of an email I received roughly 5 months ago. It was from a Facebook recruiter. He told me they where seeking out new front-end talent and I might just fit in. I was stunned. I am some average guy, living in an standard sub-urban town in the middle of Germany, visiting an ordinary college in Frankfurt and jobbed at some pretty mediocre companies. I mean, just a couple of months earlier I applied as a part-time front-end guy at some random companies to go alongside my school — and got rejected by them. Why would they contact me?

Nevertheless, I answered that I was interested. Due to time difference it was a bit cumbersome to arrange a phone call, but we managed. A couple of days later I found myself in the middle of the Facebook interview process. I sent in my resume, mastered a programming challenge and had a couple of phone interviews. Then I got an invitation for an on-site interview. A couple of weeks later I was sitting on a plane to San Francisco. Me. Some average guy. Sitting on a plane, travelling to an interview at one of the coolest tech-companies in the world.

During the time of the phone interviews I read a lot about how other people took the interview process. How it was very challenging, but also rewarding. Even after receiving the rejection. And most people who wrote about it finally got a rejection. I was very excited about the whole thing, but I was sure: eventually, I will get my rejection as well. After all, I am just some average guy. How could I compete with those great minds actually getting those jobs? But I had fun during the interview process, so I kept going. I had nothing to lose after all.

At the Facebook HQ I had an interview marathon. I got a break at noon to get lunch after which I was shown around the place. At lunch my recruiter asked me about for how long my school will continue. I had just begun my masters course. It was another 3 semesters. But I told her I was willing to ditch it, should I receive an offer I was happy with. She said that Facebook would not want me to quit my masters course, but I insisted that I made up my mind about that already before even answering the first mail. After all: what reason would there be to do the whole interview process, if I wasn’t willing to accept an adequate offer in the end — except maybe getting sponsored a weekend trip to the Bay Area. She laught.
But it was true. That’s what I actually thought. When I’d receive my rejection – and I was still sure I would eventually get one – I could still tell myself “Well, you had a good time, you traveled to the US for the first time in your life and boy, you can maybe even put that on your resume when applying for a job at one of those mediocre companies again!”

The interviews where exhausting and I still had a nearly 12 hour long flight before me. Sitting on that plane home, I actually thought about it for the first time: what if I do receive an offer? I mean I had thought about it, but I never really envisioned it. Some of my friends of course knew about the interviews and some of them were pretty excited, but I always kept saying to them — and myself: keep it low, we’ll have to see what happens. Since in the end, I very well may fail. After all I am just some average guy. But on my way home, I realized: this is it. The interview process is over. There will not be anything more to wait for. I’ll now either get a rejection, or an offer.

A couple of days later I had an email from my recruiter in my inbox. Emails usually aren’t a good sign. Rejections come by email, offers by phone they say. It was a short mail. I was asked if I had time to receive a call later that day.

Javascript – A Modern Love Story

Im Frühjahr des vergangenen Jahres sollte ich im Rahmen eines Vorstellungsgespräches angeben wie gut ich nach eigener Einschätzung bestimmte Programmiersprachen beherrsche. Darunter war auch Javascript. Bis dahin hatte ich Javascript ausschließlich im Browser eingesetzt und auch nur für Kleinigkeiten. Zu diesem Zeitpunkt verband ich mit Javascript im Grunde lediglich das Austauschen von Bildern auf Webseiten. Ich hatte ja keine Ahnung.

Trotz meiner von mir nur als mittelmäßig eingeschätzten Javascript Kenntnisse wurde ich als Web-Entwickler eingestellt. Zwar dominierte PHP meinen Arbeitsalltag, aber ich musste mich auch stellenweise mit Javascript auseinandersetzen. Etwa zur selben Zeit begann meine Faszination für Javascript. Ich entschied mich etwas näher mit Javascript zu beschäftigen. Bei meinen Streifzügen durchs Web nach guten Ressourcen zur Sprache fand ich dann die Video-Reihe “Crockford on Javascript“. An diesem Tag änderte sich alles. Ich verschlang die bis dahin vier erschienenen Folgen und in mir keimte die Erkenntnis, dass Javascript mehr zu bieten hat als Bilder auf Webseiten auszutauschen.

Ich beschäftigte mich intensiv mit Javascript. Ich versuchte die Sprache nicht nur zu beherrschen sondern sie zu ganz zu durchdringen und zu verstehen. Als ich das Konzept der prototypen-basierten Objektorientierung verstand und begriff, dass Javascript im Grunde eine funktionale Sprache ist, blühte in mir eine rege Begeisterung für die Sprache auf. Erst wenn man dies verstanden hat, kann man die ganze Eleganz und Ausdruckskraft von Javascript erfassen.

Hinzu kommt, dass Javascript überall ausführbar ist. Beinahe jedes moderne User Device bietet heutzutage einen Webbrowser, der Javascript ausführen kann. Zusätzlich gibt es inzwischen eine ganze Reihe von Laufzeitumgebungen die Javascript (und dessen Dialekte) ausführen können. Die bekanntesten sind sicherlich Adobe Air und node.js. Javascript existiert nicht nur mehr im Browser, sondern auch auf dem Desktop und auf dem Server.

Zusammen mit anderen modernen auf Javascript basierten Technologien wie JSON und den Document-Stores MongoDB oder CoucheDB bietet Javascript eine homogene und hervorragend ineinander greifende Entwicklungsplattform für Anwendungen jeder couleur. Die beinahe perfekte Interoperabilität bietet allerdings nicht nur potential für enorme Produktivitätssteigerung sondern reduziert auch die Wahrscheinlichkeit für Sicherheitsrelevante Bugs durch fehlerhafte / ungesicherte Umwandlungen und Schnittstellen, wie sie z.B. mit PHP und SQL gerne auftreten (Stuchwort: SQL Injections).

Javascript ist somit so aktuell wie nie zuvor und jeder Web-Entwickler – ob Backend oder Frontend – sollte sich mit dieser Sprache intensiv beschäftigen. Die Bereicherung der Sprache um den abgespeckten Strict Mode in ES5 legt zumal den Grundstein für eine zukünftige Aufrüstung der Sprache um wichtige sicherheitskritische Features. Javascript stellt somit die Zukunft der Anwendungsentwicklung dar – nicht nur im Browser.

Blogger-Interviews #2

Zunächst einmal Frohes Neues! Ich habe eine weile nichts mehr von mir hören lassen. Philip Banse hat gestern allerdings die zweite Reihe an Blogger-Interviews, welche er in Zusammenarbeit mit dctp.tv erstellt, veröffentlicht. Diesmal mit von der Partie: Mario Sixtus (Der elektrische Reporter), Udo Vetter (Law Blog), Thomas Knüwer (Indiskretion Ehrensache) und Stefan Laurin (Ruhrbarone).
Falls ihr die erste Interview-Serie noch nicht gesehen habt, sie ist in jedem Fall auch sehenswert: Blogger-Interviews für dctp.tv #1 mit Markus Beckedahl (Netzpolitik.org), Stefan Niggemeier (Stefan Niggemeier und Bildblog), Johnny Häusler (Spreeblick) und Sascha Lobo (SaschaLobo.com).