MICHAEL HOUGHTON
Freelance PHP Developer

Toptal Review: The Interview Process

20th April 2014

A Toptal review from a PHP developer. Having recently passed the Toptal interview process, read about my experience and the process of joining Toptal.

Having been freelancing for a large part of the last decade, I would consider myself an expert as a remote software developer.  When I came across Toptal, I was immediately impressed by what I saw.  Having spent a large amount of time bidding for projects on Elance and Freelancer.com, I was excited by the prospect of being awarded projects based on my skill set and experience, rather than constantly competing on price.

As it is often said, you get what you pay for, and I am a real believer that even though I can't compete on pricing from the 3rd world, I am a very skilled developer and deliver a high quality code in quick time - I bring value to my clients though writing great software without needing to be micro-managed.

Toptal sounded like the perfect fit.  I did some research, and found an article by Cameron Barr about joining Toptal.  He later writes an article about being with Toptal a year and about how great it has been for him - awesome, this is the feedback I wanted to hear!

The 4 Step Interview Process

I applied and within 2 days was told I had an interview.  The interview was scheduled and in the end was nothing more than a brief call, explaining the 4 interview processes.  Overall it really just felt like the Interviewer was checking that I spoke good English (no problem there, it is my first language), that I was on time for the call, and that I knew what I was talking about.

The second assignment was a test through Codility.com, that was tough enough.  There were 3 questions, but the requirements were to complete at least 2 really well.  So I did the 2 in the time I had, I ran out of time on the 3rd, but was happy that I had done well on 2 of the questions.  Sure enough I got the 3rd interview.

The 3rd interview was over Skype, the interviewer got me to do 2 more problem solving tests - similar to what was done on codify but this time he got to sit and watch me stumble through it.  Even programming for 10 years, I was nervous - having worked remotely for so long, I wasn't used to someone watching my every key stroke!

Sure enough, he was happy with my solutions, and I got onto the final task - the famous "To-do" task, that has been talked about on various blogs.  This isn't an easy project!

Having just had a new born baby, I have a bad habit at night of having the baby's bottle in one hand, and my iPhone in the other (many times this is the only way to prevent myself falling back to sleep during the feed!)  Sure enough while browsing, I typed "Toptal review" and the first result was a new blog article by Yuriy Babenko about his TopTal joining experience.  I started reading it, and at first it sounded like another success story, till I realised that he wasn't so happy about his Toptal experience.  I was disheartened - I had come this far, and wanted to work for the best - had I judged this wrong?

The purpose of this article is to share my experience, but also rebut some of the comments made by Yoriy, because not everything said on his article is similar to my experience and I want to make sure that if you are thinking about applying for Toptal that you don't judge his experience as the standard interview procedure.

Naturally, a 4 step interview process, with a small project at the end is a lengthy process - but if you want to work with the best, then you put in the effort right?  Given that some bloggers state that only about 3% of applications get accepted into Toptal, some might say "why bother", but I thought "lets be one of the 3%" - I want to be the best, and work with the best - and I suspect Toptal know that those who do pass all 4 interviews are motivated enough to want to be the best also!

And this isn't the first time I've had to go through an interview process like this to prove myself.  When applying for CakeDC, I had a similar process - 2 interviews, one with 7 of the CakeDC team.  I spent about 10 hours learning various aspects of the CakePHP framework that I didn't have experience with, to ensure I had the right skill-set for the job - if you want it badly enough, you will make it happen!

So, back to Toptal.... I decided I had come this far, I wanted to see the process through.  So I completed the "To Do list" project.  I suspect Yuriy did a lot of learning in the 30 hours he used to complete the project, or isn't tracking his times as accurately.  I used Paymo.biz to track my working hours, and timed myself for this project.  The whole project had to be Ajax driven, and even without being an AJax expert (Javascript is one of my weak points), I was still able to complete the project using CakePHP and the CakePHP Js Helper within 5 hours!

When I had the final interview, it was only 20 minutes long.  The Interviewer was clearly impressed and could see everything worked exactly how it should.  Yuriy commented that he was surprised that the Interviewer didn't ask to look at the source code - he is right, I wasn't asked either - but what Yuriy failed to mention was that the code is loaded to Toptal's Github account before showing them the project.  So they can see the code themselves on Github before the interview.

Regardless, Toptal is hiring different software developers writing in different languages.  I wrote my application using CakePHP, a framework the Interviewer may have never used - let alone even used PHP!  So I think it is fair enough that they are just looking to see if the application works as proposed.  They would also be checking that a developer can follow a basic project brief and have completed what was asked.

So all went well, and after 20 minutes, the Interview said the words I had been waiting to hear "Welcome to Toptal".  We then went on to discuss the developer expectations - which are strict, but not unreasonable - and as I explained to him - a great developer can be a good programmer who communicates well - and he couldn't agree more.  Having worked with too many amazing programmers who don't communicate, or go offline for days unexplained, it is fair enough that Toptal do have a strict communication policy.  To be the best, it's more than just writing the best code, it's about having the complete package.  Even with Toptal's expectations, it is largely nothing more than what I already offer to my existing clients as a freelance developer.

Your Hourly Rate

The Interviewer asked what my hourly rate was - I quoted it.  It was tempting to ask for more than I currently charge, but I figured, if there is any issue with the rate, at least I know that my existing clients are already happy enough paying that, so I can justify my rate to Toptal if they had any issues with it.  And besides, it isn't unreasonable by any stretch - I have two kids to support and a mortgage to pay for - and as I said earlier, you get what you pay for!

The rate didn't seem an issue - which after Yuriy's article, I half expected it to be.  Yuriy had claimed that Toptal don't actually allow developers to set their own rates as they promised in the interview.  I don't know what rate Yuriy quoted, but I suspect that if a rate is unreasonably high, they will put it more in-line with other developers - after all, these guys are interviewing hundreds of people a month, they know what developers are worth!

Later once I had login to the Toptal system, my hourly rate was listed on the site correctly, and I am satisfied that provided your hourly rate is reasonable they won't have an issue with you quoting your own rate.  And please don't let that be mistaken that you have to quote a low rate - but just know what your worth.  My advice is to actually do what I did - don't try for more, quote what you know you are worth and what you are getting now from your current clients - knowing that Toptal will lead to better clients, working with other great developers, more regular work without worrying about billing and chasing payments.

I've always based my hourly rate on supply and demand.  When I am busy, and I get asked to give a quote for a new client, I will push the hourly rate, knowing that if I don't get it, I have other work available anyhow.  During quieter times, I may quote lower in the hope to get the work.  Hotels and airlines work the same way - as do most businesses.

Toptal Terms and Conditions

Back onto Yuriy's article.  He mentions the Toptal terms and conditions.  After reading his article, I was keen to read carefully through the agreement.  Having studied Commercial Law as part of my Commerce Degree, and having signed countless agreements for clients over the years, I had a certain expectation of what these agreements are normally like.  Admittedly, the Toptal agreement is strict, but I would like to comment on a few things in regards to it:

Yuriy mentions the Toptal refund policy and paying Toptal back if the trial period is unsuccessful.  I had to read the section through several times, before realising that the paragraph isn't specifically mentioning the 2 week trial period, but is more in general about overpayments.  This is a confusing section, and given that it is paragraph 1, I actually agree with comments made on Yuriy's article that this paragraph should be reworded to make this more clear.

The CEO of Toptal later comments that any refunds from the two week trial are made 50:50.  But this isn't written into the agreement at all, so in the event that that happens, I will be at the mercy of Toptal on the outcome.

Overall however, I was happy to continue.  Most of my clients work on monthly billing - they pay me at the end of the month for the time I spent on their project during the month.  If they haven't liked the work I have done, they wouldn't pay me!  But in 10 years of freelancing, this has never happened because I have impressed the client.  With Toptal, there is extra support in the event that a client isn't happy and they won't pay - the CEO himself has quoted that the developer would still receive half of the balance.  Assuming the trial period hasn't worked out, it is a safe assumption that the developer hasn't done a good job.  In the freelancing world, outside of Toptal, the developer would receive nothing - and likely see a reversal made on any initial payment through PayPal!  I guess what I am trying to say is, yes, Toptal might be strict in this case, but they are no stricter than a normal freelance client would be anyway!  No client should have to pay for work they aren't satisfied with - especially if they are promised to be working with the best.

Lastly, in regards to the terms regarding the $30,000 payment for damages in the event that "ANY developers, engineers or technology related professionals directly to Client".  I agree with Yuriy here that this is harsh, but on the other hand, Toptal's business depends on acting as the middleman between the client and the developer.  They need to be strict in order to keep the client:developer relationship that they strive for - Toptal is the glue, they act as the project manager and handle payments and billing, while the developer can write the code!  I am sure that Yuriy has signed plenty of Non Disclosure Agreements as a freelancer - and the terms here from Toptal are no different from any standard NDA, with the exception that Toptal have put a value in the agreement of $30,000.  I've signed plenty of NDA's over the years, and I do maintain the confidently - which means I don't go talking to friends or collegues about the client's site, or the idea.  About the code and the problem solving behind the code - sure, but I don't give names, or details about the website.  And in the event a friend was interested - why refer them directly to the client - get them to sign up for Toptal too.  Why get them to get one good client, when they can have the potential to select from hundreds of great clients with Toptal!

What's Next

I passed the interview stage 2 days ago and this morning I set up my Toptal profile which is waiting to be approved.  I haven't started any actual work yet for them, and actually deliberately wanted to write this article before I do - as I will do a follow up in a few weeks with how the work is going.  I wanted to give my side of the Toptal interview process, as I almost gave up when I first saw Yuriy's article, but so far, I am glad I went through with the 4 interviews.

For those thinking about applying, I say, why not!  Don't be put off by one bad review - when there are so many positive reviews from other developers out there.  Go in with caution, of course - one should when chasing any new opportunity anyway - but trust your gut.  It is a four step process, you can say no at any time, so why not start on the process and see how far you can get.  Even it is just to evaluate where you are as a developer.  For me, I wanted some new opportunities, but also wanted to see if I could be part of that 3%.  I am now, and look forward to following up in a few weeks with an update on how things are going with Toptal.

With Toptal I have the potential to work with some huge clients, which with being a sole freelancer I may never have otherwise gotten the chance.  Seems like time well spent to have an opportunity like that if you ask me, and I can't help but feel that Yuriy is missing out!

For a more recent update, check out my 6 month Toptal update or more recently my 2 year Toptal update.