My experience joining TopTal

Some months ago I came across TopTal, a "marketplace for top developers and top companies" - the company connects pre-screened engineers with clients. I formed an impression of TopTal being a sort of "high end recruiter," and along with the promises of flexibility in setting your own rates and hours, it sounded like a great opportunity to take on more consulting work. I applied.

Joining TopTal is much like applying for any job - you go through an extensive interview process. The first step was an interview with an HR/recruiter, in which we discussed (on a high-level) my skills and experience, and then rates and availability. TopTal requires all of its developers to be fluent in English, so that was also an important part of this screening.

The next step was completing three timed algorithmic challenges (in an allotted total of 90 minutes) on Codility. In hindsight, taking this test after a full day of work wasn't the best idea, and doing these on a weekend, with a clear head would have been a smarter move.

Individually, the questions were not too difficult, but doing all three in such a short time period, while also accounting for all possible inputs and edge cases was definitely a challenge. The questions themselves did not resemble anything that the vast majority of software developers ever do in their actual careers, but rather felt like they were straight out of a Comp Sci textbook.

Nonetheless, TopTal scheduled the next interview step with me, which was doing two more algorithmic challenges, but this time live, via screen sharing, in front of one of their senior engineers. The questions in this round dealt with slightly more "realistic" issues, but that might have simply been the luck of the draw.

The final interview step was to develop a test project: a Single Page Application that allows you to create & manage a to-do list. Generally a simple set of requirements, but I had no prior experience creating SPAs, so there would be some learning ahead. Research suggested that tackling this task with good old jQuery would be problematic, and AngularJS sounded like a good alternative (I've been meaning to play around with it anyways). On the backend, I decided to use Laravel 4, which I already had some (very minor) experience with.

I dug into the design & development, and after grinding through roughly 30 hours of work (which was often frustrating, due to my unfamiliarity with the tools and the ever-closing deadline), I wrapped up the project and presented it to the next interviewer.

The presentation involved some high-level questions about the structure of the application, demonstrating the functionality, and running a couple edge case scenarios. What was surprising was that we didn't even look at the code or the API which powered the SPA (despite it sounding like a "big deal" requirement). The demo felt like a "glance over" of the application, whereas I expected a much more in-depth review. After the presentation I was instantly approved into the TopTal developer network.

Next came a shocking curveball: despite earlier claims of being able to set your own rates, TopTal sets the hourly rate for developer themselves, and seemingly based on nothing more than the developer's geographical location. (After all, every developer in their network is a pre-vetted senior.) To quote, "the hourly rate for developers in Canada is $XX." Sure enough, this rate wasn't anything remotely similar to what was discussed with HR in the very first phone call. In fact, I'd say the rate given is very much at the bottom of what any consulting senior engineer in Canada would charge. I'm not sure where the disconnect was, but at this point I was very disappointed, as I had invested a ton of time into this process, and now it sounded like a nearly total waste (other than learning new technologies, which is always great).

The final kicker was the Developer Agreement that you must sign. TopTal attracts clients with a Quality Guarantee: "If you’re not 100% satised after up to two weeks of working with our developer(s), it’s free." Sounds like they're willing to stand behind their developers and back them up - a quality desired in every employer. What they don't mention is that the Developer Agreement states that should this scenario occur, you, the developer, are required to issue a refund of your fees to the client. That means it's really not TopTal providing the quality guarantee, but rather you. It's certainly great to stand behind your work, and I fully agree with the idea, but that should be your decision, and the entire guarantee process should be between you and the client. Having a third party (TopTal) provide that guarantee on your behalf and reap all the associated benefits (while also shifting all of the risk to you) does not seem right.

Another clause states that if you "refer" (I'm sure the definition of that word is open to interpretation by whatever legal counsel happens to be involved) "ANY developers, engineers or technology related professionals directly to Client," you'll be paying TopTal liquidated damages of $30,000. So in the event that you mention to a friend of yours that you're working on an interesting project for Client A through TopTal, and your friend happens to contact Client A, you'll be paying thirty thousand dollars in damages. Yikes.

And then there's the part of agreeing that all your "telecommunications, networking or information processing systems [...] may be monitored at any time without notice." Having your communication with the company's clients monitored isn't too unreasonable, and no one should have a carte blanche expectation of privacy in any case, but the wording of this clause is scarily broad and all-encompassing.

Needless to say, I didn't read the rest of the agreement - this isn't for me.

TopTal seems to be a great setup for many people, and my post isn't meant to defer you from getting involved, but I think it's important to know the facts of what to expect prior to investing a week of your time in the process.

Update, Mar 13, 2014: Taso Du Val followed up with me by phone and clarified a few things. The "refund clause" I referred to is not meant to be used for refunds during the developer's trial period (which is what the Quality Guarantee is for), but rather for cases of accidental overpayment and other mistakes. In the case of a client requesting a refund as part of the Quality Guarantee, the refund is split 50/50 between TopTal and the developer (I have not seen any documentation supporting this - the agreement makes no mention of any other refund conditions beyond what I've mentioned).

Additionally, Taso stressed that the monitoring of communications is meant to allow TopTal access to accounts they provide for you (email, dropbox, etc.) in case the client requires something that is stored there (ex. a file in dropbox, or confirmation that you did receive a certain email).

The explanations for these clauses do make sense, but the agreement (in its current form) does give off a different idea, and I would still suggest revisions and clarifications. Even with all this in mind, for me personally, the contract still asks for too much.

Update 2, Mar 13, 2014: It's also important to keep in mind that the explanation of clauses is one thing, but the legal interpretation may be an entirely different animal. As with anything, read before you sign.

comments powered by Disqus