The No BS Way To Getting A Machine Learning Job

Daniel Bourke
Daniel Bourke
hero image

It’s no secret that machine learning ("ML") and artificial intelligence ("AI") are making their way into almost every industry.

Chatbots, writing tools, self-driving cars... the list is endless, while the percentage of job posts on Hacker News with the term “AI” has been rising steadily for the past five years:

hacker-news-hiring-percentages

But despite this rise in jobs, it's still hard to get hired!

Why? Well, there’s a funny concept in the tech world that getting a job and being good at the job are two completely separate skills...

job-interview-and-doing-job-skills

It's not enough to simply have the skills for the role. You have to be able to do well in the interview or even attract employers in other ways.

In light of this, there's really two steps to getting an ML job:

  1. Get machine learning skills — technical skills, coding, software engineering, data handling
  2. Market your machine learning skills — non-technical skills, communication, interviewing, portfolio creation

The first lets you do the job but it's the second that helps you get hired.

Now, there’s no shortage of resources on learning machine learning and AI skills including my own 3 beginner-friendly courses:

  1. Complete Data Science and Machine Learning Bootcamp
  2. TensorFlow for Deep Learning
  3. PyTorch for Deep Learning

Likewise, there's some great resources out there on acing the interview and preparing for FAANG interviews.

master the coding interview]

The acquiring skills and learning part is simple enough. It's takes time and dedication but it's "simple"... Take a course, follow along, build the projects, etc.

But how do you take care of step two? How can you market your skills and get that lucrative machine learning job?

Well I'm going to give you 5 steps to take and I'm willing to bet that they aren't the same generic steps most other posts tell you.

machine learning engineer salary

The first step (that most people don't do) is to share as you learn!

#1. Make Machine Learning jobs come to you by learning in public

One of my favorite articles is Learn In Public.

learn in public

It applies to any kind of learning, including machine learning, but the principle is simply to learn in public. You learn and share what you're doing, and get on peoples radar.

Fun fact?

This is exactly how I got my first job in machine learning.

I created my own AI Masters Degree and posted online about what I was learning.

dan learns in public

Most of the time, I had no idea what I was talking about, but pretty soon people started pointing out where I was wrong and where I could improve.

Even more awesome, they started offering me resources to get better, and so 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 really is a great way to make jobs come to you.

andrej-karpathy-becoming-good-at-thing

It seems simple but becoming known as an 'expert' on something is often just a repeated process of doing the thing and sharing what you find. And yes, you can apply this formula to machine learning.

A little secret about machine learning is this: most other 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 jobs come to you by inverting the internet.

Inverting the internet simply 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.

So let's look at another technique that compliments this method.

#2. You don’t need another course, build something and share it

Ah tutorial hell, my old friend...

I learned to code via online courses and now I teach online courses so trust me, I see the value in learning from a course.

But the thing is, eventually you'll outgrow the courses, and that's a good thing.

It means you've learned the foundations of a certain topic and are able to do the role.

The trick is to make sure you're not just learning as an excuse to not do the scary stuff. The building, the projects, the job applications, etc.

Change is scary, so it's easy to stick in the learning phase and we all do it. However, if you want to get better and seriously stand out, you need hands-on experience.

This is where the value is, and it's why you should be working towards specific knowledge versus general knowledge (i.e. practical experience).

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).

As course creators we can build the best courses possible and add the most important projects for you to create. But it's up to you to get out of your comfort zone and start making your own stuff after that.

It's so important for your experience, confidence and even retention of what you're studying!

Eugene Yan calls this type of learning going off the happy path.

Courses do much of the work for you (i.e. if you write the code from the course, it should work). But what most leave out (not mine 😛) are all the errors you’ll run into when trying to build something of your own!

And so if you want to stand out, start trying to acquire some specific machine learning knowledge through building or trying things of your own.

build your own projects

A fantastic example of this is Riley Goodside tweeting some prompt engineering hacks that he figured out via his various experiments working with GPT-3.

Sidenote: Prompt Engineering is a technique to get a language model to perform a specific task.

Eight months later, he was hired by Scale AI (a billion-dollar company!) to be their Staff Prompt Engineer. This was an entirely new role they created just for Riley!

riley-goodside-how-it-started-vs-how-its-going

See the top right tweet? That’s the CEO of Scale AI saying Riley is now their Staff Prompt Engineer. All from experimenting and sharing what he learned.

As of April 2022 (when Riley started), careers for prompt engineering didn’t exist!

Takeaway: Practice the general machine learning skills you’ve learned through courses and apply them to a project of your own.

Why?

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 now!

Added bonus?

It's great to have a portfolio of projects. It's even better to have additional projects in there that your competing interviewees haven't completed 😉

#3. Start the job before you have it

Here's another way to get ML jobs to come to you, and it's one of the key techniques I've talked about before with my students and readers.

The technique? Starting the job before you have it.

But how can I possibly start a job before I have it?

Simple!

  • Find something you’re interested in
  • See how machine learning can be applied to it and improve it
  • Then create and share it

This method seriously works.

For example

Just the other day I built a small prototype of a machine learning app I’d like to exist for a website I enjoy. The app basically turns talks into transcripts and then makes the text searchable.

It's a fun project, it's something new to learn and enjoy, and it's an easy way to create a relationship with the website.

Anyways, I then went ahead and sent it to one of the people who takes care of the site, and they quickly replied saying how much 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 and I would’ve done it for free, but now I’ve been offered a machine learning job that previously didn’t exist, all because I started the job before I had it.

job-offer-screenshot

Sensitive details are blacked out but the $$$ chat is underlined in green.

This method works so well, and you could repeat this process for almost anything you’re interested in.

Have a favorite podcast you listen to?

Transcribe their entire catalogue with machine learning and send them an app built with Gradio and hosted on Hugging Face where you make the talks searchable.

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.

Simple!

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.

WANT ML BUT NOT SURE WHY

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, this technique is one of the best ways to gain it.

Heck, you might even stumble on an idea so good you can sell it and make more than any job offer!

#4. Got skills? Market them with a good resume

OK so what if you've done all the above so far and still haven't had any offers come through?

Well then, it's time to go on offense, and the classic first step in applying for machine learning jobs is preparing a kick-ass resume.

However, the reason I say to go through the above steps first is because you have to actually have something to put on that resume! Not only does it look good to share unique projects but it also stands out, because let's be honest - reading resumes is frigging boring.

boring resumes

I know when I’m hiring, I would much rather see what people have done vs. a list of skills, so make sure you do the steps above before trying this.

For example

Even if all you have to share are links to blog posts with project write-ups or GitHub repositories with code and demos of machine learning projects, it's still better than just saying you 'know Tensorflow'.

And because I find resumes boring, I'll be the first to admit that I’m not a good resource for how to write a good machine learning resume.

ZTM have some great info on improving your resume but I also love Chip Huyen’s excellent What we look for in a resume.

Two things to note on resume writing:

  1. Every machine learning company hires differently. So trying to optimize a resume for all companies is not ideal. Customize for each application
  2. 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 rule.

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 down what she looks for in a machine learning resume:

  1. 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.
  2. 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?
  3. 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.
  4. 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.

Which of course, is what we've been recommending in this article also!

Sidenote: 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 them directly".

^^ I’m a big fan of going straight to the source. Totally worth the time, especially since most people won't do this. Simply find their email address, craft a personalized email and connect with them on socials. (Defo find the email, as a lot of sites want you to be verified before you can chat on social now).

Takeaway: There’s a trend here, and it's the fact that people generally prefer 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.

Seeing someone who's learned new areas and pushed their skills shows determination and the ability to learn new things. Skills are great but its character points that help make job offers!

#5. Ready to interview? Practice, practice, practice

So to recap: You've worked on projects in public, built your own things, got out of tutorial hell AND you have a nice new shiny resume, so what's next?

Well, assuming a job didn't land in your lap already, it's time to practice for the interviews.

Other than the required revision of common Data structures and algorithms, or even FAANG technical question prep, I would also recommend reading Chip Huyen’s phenomenal Introduction to Machine Learning Interviews Book.

The book is so good, simply because it has perspectives from both sides of the interview table:

  1. The first is from the angle of Chip's experience being a machine learning job candidate at a dozen big companies and startups, and receiving machine learning job offers from Google, NVIDIA, Snap, Netflix and more.
  2. The second is just as interesting, and it's from the perspective of Chip being an interviewer hiring for machine learning jobs at NVIDIA and Snorkel AI.

Boom! You can learn what it's like to interview AND what the interviewer is looking for.

Some of my favorite 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? (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 favorite, Do I need a PhD to work in machine learning?.

Short answer: no!

The book goes wide and deep so don’t feel bad if you look at it and get overwhelmed. 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 most industries is still pretty new, so many companies are still figuring it out as they go.

If you’re serious about preparing for machine learning interviews then I would suggest:

  • Do the basic Data Structures and Algorithms prep
  • Practice technical questions if you need them for your company
  • Reading the book 30 minutes per day
  • Then select one topic per week to spend an hour writing everything you know about that topic

You could easily turn these writing sessions into readable blog posts for other people to see. Then, after three months you’ll have a collection of resources you can show potential interviewers!

I can just imagine the conversation now:

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 [insert your blog or GitHub profile]".

mic drop

#Micdrop!

Takeaway: Every company’s hiring process will be different, so don’t overthink and try 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.

Also, don’t be afraid to admit when you don’t know something.

Instead, 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 things out which is incredibly underrated, and a key skill employers are looking for.

FAQ

How can I make machine learning jobs come to me?

Learn in public. Open-source your machine learning knowledge and 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, and 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 and show that you’re already writing code! This helps hiring manager's to see you as a lower risk hire
  • 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 might not feel ready but no one ever does. Imposter syndrome is huge in careers like this.

But remember, everyone else is still figuring it out and feeling like a fraud also. Especially since outside of the big tech companies, many companies are still figuring out where machine learning best helps them, and your job is to show them.

So if everyone is still figuring it out, including me, then 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 in getting a machine learning job?

Rejection happens. I’ve been rejected and it sucks.

But are you still alive? Yes. So keep learning, keep creating, keep applying.

What machine learning interview questions should I prepare for?

The reality is that there’s no limit to what questions to prepare for.

I recommend spending 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, and then 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 think.

And people, especially hiring managers, like to see what you’ve done rather than what you’ve thought about, so it's always best to try making something with your machine learning skills than to stay thinking about it.

In short:

  • 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

You've got this. Simply follow these steps, put in the work, take action, and the job will come!

More from Zero To Mastery

What’s The Best Way To Learn To Code? preview
Popular
What’s The Best Way To Learn To Code?

Coding Bootcamp vs Degree vs Self-Taught? There are pros & cons of each route. This deep dive breaks it all down and will help you find the best option for YOU.

How To Get A Job In Tech & Succeed When You’re There! preview
Popular
How To Get A Job In Tech & Succeed When You’re There!

Are you looking to get a job in tech? These are the steps (+ tips, tricks, and resources) from a Senior Developer to get hired in tech with zero experience!

Top 5 In-Demand Tech Jobs For 2024 (+ How To Land A Job In Each!) preview
Top 5 In-Demand Tech Jobs For 2024 (+ How To Land A Job In Each!)

Want to get hired in a tech job in 2024? Pick one of these 5 if you want: 1) High salary 2) Jobs available now 3) Can learn the skills as a complete beginner.