About one month ago (okay, actually a month and half — I’ve been busy) I was hired to be part of the Toptal network. (You can read about my hiring experience here.) So far the experience has, overall, been awesome. But like any job there are pros and cons.
First, the pros
For starters, the selection of work available is great. Clients go through some kind of vetting process as well, including (as I understand it) a mandatory $500 deposit as soon as they post a job. That must certainly weed out the flakes, so the jobs you see are only from serious clients prepared to pay top-dollar for the best developers. It’s refreshing if you’ve come from other freelancer sites, like Elance, where you have to wade through 1,000’s of BS “jobs” from clients who don’t know what they want, or are really just looking to hire the cheapest guy in India for $3/hour.
In fact, the number of jobs you’ll see at any given time will be much fewer. Toptal only shows you jobs that match the skills in your profile. For example, my account typically lists only between 100-200 open jobs at a time. But that’s actually plenty to choose from since they’re all highly relevant, and new ones cycle through over time.
Once I was hired into Toptal, the first thing I had to do was complete my profile. Part of that involves tagging the skills in which you have experience. I think the smart move here is to tag as many as you can (legitimately) think of, as it will effect the number and type of jobs you can see and apply to.
The other thing you have to do is tell Toptal what you want your hourly rate to be. You can make your hourly rate whatever you want. But, keep in mind, Toptal adds a certain amount on top of your rate when they charge the client, which is their profit. There’s nothing wrong with that, but since they don’t tell you how much their markup is it can be tricky to price yourself well.
If you’re unsure, your recruiter can help guide you. Perhaps other people who’ve blogged about this have misunderstood this to mean Toptal sets the rates, but that’s not so. They’ll set it to whatever you want, but what clients see will be higher after Toptal’s markup, and if you’re too high nobody will want to hire you for their project.
Once you’ve found a job you’re interested in, applying is as easy as hitting a button. That alerts the “recruiter” for that particular job that you are interested. The recruiters are super-nice and take care of all the negotiations with the clients. If a client is interested in you, an interview will be scheduled between you and the client. If the client likes you (which, most likely they will, since both sides have already been vetted), they tell the recruiter to hire you and you’re done.
The recruiters also actively try to match jobs with developers, so if you have available hours (which you can control) they’ll send you jobs to look at as well.
Okay, what about the cons?
My only real gripe with Toptal is that it takes a while to get paid. Each project seems to run on a two-week billing cycle from whatever date it starts. At the end of the two weeks you either fill out your timesheet (hourly projects) or a “payment” is created for you automatically (part- and full-time projects). All “payments” are due 20 days after they’re created — in other words, the client has 20 days to pay. I assumed this meant that as soon as the client paid, I’d get paid. In practice, however, I’ve never gotten paid sooner than the due date. This means from the time you start your first project with Toptal to the time you get your first payment is almost 5 weeks.
That said, once you get into the swing of how their payment cycle works it’s okay — you eventually get used to it. The upside is that Toptal guarantees (with one notable exception) you’ll get paid whether the client has actually paid or not, which is a huge relief. The most frustrating aspect of being a freelancer must certainly be slow-paying and/or flaky clients. (There’s an awesome video from Mike Monteiro dealing with this topic: Fuck You, Pay Me [opens in new window]).
The exception to the guaranteed payment is — the trial period. When you start a project, it will have a trial period of up to 2 weeks, during which the client can back out if they are not 100% satisfied. If that happens, you only get paid 50% of the amount you would have earned during the trial period, UNLESS you really screwed something up and were let off the project for cause. In that case, you get nothing. But so far, of the 3 projects I’ve gotten through Toptal, my trial period went smoothly in each case. So I’m guessing that bad trial periods must not happen too often.
My Toptal projects (so far)
Literally within a couple days of my Toptal profile being approved I had my first interview for an hourly project. I talked with the client, they liked me, and I got the project. A day or two later I picked up a second hourly project. Both jobs have been great fits with my skillset, awesome clients, and are still going very well.
The third project I got was a full-time (40/hour week) commitment, which unfortunately I wasn’t happy with. Not Toptal’s fault, just one of those jobs where the client has no concept how technically involved the things they want are and how long it takes to make it happen… plus having to collaborate with an existing developer who’s a self-righteous prick. These kinds of things can happen at any job.
Fortunately, getting out of a project is easy to do. I asked the recruiter to let me off that project, and he was (as usual) super nice about it. To Toptal’s credit they seem to care about keeping their developers happy as much as they do about keeping clients happy…. which is the way it should be.
Overall, Toptal has been a great experience so far. Like with any freelance-type working situation versus traditional employment, the trade off is freedom to work remotely and set your own schedule, versus stable income and benefits. For me, working where I want, when I want, far outweighs what I give up in terms of stability and benefits. The quantity and quality of work available to me through Toptal makes me feel reasonably stable, and the fact that they take care of their developers makes it a truly awesome platform.