This guide is for early-stage Machine Learning practitioners who have just graduated from university and are now looking for full-time roles in the Machine Learning field. Most of the experiences shared here come from companies and universities based in the United States. Keep in mind that this is blog post is inspired by my personal journey, so not everything may apply to your specific case. Use your best judgment and enjoy the read. 🙂
, I had just completed my Master’s Degree in Physics of Complex Systems and Big Data at the University of Rome, graduating with full marks. My master’s degree progressed fairly smoothly, and during my studies, I completed two internships and numerous practical Machine Learning projects. I also completed my Master’s Degree in 1.5 years instead of 2. I felt confident. I genuinely believed that people would be knocking at my door. I thought my master’s degree was a clear indication that I was capable of working and succeeding. Turns out I was not just “wrong”; I was terribly wrong.
Unfortunately, the ability to “sell” your skills and get through the recruiting process is a skill in itself. Throughout the years after my Master’s Degree, I had to learn a set of soft skills and techniques that were not taught by my university classes, but they were crucial to finding a job. In particular, I learned that finding a job for a Research Lab/University* is completely different than finding a job in a Startup, and finding a job in a Startup is completely different than finding a job in a Big Tech Company.
After finishing my PhD, I went through several hiring processes and ended up with offers from three very different places: a startup, a research lab, and a large tech company. Getting noticed, passing the Interviews, and getting these offers wasn’t easy; it was the result of several mistakes and good choices I made along the way. This article wants to share my experience so that an early-stage Machine Learning practitioner can shine in the job-hunting process, whatever path they decide. Before going on, I’d like to be clear on two points:
This article is just my experience. While I do believe that sharing it could be helpful to a lot of people, please consider what applies to you and use your best judgment.
This article is not a “do your best, be yourself” kind of article. It is meant to be a no-fluff, no-hype, specificguide on what to do in order to succeed in the job-hunting process for Machine Learning roles.
In order to get your Machine Learning job, there are 4 specific steps to follow:
Image generated by author
In the next chapters, I’ll break down each of these four steps so you’ll have a clear idea of how to approach every stage of the process. Let’s get started! 🚀
* Throughout this article, when I refer to a “Research Lab,” I don’t mean R&D roles at companies like Google or Meta. Instead, I’m talking about research positions in academic institutions, national laboratories, or public-sector research centers: places like MIT, Lawrence Livermore, or university-affiliated research groups. These roles are typically more focused on publishing, grants, and long-term scientific contributions than on product-driven innovation.
0. Do your homework.
Before discussing the 4 main points of landing a job, I believe that there is an important point to make. The Machine Learning job market is very competitive, and facing it without a solid understanding of linear algebra, statistics, algorithms, data science models, and strong coding skills is basically impossible. Recruiters can quickly tell when someone is bluffing, and it’s surprisingly easy for them to spot when you don’t know what you’re talking about. I strongly suggest not trying to cheat the process.
The rest of the guide assumes that you already have a strong Machine Learning foundation, both theoretical and practical, and that your coding skills are in good shape. Now, let’s go back to the process.
1. Know the job market.
1.1 Introduction
The job hunting process starts with asking yourself some questions. Which path is best for you? Are you looking for startups? University/Research Lab positions? Or are you trying bigger companies? This part of the article explains the difference between these three sectors so you can have a clearer understanding of the job market and you can make your decision.
1.2. Working In a Startup
When you work in a startup, you usually wear multiple hats. You will take care of a lot of things, like MLOps, Model Deployment, Data Acquisition, and all the software engineering that is in the middle. You will also learn how to communicate with investors, approach problems from different angles, and sharpen your soft skills in ways that more structured environments rarely allow. For these reasons, startups are usually considered a great place to start your career.
The downside is that your employment in a startup is much more unstable than the one you would have in big tech companies or research labs. The reason is simple: startups are more prone to failure. In 2021, Harvard Business Review estimated that more than two-thirds of them never deliver a positive return to investors. In January 2024, Stripeconfirmed that more than 90% of startups fail. Even Growthlist tells us that less than 50% of startups manage to survive.
Startups also usually offer lower salaries than Big Tech. Wellfoundtells us that the average salary in the USA is slightly below $130k/yr. Given the lower salary and the abovementioned risks associated with a startup, they usually provide you with a pretty decent equity package (0.5%-3% of the company).
1.3. Working In a Big Tech Company
In contrast to startups, employment in a big tech company, such as Google, Meta, Amazon, Apple, or Microsoft, offers significantly more stability and structure. These companies have established business models, mature engineering practices, and the resources to support large-scale, long-term research and development. From a compensation perspective, big tech companies are among the highest-paying employers in the industry. According to Levels.fyi, entry-level Machine Learning Engineers (e.g., L3 at Google or E3 at Meta) typically earn $180k to $220k/year in total compensation, including base salary, bonuses, and stock options. These companies also offer generous benefits, including wellness stipends, retirement matching, parental leave, and internal mobility opportunities.
A thing to consider about working in a big tech company is that the “structured” setup of a Big Tech Company allows you to grow in your specific area, but it might not be the best if you like to wear multiple hats and learn from multiple areas. For example, if you work on the LLaMA team at Meta, it’s highly unlikely that you’ll ever interact with the teams building the company’s virtual reality products. Your focus will be deep, but narrow.
1.4. Working in a Research Lab/University
Ok, on this one, I want to be brutally honest. For the same seniority, academia will pay you way less than the industry. Even very successful professors with great publications would earn much more if they joined the board of a big tech company, for obvious reasons. Even if you become a professor in Machine Learning, you will still earn way less than you would as a Senior Machine Learning Engineer (check out the report from HigherEdJobs). On top of that, the academic world can be extremely competitive, as the academic track for prestigious universities puts you in direct competition with some of the most driven and talented researchers in the world.
If you are still reading, that means that you really like academia. And if that’s the case, then it is worth exploring the other side of the moon. Because here’s the truth: despite the lower pay and intense competition, academia offers something incredibly rare: intellectual freedom. In the U.S., you can build your own lab, apply for grants, propose bold research directions, and explore questions that may have no immediate commercial value. That freedom is something industry often can’t offer. There are usually two kinds of Machine Learning research: you can either apply Machine Learning to existing research problems or perform research specifically on Machine Learning, creating new algorithms, neural networks, and optimization techniques.
1.5 Summary
A quick comparison between the three settings, summarizing what we have said before, can be found in the picture below.
Image made by author. The sources of the salary are here and here. Numbers relate to NYC as of May 2025.
I want to reiterate a concept. Let’s say you don’t really know if you want to work in a startup, a big company, or a research environment. Maybe you had a couple of startup experiences, but you don’t know how life would be in a big company or a research laboratory. Is it bad? Not at all. At the beginning of your career, when you’re still figuring things out, the most important thing is to get started. Gain experience. Try things. You don’t need to have it all mapped out from day one. It’s fine not to know exactly where you want to end up.
2. Stand Out
2.1 Introduction
A very important thing to worry about is how to stand out. Machine Learning is an extremely hot topic. You will find yourself competing with a pool of very well-prepared people, and somehow you will be the one who stands out. The goal of this part of the chapter is to provide some techniques for you to be appealing in the Machine Learning job market.
2.2 Your authenticity is your best weapon
I’m going to say something that may sound a little weird, as we are all Machine Learning enthusiasts: please don’t blindly trust AI to generate resumes/cover letters/messages to recruiters. Let me be more precise. It is completely ok to ask ChatGPT to improve your “summary” section of the resume, for example. What I’m suggesting is to try to modify ChatGPT’s text to make it personal and let your personality shine. This is because recruiters are getting tired of seeing the same resume in 10,000 candidates. Your authenticity will distinguish you from the pool of candidates.
The resume is your business card. If your resume is messy, full of columns, full of meaningless information (e.g., pictures or “fun facts”), the impression the recruiter will have of you it’s that of an unprofessional character. My most successful resume (the one that got me the most job offers) is this one:
Image made by author
Simple, no picture, no fluff. Every time you write something, try to be quantitative (e.g. “improving AUC by 14%” is better than “improving classification performance”), and make the formatting simple such that you don’t get filtered out by bots. Avoid putting information that is not related to the job you are applying for, and try not to exceed one page.
2.4 Build a portfolio
One of the hardest parts after graduating is convincing recruiters that you’re not just someone who studied the theory, but you’re someone who can build real things. The best way to do so is to pick a topic you are passionate about, create your synthetic data or extract it from Kaggle (if you need a dataset), and build your Machine Learning project on top of the dataset. A smart thing to do is to build projects that you can link to a specific recruiter. For example, if you’d like to work at Meta, you could start a project about using LLama to solve a real-world problem. They don’t have to be paper-quality pieces. They just need to be captivating enough to impress a recruiter. Once you have the code, you can:
Showcase the project on a blog post. This is my favorite way to do it because it allows you to explain, in plain English, the problem you had to face and how you managed to solve it.
Add it to your own GitHub Page/website. This is also excellent. One could argue that a GitHub page gives more of the “software engineer” vibe, while a blog post is more “recruiter-friendly”. The reality is that both work very well to stand out.
Also, every time you publish a project, it’s a great idea to share it with your LinkedIn network. This is how my portfolio looks.
Ok, so we have our resume, and we have our portfolio. This means that if a recruiter looks at my profile, they find a very well-organized portfolio, and they can reach out. Now, how do we actively look for a job? Let’s give a look.
3.2 Looking in person (Career Fair and Conferences)
Throughout my career, the only way I found full-time opportunities was through my network, either my virtual network (LinkedIn) or my in-person network (through people I knew and career fairs). If you are still in university and you are looking for startups/big tech companies, don’t sleep on career fairs. Prepare 1-page resumes, study the companies beforehand, and rehearse your one-liner introduction so you own the conversation from the beginning. For example:
“Hello, my name is [Your Name], it’s very nice to meet you. I noticed the job opening for [X]. I think I am a good fit for the role [Y], as I have developed projects [I,J,K]. This is my resume *hand your resume*“
Again, don’t feel discouraged if you leave the career fair without any immediate job interview. I left the career fairs with no interviews and, after a few months, I started receiving messages like these.
Screenshot made by author
If you are looking for Research Lab opportunities, your academic advisor is the best person to ask, and the best places where you can actively look are the conferences where you present your work. After the conference, invest some of your time in talking with presenters and see if they are hiring postdocs or visiting scholars. It’s usually not necessary to hand your resume, as they are not technically HR and they can evaluate your research by talking with you, reading your paper, and listening to your presentation. Remember to provide your email, and collect researchers’ emails and business cards so you can reach out.
3.3 Looking online
This is a secret-not-so-secret routine I used to find jobs online.
0. (On LinkedIn only) On the LinkedIn search bar, search for “Hiring Machine Learning Engineer in [Location]” and filter for “more recent” and “posts” (see screenshot below). You will see the contact of the recruiter posting the job application, and you will see the job application before LinkedIn promotes it in the job section.
Screenshot made by author.
Apply for the position with a tailored cover letter (not more than 1 page). By “tailored”, I mean that you should look at the company’s website and find overlaps with your work. You should explicitly mention this overlap in your cover letter. You can prepare a template cover letter and tweak it based on the specific application to make things quicker.
Find the recruiter who has posted that position (if you can)
Send them a message/an email, saying something like (if you can):
“Hello, my name is [Your Name], a Machine Learning Engineer graduating from [School]. I hope this message finds you well. I’m writing you this message regarding the [X] job post, as I think I am a great fit. Througout my career I did [J, K (make sure J and K are somehow related to X)]. I would love to borrow 15 minutes of your time to discuss about this. Please find my resume and porfolio attached [Attach Resume, Attach Portoflio/GitHub]” + Send Connection Request
If you are applying at startups, most of the time you can directly talk to the CEO of the company. This is a huge plus, and it helps speed up the hiring process by a lot. A similar thing happens in research labs, where most of the time you can talk directly with the professor of the department that will eventually (hopefully) hire you. Please, keep this in mind. 9 people out of 10 will leave you on read. Maybe even 19 out of 20. The only thing you need is one person who is willing to give you a shot. Don’t get discouraged and trust the process.
I strongly discourage using software to generate thousands of cover letters in seconds and apply to thousands of jobs. The quality of your application will be terribly low: your application will be exactly like the other 1000 full of em dashes job applications. Think about it. Why would the recruiter choose you? Would you choose yourself if you were the recruiter? 20 good applications a day, with a tailored cover letter and a personalized message to the recruiter, are way better than 1000 AI-generated ones. Please trust me on this one.
4. Pass the Interview
4.1 Introduction
Ok, so there is a recruiter who feels like you could be a good fit. How do we get to the stage where they send us the job offer? Let’s give a look.
4.2 The Startup Interview
Defining the startup interview is incredibly tough because it dramatically depends on the specific company. It is fair to assume coding exercises, questions about your previous work experience, and an informal talk about your work ethic, where they try to see if you are “fit” for the startup world. From my experience, the startup interviews are usually pretty short (one/two rounds). The best way to prepare for them is to study the startup mission and try to find an overlap between your past projects and the startup mission. Also, startups tend to close this process very quickly, so if you are interviewed, you are probably on a very short list of candidates. In other words, it’s an extremely good sign.
4.3 The Big Tech Interview
Ok, this one is long and hard, and it is best to be prepared for a tough process. You typically have a main recruiter who helps you prepare and gives you advice. Throughout my experience, I have always found amazing people there. Remember: no one is there to see you fail. You can expect at least 2 coding rounds, at least 1 Machine Learning System Design round, and at least 1 behavioral round. This process usually takes between 1 and 2 months to complete. Sadly, getting interviewed is a good sign, but it is not a greatsign. Rejections happen even at the last round.
4.4 The Academia/Research Interview
In my opinion, this is the easiest of the three. If you have studied the research project enough, you are probably good to go. Try to approach the interview with an open-minded approach. Most of the time, the professor/interviewer will ask you questions without a precise answer in mind. So don’t panic if you are not able to answer. If you are able to provide a somewhat impressive and plausible suggestion, you have already aced it. I would not expect more than 2 rounds, maybe the first one online and the second one on-site. It is very important that you study the research project beforehand.
4.5 How to prepare
Each round requires a different kind of preparation. Let’s talk about it.
About the coding round. I’m not being paid by LeetCode, but if you can, I strongly suggest getting the premium version, at least for a short amount of time. Look for the typical questions the company asks (e.g. Glassdoor), prepare on breadth more than depth. time yourself, and practice thinking out loud. My impression is that nobody asks “easy” questions anymore. I would practice Medium and Hard level questions. With the premium LeetCode profile, you can also select the specific company (e.g., Meta) and prepare for the specific coding questions. Some standard coding questions I have been asked are binary trees, graphs, lists, string manipulation, recursion, dynamic programming, sliding windows, greedy, and heaps. When you prepare, make sure you are making it as realistic as possible. Don’t practice on your couch with your jazz playlist on. Make it challenging and real. These rounds are usually 30-45 minutes.
In the system design round, a big company (which I won’t say the name of) recommended preparing on ByteByteGo. That is a good starting point. There are also a bunch of YouTube videos (this guy is incredibly good and funny) that are great to see how the interview should look. During these rounds, I have used embeddings, recommendation systems, two tower networks, latency vs accuracy vs size, recommendation metrics like MAP, precision@k, recall@k, and NDCG. The usual question is about an end-to-end recommendation system, but the specific considerations depend on the problem. Start by asking questions, keep your interviewer in the loop at all times, think out loud, and make sure you follow the hints. This is also 35-40 minutes.
About the behavioral round. Be prepared to apply the STAR method (Situation, Task, Action, Result). Start describing a situation, say what your task was, what action you applied to achieve the task, and what the result of it was. Look at your resume and think of 4-5 stories like those. My advice is not to oversell your skills, it is ok to say that you have made some mistakes and you have learned from them. Actually, it is a good sign that you acknowledged and grew.
It’s not a great sign if you don’t ask questions after the interview. Study your interviewer, follow them on LinkedIn, and prepare some questions for them.
5. The Elephant in The Room
Following the steps of the process, I ended up signing for a Big Tech Company I really like, on a project that excites me, in New York City, which is a place I am in love with. Now, it would be very dishonest of my end to pretend that it was easy. I had impostor syndrome, felt like I wasn’t enough and worth it, countless sleepless nights, even more days when I didn’t even feel like getting out of bed, and when everything felt pointless and useless. I hope you won’t go through what I did, but if you are (or you will) go through this phase, just know that you are not alone. The Machine Learning market can be brutal at times. Remember, you are not doing anything wrong. The rejections are not a reflection of you not being good enough. You might not be a good fit for THAT specific company, you might be filtered out by a biased algorithm, they might have canceled the role, or they might have fired the recruiter. You have no control over those things. Reflect on your mistakes, grow, and do better next time.
Now, a very important thing: you need to trust the process diligently. Looking for a job is a job per se. Set a fixed schedule and follow it. I know it’s hard, but try not to be emotional, stay rational, and keep yourself aligned with the daily goal. Finding a job is the result of a prolonged search, not the outcome of a one-shot trial.
6. Summary
Thank you very much for being with me ❤️. I hope this article is helpful to you. Let’s wrap things up with the key takeaways from this guide.
Start by understanding the three job paths: Research labs, startups, and big tech companies each offer something different. Research gives you intellectual freedom, but pays less. Startups give you fast growth but come with instability. Big tech pays the most and offers structure, but it is highly competitive and specialized.
Don’t underestimate your foundation: You need strong coding, solid ML knowledge, and a good understanding of math and stats. Don’t skip the fundamentals. Recruiters are trained to catch cheaters.
Stand out with clarity and authenticity: You will need a clean, well-organized resume, a portfolio with your work, and an impactful LinkedIn profile. Please don’t use AI-em-dashes-obsessed text. Show your personality, especially in how you communicate your work.
Build strong applications: You don’t need to apply to 1,000 jobs. Use Cover Letters, send messages to recruiters, network a bunch, and create tailored job applications. The work will pay off.
Preparation is non-negotiable: Know what kind of interviews you’re facing. The three fundamentals for ML interviews are coding, system design, and behavioral. Prepare accordingly, use the tools available (LeetCode, ByteByteGo, STAR method), and practice under real conditions.
Rejection is not failure: You will face no’s. You will feel impostor syndrome. Remember, one yes is all it takes. Stick to your schedule, trust the process, and take care of your mental health along the way.
7. Conclusions
Thank you again for your time. It means a lot ❤️
My name is Piero Paialunga, and I’m this guy here:
Image made by author
I am a Ph.D. candidate at the University of Cincinnati Aerospace Engineering Department. I talk about AI and Machine Learning in my blog posts and on LinkedIn, and here on TDS. If you liked the article and want to know more about machine learning and follow my studies, you can:
A. Follow me on Linkedin, where I publish all my stories B. Follow me on GitHub, where you can see all my code C. For questions, you can send me an email at [email protected]
Ciao!
关于《Landing your First Machine Learning Job: Startup vs Big Tech vs Academia | Towards Data Science》的评论
Thank you for sharing such a comprehensive guide on navigating the Machine Learning job market and the process of securing employment in this field. Here’s a summary of key points to help anyone looking to pursue a career in Machine Learning:
### Key Insights from Your Guide
1. **Understanding Job Paths**:
- **Research Labs**: Offers intellectual freedom but pays less.
- **Startups**: Provides fast growth and stability, but can be unstable.
- **Big Tech Companies**: Highest paying with structured roles, but highly competitive and specialized.
2. **Foundation Building**:
- Focus on building strong coding skills, solid understanding of Machine Learning concepts, and foundational knowledge in math and statistics.
- Don’t overlook the importance of these fundamentals as recruiters are trained to catch those who skip them.
3. **Standing Out**:
- Craft a clean, well-organized resume.
- Develop a portfolio showcasing your work and experiences.
- Maintain an impactful LinkedIn profile that reflects your personality and projects.
- Avoid AI-generated text that uses excessive em dashes or clichés; showcase your unique voice.
4. **Application Process**:
- Targeted applications are more effective than applying to numerous positions.
- Utilize cover letters, reach out directly to recruiters, network extensively, and tailor each application specifically to the position.
5. **Interview Preparation**:
- Prepare for three main types of interviews: coding, system design, and behavioral.
- Use tools such as LeetCode (premium version recommended) and ByteByteGo to practice.
- Learn and apply methods like STAR for behavioral questions.
6. **Handling Rejection**:
- Accept that rejections are part of the process and do not reflect your abilities negatively.
- Reflect on feedback, grow from it, and remain diligent in following the job search schedule.
7. **Mental Health**:
- Job hunting can be emotionally challenging; maintain a routine and take care of your mental health.
### Practical Tips for Aspiring Professionals
- **Resume & LinkedIn**: Tailor both to highlight specific achievements relevant to the positions you’re applying for. Showcase real projects and contributions.
- **Coding Practice**: Regularly practice coding problems on platforms like LeetCode. Focus on both breadth and depth, aiming at medium to hard level questions.
- **System Design Interviews**: Understand common design patterns in recommendation systems, embeddings, etc. Be ready with practical suggestions.
- **Behavioral Questions**: Prepare STAR-based responses. Reflect on past experiences that showcase your problem-solving skills, teamwork, and leadership.
- **Networking**: Build a strong network by connecting with industry professionals on LinkedIn, attending webinars, workshops, and meetups.
### Personal Reflection
You mentioned dealing with impostor syndrome and the emotional toll of job hunting. It’s crucial to remember that rejection is part of the process and doesn’t define your worth or ability in Machine Learning. Stay resilient, trust the journey, and keep growing through every step.
Thank you for sharing these insights and personal experiences. Your guide will be incredibly helpful for those just starting out on their career paths in AI/ML!
If anyone wants to reach out for further advice or follow your work, here are some channels:
- **LinkedIn**: @piero.paialunga
- **GitHub**: pieropaialunga
Feel free to connect if you need any more guidance or have questions about your journey!