15 tips from a Toptal freelance data scientist
Already a freelance professional, but not happy with how it’s been going?
Love taking in new challenges?
Ready to earn more?
If you answered “Yes” to all the above, you’ve come to the right place.
If you are not a freelancer yet but wanna become one, read my previous article
👉🏽 How to become a freelance data scientist?
My name is Pau Labarta Bajo and I am a mathematician who turned into a data scientist and machine learning engineer.
3 years ago, I decided I was tired of going to the office and that it was time for a change. I heard of Toptal through a friend, and what they offered sounded just right. Challenging projects, full flexibility on location and schedules. And a pretty good paycheck.
Getting in wasn’t easy and it seems it’s even more difficult now. But, trust me, it’s definitely worth the try.
Since I got in, I’ve worked on great projects, with people with fresh ideas, and clear visions. I did so from my home, from the beach, and sometimes from the sofa, when my back is destroyed after chasing this little one around the park.
Toptal’s screening process is notoriously hard (they claim only 3% of applicants make it to the platform). Honestly, I think this percentage is even lower in this Post-Covid world when the number of applicants has ballooned.
Why bother going through a screening process when you can join an open platform like Upwork?
Because Toptal also filters the clients you end up working with. This means projects in Toptal are more interesting, rewarding, and better paid than in all other freelance platforms.
You said you love taking on new challenges, didn’t you? The ultimate payoff is worth the effort.
Hence, the question is
How do I make it into Toptal? 🤔
My personal experience is just one data point. And as a data scientist, I cannot tell you I fitted the correct model using one data point and pretend I am not overfitting here.
I am simply sharing what worked for me because I suspect it can work for you too.
Toptal’s interview process consists of 5 phases:
- Non-technical interview to get to know you.
- 90-minute technical assessment with Codility.
- 60-minute technical interview with a Toptal screener.
- Test project.
- Final interview
1. Non-technical interview
In this first interview, the interviewer wants to understand:
- why are you even applying to Toptal?
- are you comfortable speaking English
- what discipline are you an expert in?
- #1. Be on time. It sounds obvious, but being late or even missing the call because of a “time-difference-mess” is a red flag and you are out. This advice applies to all calls, of course.
- #2. Make sure you are passionate about your work.
- #3. Be clear on what is your specialization. The verticals are very general (developer, designer, finance expert, project manager, or product manager) but the specializations are quite narrow. For example, there are up to 15 developer specializations, including DevOps, AI, Data Science, AR/VR, or Blockchain. Clearly state what’s your expertise.
- #4. If you haven’t had an interview in English in a while, prepare for it thoroughly, as the language part IS important.
2. 90-minute technical test with Codility
Here, you choose your preferred coding language (I chose Python) and solve 3 out of 5 problems from a given list.
These are general algorithmic questions, nothing to do with data science in my case.
Your solution is essentially a function that, given an input, needs to produce the correct output. Codility uses a set of test inputs and outputs to check the accuracy of your solution.
- #5. Start from the easiest problem on the list. Use the first 5 to 10 minutes to read all 5 problems and identify which one is the easiest for you. They are not all equally hard or easy. Start from the easiest, warm up your neurons and gain confidence on the way.
- #6. Edge-cases matter. The test inputs used to evaluate your code have many edge cases. Once you know how to solve most input cases, try to see what happens if you use an edge-case input. Does your code still work as expected, or does it break? Nailing down these details really helps you boost your score. Code speed is evaluated, but it is less important for your score.
- #7. Do not copy&paste ENTIRE solutions from another tab. One thing is to use Stackoverflow to copy a one-liner that sorts your Python dictionary by its values. We all do this 1000x a day, and it is legit. But copying the entire solution you find in an internet forum thread titled “solutions to Toptal Codility tests” is certainly not. Codility software tracks all copy-paste operations across tabs and the Toptal screening team takes this as a red flag. Do it once and you are out.
3. 60-minute live test with a Toptal screener
My 60-minute session was divided into two parts:
- First 30 minutes → general questions about data science and machine learning. If you are good at your job, you will answer them without problems.
- Next 30 minutes → live coding exercise. This was for me the hardest part. I am not a fast thinker, and live coding through a Zoom call while sharing my screen is the opposite of a relaxing environment for me. But I made it, so you can, too.
- #8. Do not be afraid to ask for clarifications if you do not understand the question. Better ask than talk BS.
- #9. Focus on clear thinking, not super-advanced technology. For example, in the case of data science, the interviewer can ask you to build a simple linear model from scratch using basic multiplication and addition. You don’t have to use advanced Python libraries, the goal is to understand what a linear model looks like and translate that into a Python function.
4. Test project
You will be assigned a test project, that you will need to complete within 2 weeks. This test project is designed to resemble the real projects you work on as a Toptal freelancer.
- #10. Prepare yourself to work day and night. I was working full-time on my 9–5 job while working on the Toptal test project. Resilience and discipline are key to success at this stage.
- #11. Focus on the problem to solve, not on the technology to solve it. Confusing the what (to solve) and the how (to solve it) is a common problem among technical people (like you and me). In my case, I could have used Deep Learning for example, but it was completely unnecessary, and a simple solution was available with classical ML.
- #12. Code well and document it even better. Your final deliverable is supposed to solve a business problem for a client. Write good documentation, that bridges the initial problem statement with the technical solution you designed. If you are a developer, write clean code and put together a professional README.md.
5. Final interview
In this final round, you present your project solution to a Toptal tech screener, as if she was a Toptal client. This interview takes place a few days after you submit your test project.
- #13. Prepare a presentation flow. The tech screener is not going to start asking questions from the onset. Imagine she is a client who wants to understand how your solution tackles her business problem and guide her through the process.
- #14. Dress professionally. We all got used to pajama-style Zoom calls. This is not one of those. Put on something that you would wear if the client was sitting right in front of you.
- #15. Focus on what the client needs. They don’t need to know everything you’ve done to get there, they want to know how your result solves their problem.
Apply to Toptal and let me know how it goes!
Want to learn more about freelancing and real-world ML?