I’m thrilled to announce that I’ll be joining Facebook’s Site Speed team in Palo Alto, California on September 26, 2011 for a 12-week internship!

After almost two months of being in contact with Facebook, I finally got the liberating call with the verdict yesterday evening: I’ve been accepted!

Backstory

For those of you who want to read it, here’s the full backstory.

Excitement

On February 24, I was contacted via the contact form on my website by Jason Sobel of Facebook. He’s a member of the Site Speed team and mentioned their article about BigPipe (which is the technology they developed to make Facebook load twice as fast). Apparently he had come across my master thesis and my website (i.e. this website) and was interested in my work on making websites faster. Jason asked if I was up for a chat some time to find out what I’ve been working on and so he could give a sense of what the Facebook Site Speed team does. There even was a mention of possibly joining Facebook: “maybe our team would be an interesting opportunity for you?”.

I’m sure you can imagine that when I received this e-mail I initially didn’t believe the sender’s e-mail address was real. It turned out to be legitimate… (I checked the e-mail headers and looked up Jason’s LinkedIn profile for verification.) By the end of the e-mail, I was literally hopping around uncontrollably like a schizophrenic kangaroo.

A couple of days later, I had an informal video call with Jason Sobel. It became clear they were interested in interviewing me for a full-time position. I explained that I’d first have to complete an internship to collect the final credits to complete my studies.
That’s why I proposed to do an internship first instead. They liked this proposal, so now I was interviewing for an internship instead!

First technical interview

My first technical interview was on March 21st and was taken by Benjamin Billings, a Software Engineering manager at Facebook whom is also a member of their Site Speed team.

Since I’d been working hard on finishing as much as possible of the various courses I’m enrolled in right now, to ensure I’d have enough time left to finish my master thesis by the end of May, I didn’t have time to prepare for the interview. A few hours in advance, I started looking up some algorithms, scanning them quickly, to get at least some of the details in my head.

Unfortunately, this first interview didn’t go too well. I was extremely nervous and solved the problems he asked me to solve very slowly.

At the end of the interview, I asked how I did and Benjamin confirmed my suspicion: my performance was not great.

Algorithmic Skills Sharpening

I was afraid this was going to happen. After all, it had been three years since I’ve had to deal with the details of sorting algorithms, tree traversal, single-source shortest-path finding of graphs, data structures and so on.
It had been one year since I’ve worked with relational algebra, database algorithms (such as calculating logical cost-based query execution plan selection), expression power of query languages, distributed computing algorithms and data structures (such as B+tree indexes).
My current master year has proven to be very ‘applied’: IT project management, information visualization, current trends of databases, basic accounting, bio informatics, legal aspects of ICT and entrepreneurship. The reason for that is that our university is trying to prepare us to enter the business world, either as an employee or business owner.

I explained Jason that “for me, it’s a matter of being immersed in a specific problem field again to regain the associated method of thinking”. Jason responded that they expect their engineers to be generalists and to be proficient across a wide variety of programming tasks. This is of course completely understandable — it’s in fact an excellent requirement for hiring software engineers.

So I decided that an opportunity of this magnitude was worth some sacrifice. I simply postponed all my university work to sharpen my algorithmic skills.

Over the next week, I processed ±1500 pages of knowledge acquired in the past of which my recollections had become rusty, plus I made some exercises. I re-studied the following courses:

Technology of Multimedia Systems and Software (compression techniques for images, video, audio and data in general)

Distributed Systems (techniques for building distributed applications that keep in sync, can recover…)

…

Second technical interview

Clearly, I was prepared far better for my second technical interview on April 4, which was conducted by Yuri Putivsky (whom is not a member of the Site Speed team). He’s a C/C++ programmer, and if memory serves, he said he did and still does some fairly low-level programming. I told him I’d been working with C++/Qt a lot for my master thesis (he knew Qt), so he proposed I’d answer his questions in C. I agreed with this, but was slightly worried that he’d overwhelm me because of his “low-level C programming” history.

However, mostly thanks to the re-studying of the Algorithms & Datastructures course and the practicing, the interview went very smoothly! I answered far more questions than the first interview, most of which were harder, in the same amount of time.

The verdict

I was anxiously awaiting the verdict for just over two weeks…

On April 19, around 20:45, the verdict was finally shared in a liberating call. When I finally heard Laurie Young (responsible for university recruiting) utter the words “Congratulations! You’ve been accepted!”, I was incredibly relieved to know the answer, but most of all, I was incredibly excited :) As mentioned at the beginning of this blog post, I will start on September 26, 2011 in Palo Alto, California!

(I was later told by my (amazing!) girlfriend that I squeezed her hand quite firmly as I was being told the good news :P)

Drupal

I’d like to thank Dries Buytaert once more for his letter of recommendation and the chances he offered me over the past few years. In particular, I’m grateful for the opportunity to build Mollom’s e-commerce system back in 2008, when I only brought open source Drupal modules as prior experience to the table.

If I look at the grand scheme of things, I even have to thank him to open source Drupal. After all, if I wouldn’t have come across Drupal in my search for a CMS to rebuild DriverPacks.net, then I would never have written the article about Drupal’s page loading performance. If I wouldn’t have written that, I would never have written my bachelorthesis about it. Next, I’ve only been able to come up with the concept of my master thesis thanks to the preceding bachelor thesis. Finally, Facebook has only found me thanks to my bachelor thesis and especially my master thesis, about which I’ve written on my website that is powered by Drupal!

It’s clear that I owe a great deal to Drupal, the Drupal community and Dries.

Thanks, Dries! Thanks, Drupal community!

Hasselt University

Of course, this was not only possible thanks to Drupal. Clearly, I also owe a great deal of gratitude towards my university, Hasselt University and its many excellent professors.

In particular, I’d like to thank Prof. dr. Wim Lamotte (a great professor, my bachelor thesis promotor, but he didn’t stop there: he also reviewed my master thesis literature study and helped get approval for doing my internship at Facebook, amongst others), Prof. dr. Jan Van den Bussche (my master thesis promotor and an amazing speaker — he manages to make the most dry topics funny), Prof. dr. Kris Luyten (also a great professor whom teaches many multimedia and HCI courses, while always looking at the newest technological innovations) and many others.

The future

My father and brother have also been very supportive over the course of my university studies. As have my girlfriend and parents-in-law to be over the course of my master thesis implementation (which is still ongoing).

It feels strange, knowing that a great opportunity awaits you in the not too far (yet not very close either!) future. I’m very excited to start at Facebook, and hopefully I will be able to continue to work there after my internship. (If I’m good enough and it can be combined with my personal life.)

Right now, I’ll just have to focus on finishing my master thesis implementation. (I had it put on hold for the last 1.5 month while interviewing with Facebook and while I was trying to advance other courses as far as possible, so I can get a long uninterrupted time to work on finishing my master thesis).

I don’t plan to leave the Drupal community any time soon, in fact, I will be building a new Drupal 7 site for my my table tennis club during the summer. Some of that work should flow back to the Drupal community, as usual :)

After this last multi-month summer vacation, I will then start in Palo Alto. But today, I have other things to do!

Exciting story Wim! Interesting also to hear that the good old basic algorithms and data structures skills are highly valued by the American computing companies. Also thanks for thanking me, I don’t think I have done much, except perhaps to gently force you to think a bit deeper from time to time.

Congratulations. One question though. With your level of expertise why dont you start your own consulting firm, or some kind of a product which would push you much more to the edge in every sense, from expertise to money.

Your contributions and serious approach to solving problems have paved the way! I am happy you have found recognition and hope you will enjoy what will clearly be a fabulous learning (and teaching) experience!

Great news Wim!
This also shows how the ‘open source’ attitude you have -sharing your knowledge with the world- pays of. I’m happy that your university supported you with that; and that Facebook seems to acknowledge it too.

Dude! Congratulations! Not sure what else to say. I’ve obviously seen you kicking around this place for ages, and it’s awesome to hear that you’re going to be doing some amazing things, outside this little world :)

Steve Yegge has a nice blog post where he emphasizes the importance of studying data-structures and algorithms again before an interview. It’s mostly targeted towards interviewing at Google, but will also apply to Facebook and the likes, I guess.

Hi,
Congratulations on the selection. I am sure by now you have started at Facebook. I was living in California before I moved to NY and loved the environment there (1 may either hate it or totally love it there). Nice to know the drupal folks going places. All the best for everything and hopefully see you at Drupalcon 2012.