This is a guest post by Thomas Hughes, a Science and Engineering Manager of Applied Machine Learning at Etsy. While his advice is technically geared towards those looking for entry level machine learning jobs, it is also applicable for entry level jobs in data science, AI, software engineering and more.
As far as I see it, there are three things you should be good at to get entry level machine learning jobs:
- Getting past recruiters so you can get an interview.
- Getting past the interview so you get the job.
- Being good at the job so you don’t want to die.
These are three separate tasks, and separate unrelated skillsets / qualifications.
1) Getting past recruiters
The most important thing you can do is have a current job title of “ML Scientist” or “ML Engineer” on your resume. The more years that you’ve had that title, the better.
You might wonder how you do get years of experience if you’re looking for entry level machine learning jobs? The answer is easy. Today — right now — you have started your career as a freelance ML specialist. You’re in the process of finding your first customer right this very moment.
Build your freelance ML experience
For your first customer, think about any friends, family, colleagues, anyone you can imagine who might remotely think a machine learning model would be interesting, on any subject at all. Forecasting currency values in World of Warcraft? Perfect. Cluster analysis on your best friend’s favorite novels? Sounds good.
Approach that person and tell them (don’t ask) that you’re going to do a free ML model for them as a learning experience, all you ask in return is that if anyone calls them up, they say that “Yes, (your name) did do some freelance machine learning work for me on (cool subject).”
If you’re asked your rates — which you probably won’t be, but just to be prepared — you charge on a sliding scale based on how interesting the project is, and how much it helps your skillset grow.
Congratulations, you have begun professional experience as an ML specialist, and you will have a significantly easier time getting interviews.
Tailor your resume precisely
The second thing to do to get past recruiters is to mirror the qualifications of the job post in your resume (without lying).
If the post has a sentence that says, “Experience with data science tools (Python, Pandas, Spark, TensorFlow)” and you have experience with 2 of those 4, just write in their own words “Experience with data science tools (Python, Pandas).” This makes it much easier for the recruiter to see that you fit the qualifications of the post.
Combined with your experience as a freelancer, you should now be able to get interviews.
2) Passing the interview
There are four major kinds of interview questions for entry level machine learning jobs. These are:
- Statistics knowledge
- Data structures and algorithms (aka, coding)
- Talking through a project you’ve worked on
- Culture fit
When you get the job, #1 and #2 will come up infrequently. However, during the interview, there will be an expectation of significant depth in these areas that is readily accessible while under stress. As such, statistics and coding interviews do not give you a great sense of what the job is actually like. There are many individuals who perform extremely well in ML positions who consistently struggle with statistics and coding interviews.
As such, I generally consider the skill to perform well in these interviews as distinct from the skills necessary to perform well in the role. I would recommend practicing on HackerRank, LeetCode, etc.
For #3, try to have a handful of use cases you can talk through where you’ve done end-to-end ML work. These can be part of your freelancing career as an ML specialist, and it’s good if they are.
#4, research their website to learn about their company culture. Learn to refer to their cultural values by name, and tie them back to your experiences.
Bonus interview question:
“What’s the largest data set you’ve worked on?”
Hiring managers usually ask a variant of this question to see how complex your previous projects have been. Past a certain size threshold, projects become significantly more complex. Most projects based on Kaggle or coursework are often considered “toy” problems, and employers generally want to know if your work will be ready for “production”.
A good answer, even if you’ve only worked on small data sets would be to say, “I have experience up to X GB. However, I also took the time to learn how to scale to data greater than 1TB using (Spark/SageMaker/Distributed TensorFlow, whatever).”
Be prepared to talk specifics about how your chosen framework changes at larger data sizes to show that you know what you’re talking about. The specific framework you learn is not as important as showing evidence that you understand how to scale models beyond a single machine effectively.
3) Being good at ML so you don’t want to die in your new role
ML Courses, technical blogs or academic papers can be good for this knowledge. Being active in an ML community, such as a local meetup or specialist Slack community will also be helpful. Your project experience will also help here. This is the part most people already spend a lot of their time trying to get right.