The following resources are mostly tailored towards getting your first machine learning job but can be extended for future machine learning jobs.
They are in order of how I would approach them.
For example, the final two have little meaning if you’ve not gone through the first three.
- You can see the video version of this article on YouTube.
- Acquire machine learning skills and make machine learning jobs come to you by learning in public.
- You don’t need another online course, build your own machine learning project and share it.
- Start the machine learning job before you have it.
- Make a good machine learning resume and apply to machine learning jobs (ignore this if you haven’t done any of the above).
- While applying for machine learning jobs, prepare for machine learning interviews (ignore this if you haven’t done any of the above).
Bonus: Read So Good They Can’t Ignore You by Cal Newport. Or skip reading it (I found it pretty bland) and just adhere to the title.
It’s no secret machine learning and artificial intelligence (AI) are making their way into almost every industry.
Note: I use the terms machine learning and AI interchangeably.
The number percentage of job posts on Hacker News with the term “AI” has been rising steadily for the past five years.
Despite this rise in jobs, there’s a funny concept in the tech world that getting a job and being good at the job are two completely separate skills.
In light of this, let’s break getting a machine learning job into two steps:
- Getting machine learning skills — technical skills, coding, software engineering, data handling.
- Marketing your machine learning skills — non-technical skills, communication, interviewing, portfolio creation.
The first lets you do the second and the second allows you to get a job.
There’s no shortage of resources on step one, getting machine learning and AI skills, especially my own beginner-friendly courses:
- Complete data science and machine learning bootcamp: Zero to Mastery
- TensorFlow for Deep Learning: Zero to Mastery
- PyTorch for Deep Learning: Zero to Mastery
Getting machine learning skills aside, how do you take care of step two, marketing your machine learning skills and getting a machine learning job?
Of course, you can do step two while doing step one.
That’s what the following resources trend towards.
I’d recommend going through them in order.
1. Make machine learning jobs come to you by learning in public
One of my favourite ever articles is Learn In Public by swyx.
It applies to any kind of learning, including machine learning.
It’s how I got my first job in machine learning.
I created my own AI Masters Degree and posted online about what I was learning.
Most of the time, I had no idea what I was talking about.
Pretty soon people started pointing out where I was wrong and where I could improve.
They started offering me resources to get better.
I went from not knowing how to code and driving Uber on the weekends to working as a machine learning engineer in nine months.
Learning in public is one way to make jobs come to you.
A little secret about machine learning is: most people are figuring it out too.
So if someone sees that you’re figuring it out and sharing your work, pretty soon they might come asking you for help.
Takeaway: Make the machine learning jobs come to you by inverting the internet.
Inverting the internet means instead of applying to 100s of jobs where 1000s of other people apply, make them come to you.
This isn’t saying never to apply to machine learning jobs.
It’s saying to at least be open to the possibility of machine learning jobs coming to you.
And one way to do that is by learning in public.
2. You don’t need another course, build something and share it
I learned to code via online courses.
And now I teach online courses.
You know drill, learn anything, anywhere.
But eventually, you outgrow the courses.
Once you’ve learned the foundations of a certain topic, online courses can actually slow you down more than help you.
Some things don’t even have courses.
This is where the value is.
Specific knowledge versus general knowledge.
Courses are great for the foundations, for the general knowledge of machine learning.
However, specific knowledge can’t be taught.
It can only be figured out through trial and error, through experimentation, through play, through sharing your ideas and having other people pick them apart (see the above point on learning in public).
Eugene Yan calls this type of learning going off the happy path.
Courses do much of the work for you.
If you write the code from the course, it should work.
What many leave out (not mine :P) are all the errors you’ll run into when trying to build something of your own.
If you want to stand out, acquire specific machine learning knowledge through building or trying things of your own.
A fantastic example of this is Riley Goodside Tweeting prompt engineering (a technique to get a language model to do a specific task you’re after) hacks he’d find through various experiments working with GPT-3.
Eight months later, he was hired by Scale AI (a billion-dollar company!) to be their Staff Prompt Engineer (a new role they created just for Riley!).
Takeaway: Practice the general machine learning skills you’ve learned through courses and apply them to a project of your own.
Because this is what you’ll be doing in a machine learning job when you get one: applying your machine learning skills!
So you might as well practice.
Plus, projects done throughout online courses aren’t really projects of your own.
This is because the instructor has done much of the work for you.
Prepare yourself for a machine learning job by acquiring specific knowledge through projects and experiments of your own.
3. Start the job before you have it
You know what’s even better than waiting for a machine learning job to come to you?
This is one of the main pieces of advice I tell students who come to me asking how to get a job in machine learning.
But how Daniel?
How can I possibly start a job before I have it?
Find something you’re interested in.
You have interests right?
Then see how machine learning can be applied to it.
If it can (and it likely can), excellent!
Try it out and see what you find.
But Daniel what if I don’t know how to apply machine learning to my interests?
That’s the whole thing you’re trying to figure out!
Maybe it can, maybe it can’t.
Of course, you won’t know if you don’t try it.
Okay... I'm in! Does this actually work?
It worked for me the other day!
I built a small prototype of a machine learning app I’d like to exist for a website I like (turning talks into transcripts and then making the text searchable) and I sent it to one of the people who takes care of the website.
They replied saying they liked it and would I potentially like to turn it into a commercial venture!
I’m not even looking for a machine learning job…
I would’ve done it for free!
And now I’ve been offered a machine learning job that previously didn’t exist.
I started the job before I had it.
You could repeat this process for almost anything you’re interested in.
Have a favourite podcast you listen to?
Have an open-source company you’d like to work for?
Find their GitHub repository and go to their open issues and start trying to fix them by committing code.
Even though it seems like the big tech companies have a fairly good grasp of machine learning (and they do), there are far more companies, across almost every industry, that are still thinking about how they could use it.
Because of this, every machine learning job is going to have skills specific to it, so you might as well start doing the thing you enjoy doing and develop skills for that specific thing.
And eventually get paid for that specific thing.
Takeaway: Starting the job before you have it means at the very minimum you’ve got the initiative to work on things that interest you.
If you’ve got no previous experience working in the machine learning field, starting the job before you have it is one of the best ways to gain it.
4. Got skills? Market them with a good resume
The next two points don’t mean as much if you haven’t gone through the above.
But when you’ve got machine learning skills, you’ve been building specific knowledge through your own projects.
And machine learning jobs aren’t coming your way as much as you’d like.
Time to go on offense.
And the classic first step in applying for machine learning jobs is preparing a resume.
However, the reason I say to go through the above steps first is because you have to actually have something to put on a resume.
But before we continue, I must confess.
I find resumes boring.
When I’m hiring, I much rather see what people have done.
For example, links to blog posts with project write-ups or GitHub repositories with code and demos of machine learning projects.
So I’m not a good resource for how to write a good machine learning resume.
But Chip Huyen’s excellent What we look for in a resume is.
Two things to note:
- Every machine learning company hires differently. So trying to optimize a resume for all companies is not ideal.
- More specifically, small machine learning companies hire differently to larger machine learning companies. Small companies often look for specific-generalists (an oxymoron) or in other words, people who have a very niche set of skills but can do many things if needed (see Riley Goodside above), larger companies tend to want people who are very good at very specific things (for example, machine learning roles requiring PhDs).
Of course, there are exceptions to the rules.
Chip’s machine learning resume guide talks about how she tries to hire for her small machine learning company, Claypot AI.
But I think the principles can be applied to almost any machine learning job.
Chip breaks what she looks for in a machine learning resume into:
- We look for demonstrated expertise, not keywords — Many modern resumes hack for keywords (e.g. “Jupyter Notebook”, “Git”, “Amazon Web Services”), this may pass a filtering system but is boring to read. Show what you’ve done (related to the job or not), don’t tell.
- We look for people who get things done — Have you built something of your own? Have you shared your work? Have you started the job before you had it?
- We look for unique perspectives — Unique perspectives come from specific knowledge. If you’ve only done the same courses as everyone else and the same projects, how can you share a unique perspective? Try going off the known path and create your own.
- We care about impact, not meaningless metrics — If you’ve worked on something in a machine learning business, how did it influence the business? Be as specific as possible. If you worked on your own project (prior to getting a machine learning job), how did you improve it over time? Again, be as specific as possible. Being specific not only demonstrates technical skill, it shows communication skills.
You can see elaborations on each of these in Chip’s machine learning resume guide.
I’d also highly recommend checking out the tips section which includes helpful tidbits such as:
If you’re applying to a small startup, say, of less than 20 people, spend some time researching who works at that startup and email (reach out) them directly.
I’m a big fan of going straight to the source.
Takeaway: There’s a trend here, people generally like seeing what you’ve already done.
Think about it from a hiring perspective, it’s a risk hiring someone you’ve never worked with before, so it makes sense that the hiring manager would like to reduce the risk as much as possible.
Help them reduce the risk by showing them what you’ve done and how it relates to the machine learning job you’re going for.
5. Ready to interview? Practice, practice, practice
Been through all of the above steps?
Got a polished resume and portfolio?
Time to start practicing for interviews.
In an ideal world, you skip the machine learning interviews and go straight to getting hired.
But let’s assume that’s not the case.
What should you do?
I’d read Chip Huyen’s (the same Chip from above) phenomenal Introduction to Machine Learning Interviews Book.
The book comes from the angle of Chip being a machine learning job candidate at a dozen big companies and startups.
Receiving machine learning job offers from Google, NVIDIA, Snap, Netflix and more.
And as Chip being an interviewer hiring for machine learning jobs at NVIDIA and Snorkel AI.
Some of my favourite chapters include:
- Working in research vs. working in production — Are you researching fundamentally new machine learning techniques or are you trying to apply existing ones? (note: these aren’t mutually exclusive, there are plenty of overlaps)
- Technical skills — What technical skills, such as software engineering, data cleaning, analytics and visualization, machine learning specific skills do you need for a machine learning job?
- Non-technical skills — What non-technical skills, such as communication, experience, leadership, analytical thinking and more do you need for a machine learning job?
- Types of questions — What kinds of questions get asked in machine learning job interviews? (the book includes 200+ example questions!)
And my top favourite, Do I need a PhD to work in machine learning?, short answer: no.
The book goes wide and deep.
Don’t feel bad if you look at it and think, wow, how can one person know all of this?
Here’s another secret: they can’t.
That’s why it’s written in a book.
So it can be referenced when needed.
As the book says in the introduction, the use of machine learning in the industry is still pretty new, so many companies are figuring it out as they go.
A good way to approach it would be if you’re serious about preparing for machine learning interviews, practice by reading the book 30 minutes per day.
And then select one topic per week to spend an hour writing everything you know about it.
You could turn these writing sessions into readable blog posts for other people to see.
After three months you’ll have a collection of resources you can show others, potentially someone interviewing you for a machine learning job!
Interviewer: Is there anything you’ve done outside of several online courses?
You: Yes, I’ve been spending the past few months creating resources on several machine learning topics such as data structures, data sampling and creating training data, objective functions, metrics and evaluation and more, you can see these here: [insert your blog or GitHub profile].
Interviewer: Wow, that’s fantastic!
Takeaway: Every company’s hiring process will be different. So don’t overthink trying to optimize for every possible kind of machine learning job interview.
Instead, pick a few things you’re most interested in and become good at those.
Don’t be afraid to admit when you don’t know something, explain how you might approach figuring it out (another secret: even senior engineers use Stack Overflow and Google simple things).
The benefit of having machine learning projects you’ve already done is showing someone you can figure sh*t out.
How can I make machine learning jobs come to me?
Learn in public. Open-source your machine learning knowledge. Start being “the person” for something. Like Riley Goodside became “the guy” for prompt engineering.
Once you start being known for something, people will come to you for help.
Some of these people will want to pay you.
How can I skip the machine learning interview process and go straight to getting a machine learning job?
Start the job before you have it.
Commit to open-source machine learning repositories (you’re already writing code! it makes sense for the hiring manager(s) to see you as less risk).
Build a prototype of a small machine learning project and send it directly to someone.
Be active in the community, most of the jobs I’ve ever gotten have come through knowing someone who knew someone else who knew someone else. Jobs are like dating, people like it when other people can vouch for you.
How do I know when I’m ready to apply to machine learning jobs?
Do you feel unready?
You probably aren’t ready then.
But remember, everyone is still figuring it out too. Especially since outside of the big tech companies, many companies are still figuring out where machine learning best helps them (your job is to show them).
So if everyone is still figuring it out, including me, including you, it means you’ll never be 100% ready.
If you think you’d like to apply, apply.
But don’t treat the application as an endpoint, the practice must continue.
What should I do if I’m unsuccessful getting a machine learning job?
I’ve been rejected.
But are you still alive?
Keep learning, keep creating, keep applying.
What machine learning interview questions should I prepare for?
The real answer to this is that there’s no limit to what questions to prepare for.
If you’re following the first three steps above to the best of your ability, a machine learning job will fall in your lap.
But the good answer is, spend 3-4 weeks reading Part II of Chip Huyen’s Introduction to Machine Learning Interviews Book.
Then start answering 10 questions a month, sharing your work publically, applying to machine learning jobs and going through interviews until you’re successful.
This all sounds pretty tedious, do I have to do it all?
Of course not, there’s enough here to last you years.
One of the most important skills is selecting what you’d like to work on.
Keep it fun by following your own interests.
That’s what I’m doing with my company Nutrify: take a photo of food and learn about, I love food and I love machine learning so I’m combining them.
Where can I learn more about getting a machine learning job?
All of the resources linked above have extensive resources linked and attached to them.
But this article is more than enough to get started.
Remember the overall theme: you’re often smarter doing than you are thinking.
And people, especially hiring managers, like to see what you’ve done rather than what you’ve thought about.
So best to try making something with your machine learning skills than to stay thinking about it.
- Coding, building and writing about your own machine learning projects = more doing than thinking.
- Reading articles, watching video lectures and going through course-created projects = more thinking than doing.