My experience with Toptal

Armağan Amcalar
Armağan Amcalar
Published in
4 min readJul 7, 2015

--

I have interviewed with Toptal, which looks, by its cover, like a nice agency for finding freelancing work. Their motto is that they only work with top %3 freelance developers, and that led me to believe they have a thorough interviewing process.

What I found instead was below any expectations and fairly disappointing.

To be clear, I have been conducting interviews with developers who want to join my team for over 4 years. I have been into hundreds of interviews, and I know a thing or two when it comes to interviewing a developer — junior or senior.

The first thing Toptal presents you is a coding challenge for 3 algorithmic questions that have no relation to what you apply for: web/app development. In fact, I don’t think they have any relation at all to anything other than a CS101 course.

You have to devise and code 3 algorithms in 90 minutes. It’s a poor way to start an interview; and someone with a sane mind should just reject an interview that starts with algorithmic questions. But I wanted to follow up, to see if something good lies ahead.

By the way, there are ways to find out if an applicant knows about computational complexity, and it almost never includes asking them to devise a useless CS101 algorithm. Unless you are interviewing them for solving exactly those kind of problems. What you have to do instead is to ask them to review a given solution and see how they react; if they can find out the complexity and if they can come up with an optimization. This is only a good indicator for a junior developer though.

As Eric Elliott put it, hiring is hard in tech.

Here’s an excerpt:

experienced devs forgot the useless crap they learned in CS101 years ago so they could remember all the algorithms and design patterns they actually use in real-life

And then you move on to the second challenge, which you code live with an interviewer who is watching you code via Skype. The experience was better, the questions were easier. But still, you have to devise, albeit simpler, algorithms.

Now again, you are applying with expert skill, 10+ years of experience in all aspects of development, and you are evaluated solely on the basis of your chance to see the right solution.

Well, I failed at the second problem. Which was something I solved some years ago, but I couldn’t come up with the right algorithm. The correct solution consists of two lines; but when you don’t see it, you don’t. It doesn’t mean I suck at puzzles. Quite the opposite, I solve CS puzzles as a hobby. I eat them for breakfast. Here’s my Codewars profile with 300 completed puzzles, including the hardest puzzle of writing a 3-pass compiler.

I would like to work with the MEAN stack; and it apparently isn’t at all important how experienced you are with the stack, what apps you have built, what code you have open-sourced, and what value you can deliver to your customer.

I had been very excited when I saw their application form, though; because it even let you upload sample code. You also provide a GitHub username, which is a good way to see if a developer has any open-source contributions. I do, quite a lot.

Apparently the interviewer doesn’t know about the application form; because he asks the same questions again. He probably doesn’t check your GitHub account, too.

I am talking in conferences about how to architect your AngularJS apps (slides in Turkish), how to design distributed services with Node.js (slides), but apparently I’m not a good engineer enough to join the top 3% Toptal engineers because I couldn’t find a CS101 algorithm and solution in 20 minutes.

And all your experience is meaningless if you can’t do it, because, hey, our million-plus-users-software is built only with CS101 stuff.

I have to say I’m deeply disappointed. It has been a good experience to see a company which is touting itself as providing the best talent, is not the best when it comes to interviews.

So let this be a warning for those engineers out there who want to join Toptal;

It doesn’t matter how experienced you are in developing software, or what values you can deliver. What only matters is your ability to come up with an algorithm in 20 minutes. That is the sole differentiator, and if you can’t find a working algorithm in 20 minutes, you’re absolutely off. You can’t even get a chance to prove yourself in the actually useful stuff like the ones you will build for clients; like building a real app with your stack.

I wish the tech industry, and agencies in particular, improved their hiring skills because in the end it hurts the clients; keeping them from working with real experts. In fact, going through the info provided on the application form is a good start. Why do you ask for a GitHub account or sample code if you won’t consider it, anyway?

--

--

Leader, mentor, public speaker, lecturer, entrepreneur, software architect, JS evangelist, electronics engineer, guitarist, singer, radio host.