Back to Blog home

Top Code - “Ma’am the data in that MOC file is inaccurate.”

Published on Tuesday December 11, 2007 by Espen Riskedal in Qt | Comments

In 1994 Eirik C. Eng and Haavard Nord established an elite company for the top one percent of the worlds coders. Its purpose was to create the greatest toolkit ever built. To ensure that the handful of coders recruited were the best the world had to offer - they initiated a hard and strenuous recruiting process. The process, if successful, would only allow the keepers of the lost art of software development to slip through the gates. It succeeded. Today, the World knows the company as Trolltech. The coders just call it: TOP CODE!

Actually, thats all just bulls#¤t. Except the thing about "1994", and "greatest toolkit", oh and "best the world had to offer" - yeah and the "lost art of software development" is kinda correct as well. Come to think of it - everything is true except the "TOP CODE" name.

As one of the guys doing a fair amount of recruiting for the development department in Trolltech I've come to see the typical pitfalls that our candidates fall into. And I was thinking, as a service to all of you thinking of applying, to give you some pointers of where you may go wrong too. BTW if I sound like an arrogant prick who thinks he is hot coder-shit, it's because I work together with a bunch of people I KNOW are hot coder-shits, and therefore their hotness rubs off on me.

Candidate pitfall #1

The first typical mistake is that the candidate is not comfortable enough with his programming language. For the sake of argument let's say we're talking C++ here. It doesn't take us long to figure out this point. We'll ask some innocent questions about const member functions or some simple pointer juggling and the candidate will typically start to have problems. Why is this? Well - programming is a craft, and only through actually programming will you improve this craft. Normally if you're right out of university (Norwegian ones anyways) you will not have had enough practice actually programming. Note: It's perfectly OK if you don't know C++ - what we're looking for is someone with a thorough understanding of at least one programming language.

Candidate pitfall #2

The other typical mistake, is that the candidate is not comfortable around data types and algorithms. We'll ask the candidate to compare a list and a vector, the pros and cons. We'll ask whats the depth of a balanced binary tree, whats the run-time of bubble-sort. Then watch him fall to pieces ;) This is something you actually do learn at the university though - so no excuses here :D

Candidate pitfall #3

The last typical mistake is that the candidate lacks experience doing software design. The way we typically design classes and modules in Qt is using two people and a white board. Simple as that. During our recruitment process we let the candidates do the same - and observe them. A lot of the time a candidate might avoid pitfall #1 and #2, but then #3 comes along and they dive into it. Why so? I think it's a bit of the same here as #1. Even with a university degree in computer science you might still never have done any object oriented design, and even less object oriented design in a team.

When I look at myself and how I avoided #1 and #3 I see that I got these skills outside my university courses:

  • I had part-time and full-time software jobs.
  • I had friends doing coding outside of class.

So, to summarize:

  1. Don't be afraid to apply!
  2. Know your programming language.
  3. Know your data types and algorithms.
  4. Know how to design in a team.

BTW for any recent candidates: This is NOT about you. I just woke and felt inspired to write about recruitment.

So - if you think you've got it, or just want a free trip to Oslo (we pay for it), don't hesitate: apply here!

Subscribe to Our Blog

Stay up to date with the latest marketing, sales and service tips and news.

The blog comment system has been migrated to a new platform. If you face any issues, please let us know via