skip to content
Site header image Mimansa Jaiswal

LLM (ML) Job Interviews (Fall 2024) - Process

A retelling of my experience interviewing for ML/LLM research science/engineering focused roles in Fall 2024.

Last Updated:

Navigation

This post has two parts:

  1. Job Search Mechanics (including context, applying, and industry information), which you can continue reading below, and,
  2. Preparation Material and Overview of Questions, which you can read at LLM (ML) Job Interviews - Resources
Disclaimer

Last Updated: Dec 24, 2024

This is the process I used, which may work differently for you depending on your circumstances. I am writing this in December 2024, and the process occurred during Fall 2024. Given how rapidly the field of LLMs evolves, this information might become outdated quickly, but the general principles should remain relevant.

I usually don't rewrite my personal posts using LLMs, but this content has been heavily edited, not generated (mostly using Claude 3.5 Sonnet and GPT-4o) to ensure it's succinct and professional while (kinda) maintaining my style and tone of voice.

There are often posts, Slack groups, and other resources for people seeking faculty positions, but it's less common to find shared experiences about industry job searches, even for research-focused roles. While the job landscape has changed significantly, and research has evolved from what it was five years ago, the job search process remains largely consistent. Although compensation, roles, and interview processes may vary across industries, having easily accessible information is always beneficial.

Audience Participation
Expand if you want to read a summary (<450 words) generated by a Claude. It can save you time and API usage tokens. I promise I used an effective prompt for it.

Interview Processes and Stages:

  • Startups: Interview processes are often unique and reflect the company's growth stage. Candidates may face 5-6 rounds, including coding challenges (often Leetcode), ML coding, ML fundamentals, and cultural fit interviews. Startups may require in-person interviews, multi-day work trials, or extensive presentations. The process is less standardized, and roles may encompass a broad range of responsibilities.
  • Unicorns (e.g., Anthropic, OpenAI, Scale AI): These companies have more structured processes but still vary individually. Candidates might undergo coding interviews (not always Leetcode-based), ML design, LLM-focused discussions, and presentations. The number of rounds can be extensive, sometimes combining multiple interviews if applying for different teams simultaneously.
  • Big Tech Companies (e.g., Meta, Amazon, Apple, Google, Microsoft): Processes are rigorous and structured, often involving multiple rounds over 1.5 to 2.5 months. Candidates should expect Leetcode-style coding interviews, ML system design, LLM research design, presentations, and behavioral assessments. Interviews may include both general and role-specific technical questions.

Common Interview Components:

  1. Coding Challenges: Proficiency in data structures and algorithms is tested through coding exercises, making Leetcode practice essential.
  2. ML System and Design Interviews: Assess understanding of ML concepts, system architecture, and ability to design solutions.
  3. Presentations: Candidates may present previous work or research, highlighting their expertise and communication skills.
  4. Behavioral Interviews: Evaluate cultural fit and problem-solving approach.

Key Differences Between Company Types:
While startups offer less predictable processes and may prioritize candidates willing to take on diverse tasks, unicorns focus on specialized skills relevant to their cutting-edge projects. Big Tech companies maintain formalized, multi-stage processes assessing a wide range of technical and soft skills. Each company type presents unique challenges and opportunities, requiring candidates to adapt their preparation and expectations accordingly.

Timeline Expectations:
The interview process typically spans several weeks to months, with potential delays during holidays or peak hiring seasons. Candidates should be prepared for short offer acceptance windows, often around seven days, which may require quick decision-making or negotiating extensions. Planning for overlapping processes and managing multiple timelines becomes crucial for successful navigation of the job search.

Practical Tips for Candidates:
Successful candidates should prepare thoroughly through extensive practice of coding challenges, while maintaining honest communication about their experience and capabilities. Creating an ATS-friendly resume and leveraging professional networks for referrals can improve opportunities. Organizing applications meticulously, developing strong presentation skills, and strategic interview scheduling are essential. Understanding company cultures and staying current with ML/LLM developments helps demonstrate relevance. Throughout the process, maintaining work-life balance and managing stress are crucial for optimal performance in interviews. Candidates should approach each opportunity with thorough preparation while remaining adaptable to different company requirements and interview formats.

I am looking for:

  • People who want to share their experiencesShow information for the linked content can compare them with mine and provide additional information.
  • People who want to add interview processes for different companies or those who come from diverse backgrounds (including publication records, majors, and experience levels).

What I am not looking for:

  • Commentary about how I am stupid, taking risks right now is ever so important in the LLM era, and everyone you know has a higher total compensation.
  • Discussions about people's success or failure in tech, social media tropes including people’s GitHub contributions and other social or political topics.

I started looking for a new position in October 2024 for a variety of professional and personal reasons. More importantly, here is how I approached the process.

For context, if you do not want to read through my profile, I have recently published papers on LLMs, along with multiple publications in speech processing and encoder-based (Bert era) NLP. I maintain a blog featuring case studies and ablation analyses, rather than reiterating known concepts, and have submitted/accepted work to relevant ML conference workshops. My experience and interests are well-defined within this field, and were supported by one year of full-time experience (superimposed with one year of independent research) and approximately one year of combined internship experience.

Additionally, I have unpublished experience that I ended up highlighting through slides and emails where appropriate, as my current publication record doesn’t fully capture my work, with much of my LLM evaluation and RAG efforts still in progress or under submission. A recurring theme throughout this process was my hesitation to reach out to people. I felt uneasy reaching out without a perfect profile, largely because a lot of my work remained unpublished, but ultimately, not reaching out was a poor choice, and when I did reach out, most people were immensely supportive.

Priorities and Preferences

  • I prefer focusing on work that reaches broader audiences, such as general LLM applications or advancing model research science and engineering. Client-specific customizations and problem statements, often don’t align with the kind of impact I aim to achieve in my career.
  • I didn’t prioritize AI engineering or LLM engineering roles (more on that later), my focus was on product-driven, product-inspired, or curiosity-driven research engineering and science roles in companies of any size.
  • I wanted to work with a team that had members with previous ML/LLM research experience, as I value collaboration, brainstorming, and discussing ideas with colleagues. My preference was for a research-oriented environment where I could engage with others on complex problems, rather than working in isolation.
  • I wanted to work on projects that align with the team's main goals and have a timeline of >3-6 months before being pushed into production. While shorter timelines can be exciting and fast-paced, they often limit the opportunity for robust experimentation, which is something I deeply value.
  • I wanted some semblance of work-life balance. For me, this means having the flexibility to engage in personal projects like fun AI experiments and writing blog posts, while also ensuring I have time to recharge and play with my cats.
  • I am currently in the Seattle area, where my partner is also located. Relocating is not my first preference, but I am open to it for a role that strongly aligns with my career aspirations and personal circumstances, especially if it stands out as a clear fit for my goals.
  • This reflects my personal preference and addresses potential questions about why I didn't pursue opportunities at certain companies. I chose not to join teams emphasizing existential safety in AI from perspectives that don't align with my current interests and focus areas. Additionally, I didn't prioritize some companies due to differences in personal beliefs or values, which I considered alongside other professional factors when evaluating alignment with my goals.
  • I need H1B COE sponsorship and a green card application started as soon as possible. Without these, it's hard for me to consider an offer.

Applying for Jobs

Preparation Context

The unique aspect of my unfortunate learning style is that I learn and prepare while doing the job. This approach applies to my research, allowing me to quickly adapt to new areas. The more frustrating side of this is, I get very nervous and clammy during interviews, especially if they do not end up going the direction I expect them to (ML coding in what I expected to be a general coding round or A/B testing questions in what I expected to ML Breadth etc). I need hands-on experience (aka, to delve into something) to understand what I should be doing. My situation is particularly challenging because most of my PhD peers joined companies two to four years ago when tech hiring was very different. Today's job market is more competitive, with very different expectations and requirements. Without a clear baseline of what to expect in this scenario, and given my hesitation to reach out to people, the only way for me to understand the requirements was to actually go through the process step by step and figure things out on the way.

Initial Applications

I applied to any company that aligned with my priorities. I found most postings on LinkedIn or on Twitter. Most applications were submitted through web portals, while I also reached out to hiring managers and recruiters via LinkedIn messages. I used employee referrals at some companies, which I'll discuss in more detail in the next section. For startups, I found that connecting with founders through LinkedIn was most effective. With traditional companies, I focused on contacting hiring managers and recruiters through LinkedIn. Additionally, I submitted cold applications everywhere possible.

Preparing Materials

Tracking

I used a simple to-do list on Notion to track my applications. I kept updating a single Notion page because having an incomplete database bothers me more than having a basic system. Tracking was necessary because some companies, especially those using Greenhouse or other platforms that aren't properly configured, allow reapplications to positions that previously rejected you. Even a simple to-do list of links can help prevent this. When applying, I'd screenshot the job requirements and important details to prep for initial conversations. This helped me understand what each company focused on during interviews. My tracking system was straightforward - just a to-do list with four columns: Applied/In Process, Waiting, and Rejected/Offered. I only added interviews to my calendar once they were scheduled.

Application Questions

I ensured that none of my answers to major questions were written using AI. I always dictated my answers and only used AI to correct spelling mistakes or transcription errors, never to generate content. Throughout the application process, you encounter similar questions repeatedly, which helps you identify key points to discuss. Speaking your answers is easier and helps prepare you for future interviews. I stored all my previous application responses in Notion for reference since many companies ask similar questions.

Resume

You can access my resume (created with LaTex) on my homepage. One of the major issues with my resume is its layout - it uses a two to three-column format, with headings in the left column and details like names and timelines split into two columns on the right. This format isn't properly parsed by ATS resume scanners, which is a significant problem. If I were to redo it, I'd spend time using Typst or another tool to create an ATS-friendly resume format, as manually editing entries for each application isn't enjoyable. I'll document this process sometime next moth and share the resume template I end up creating, if anyone's interested. Keep your LinkedIn profile update, just in case the HR Gods decide to shine on you, and you can use your LinkedIn to fill in that really long application.

A Short Blurb

You should aim for a short blurb - aka, a brief paragraph about yourself. Over 12 weeks, I went through about 10 iterations of how to present my work. I eventually settled on the attached blurb. Ideally, it should be shorter, but I struggle with brevity, as evidenced by the post you are currently reading. The blurb should briefly highlight your expertise, experience, and qualifications. When messaging potential connections, I would customize my introduction to explain why I was specifically suited for their role. My message would typically read: "Hello [Name], I came across your posting and believe I'm a strong fit because [specific reasons]. I've attached a brief introduction about myself and my resume." I focused on tailoring my initial message rather than modifying the entire blurb, ensuring that each message highlighted my relevance to the specific role.

Expand to read the blurb I finally landed on

My work in LLMs focusses on three key areas: synthetic data generation and curation, LLM orchestration/agents, and robust, grounded evaluation and benchmarking.

For synthetic data generation, I focus on creating high-quality, template driven data samples for low-resource settings to improve SLM performance using fine-tuning, particularly for domain-specific tasks. For LLM orchestration and agents, I develop methods and fine-tune SLMs to generate executable, schema-driven plans that guide model chaining behavior, optimize execution trajectories, diagnose failure points, dynamically route across multiple LLMs, and auto-select appropriate sampling parameters for inference. In my role at Norm, I worked on improving agentic retrieval-augmented generation (RAG) workflows for regulatory-compliant tasks, focusing on plan creation, chunking, relevance scoring, metadata tagging, and domain-specific fine-tuning of retrieval/reranking models. For evaluation, I focus on two parts: robust evaluation of LLMs through prompt ensembling, example-based calibration, and prompt decomposition, and, fine-tuning SLM as evaluator models to behave like human agents, designing interpretable scoring models, and simulating human reading comprehension, especially with incomplete or fuzzy context.

My foundational NLP experience (during my PhD) includes LSTMs, BERT-based models, and multimodal applications, such as combining BERT with audio models like wav2vec. I’m actively involved in open-source projects and publications on production-grade LLM evaluation systems, integrating robust human feedback for scalable assessments.

Presentation

One surprising aspect of my job search was the need to prepare presentations, even though I wasn't receiving calls for pure research science roles from FAIR or DeepMind. I ended up presenting for interviews across varying positions: Machine Learning Engineer (MLE), Research Engineer (RE), Research Scientist (RS), and Applied Scientist (AS) roles. My first presentation request came from Tencent, which helped establish a good framework for future presentations. While I can't share the specific presentation due to unpublished material, presentations typically should be structured as 40 minutes for content, 5 minutes for setup, and 15 minutes for Q&A, allowing time for questions throughout.

Creating my presentation was challenging since much of my work was unpublished. I wanted it to be pretty visual forward, though I'm still unsure if I've mastered those skills yet (shoutout to my Facebook Research intern manager in 2020, AhmadShow information for the linked content, who taught me most of what I know). I did end up using Recraft to generate some fun pictures though (Recraft ai for Presentation Graphics). Under usual circumstances, I would connect two relevant published works, but I had to piece together various elements to create a cohesive project. Though it worked out well from my perspective, the interviewers might have different opinions. If you're defending your PhD with your current work, you can use those slides. However, I defended my PhD without my LLM work, so I couldn't use that material.

Other Materials

The only additional document I needed to create was a research proposal for a specific Microsoft position. Unless you're applying for a similar role, you typically won't need one. I didn't submit cover letters with any of my applications due to time constraints.

Scheduling Interviews

I absolutely packed my schedule with multiple interviews. There was no point in taking time to prepare since I wasn't sure what to prepare for. I should have reached out to people asking what I should focus on, but based on what I said above and given that the job openings are all over the place, everyone would have had different experiences anyway. I'll discuss how I encountered varying interview processes even within the same company. I dove in headfirst, relying on my work experience and hoping it would carry me through. I did practice LeetCode and went through some other preparation materials, which I'll discuss later. Regarding scheduling, I tried to pack everything as closely as possible. I think for 12 weeks, I interviewed almost 6 hours a day over weekdays. Recruiters usually request dates for the next two weeks. It's easier to schedule interviews further ahead rather than rushing them, which is something to keep in mind, if you are on a tight deadline, like I (kinda) was.

My October meeting calendar shows various one-hour events. This represents how my calendar looked during the first 12 weeks of job searching (except for Thanksgiving week).
My October meeting calendar shows various one-hour events. This represents how my calendar looked during the first 12 weeks of job searching (except for Thanksgiving week).

Industry Information

Skip this if you already know it. I knew bits and pieces but learned a lot through the process, so I’m sharing for anyone in the same boat. I won’t detail every company but will highlight some standouts, both good and bad (the bad ones will remain unnamed for obvious reasons). This is about the process, not whether I got responses, rejections, or offers. Since interview structure themselves aren’t under NDA, I’ll share general insights without sharing specific questions.

Disclaimer

I’m not a big-name researcher or someone with high-profile papers, so my process was likely different from those who possess those qualities. I also avoided reaching out to people I knew, opting instead to contact random recruiters or respond to hiring posts on LinkedIn and Twitter. The information below might help someone with an average or slightly above-average profile who knows how to target well. It won’t be as useful for those with star status or strong internal referrals. I’m not someone companies fight over, because those folks likely have a very different experience.

Offers vary wildly depending on your background and approach. While I won’t reveal offer details, I’ll share how they compared. Offers often depend on conference papers, and my unpublished work meant my offers might not match what someone with a stronger profile would get. Still, I received multiple offers, none of the jaw-dropping salaries you see online (not even close), but enough to focus on work I genuinely enjoy.

Startups

Interview Process for Startups

Every startup seems to have its own quirky process, often depending on their stage of growth. Some startups insisted on (a) in-person interviews, either single or multi-day, which I opted out of, flying isn’t something I’m keen on for interviews when remote options exist (thank you, post-Covid world), (b) multi-day work partnership which is dicy due to visa situation and requires me to commit a significant time to just one job opportunity (which I am not sure I am a fan of), and (c) references. The hesitation for the latter was more about asking my advisor for non-academic job references, which I avoided because it’s not standard practice.

Most startups I interviewed with had at least 5-6 rounds of interviews beyond the initial recruiter or founder call. These included a general coding round (yes, leetcode is popular for startups too), ML coding, ML fundamentals, and usually a cultural fit interview. I actively skipped startups promoting 6/7-day workweeks or consistent 12-hour workdays.

Now, the tricky part: positions like "AI Research Engineer" or "AI Research Scientist" often come with misleading descriptions. If a posting says "bachelor's + experience," you can sometimes extrapolate that it's an AI engineering or LLM engineering position. But when the listing explicitly asks for a PhD or PhD + papers, you’d assume it’s research-adjacent—yet often it’s not. When you talk to them, you realize they’re looking for someone to productionize existing research or customize solutions for clients, not produce research artifacts. I like product-driven research, but there’s a huge difference between implementing existing research in a codebase and doing meaningful research aimed at product goals. Some companies themselves aren’t clear on what they need, which adds to the frustration. Sometimes, companies know they want to productionize existing research work, not produce it, but they make it sound like they’re doing interesting research work towards a product goal, and that’s the most disappointing scenario.

Case in point: Galileo sent an email that I appreciated for its honesty, even if the position naming was still a bit off (or maybe I need to adjust how I interpret titles across companies).

We hope this email finds you well. We wanted to thank you for taking the time to apply for the Senior ML Research Scientist position at Galileo. We genuinely appreciate your interest in joining our team.We’ve re-aligned our team needs and decided to close the Senior ML Research Scientist position. Instead, we are now hiring for a Senior Applied AI Researcher. This position will be focused on shipping products and running experiments. This person will be exploring new model architectures and implementing ML algorithms from scratch to launch products at scale. If you think this new position could be a fit based on your skills, please review the updated role here.

Specifics from My Startup Interviews

This isn’t the complete list, but just some examples that stood out to me. If any of these companies wants me to remove the short snippet here, please let me know.

The good

  • [Offer] Salient: The process was reasonable and direct. And the company was very clear about the team’s needs and expectations.
  • Resolve AI: Great interviewing experience. The recruiter and team members were awesome. Coding rounds focused on ML design, and conversations were centered around real work.
  • Haize: The work-life balance and company culture isn’t up my alley, but they produce actual research, which is rare.
  • Descript: Only one interview round, but it was focused and specific about work experience and the roadmap.
  • Contextual AI: Their coding round involved implementing a paper with an appropriate well-contained setup. I appreciate rounds like this, even though I didn’t clear it.
  • Sierra AI: Led by one of the authors of OpenAI’s GPT paper, their research team had a good interview pipeline: 1 hour HM, a 45-minute session (30 minutes talk + 15 minutes Q&A), a one-hour research interview, a two-hour ML coding session (training models and running experiments), and one-on-one time with a founder. I enjoyed the initial conversational round but paused the process because the onsite requirement without a virtual option (why?) was a major deterrent.

The not so good

  • A company reached out to me on LinkedIn. After three rounds of interviews, they ghosted me. Another company took two rounds and then ghosted me after I applied online. Five others ghosted after the first round. Another startup ghosted me after the final round.
  • A LinkedIn posting led to a company asking for a timed take-home test using cloud-based AI models. They refused to provide an API key, expecting me to use my own.
  • A company scheduled four rounds of interviews and planned a four-day take-home project (with a two-hour presentation). The last round was labeled as a cultural fit but included questions that didn’t seem relevant. Afterward, they rejected and canceled, citing "not enough experience", information they already had from my resume.
  • In two cases, interviewers clearly decided I wasn’t a fit beforehand and spent the interview explaining why.
  • One company said my "communication style" didn’t align with the team’s needs after what I believed was a professional interaction and rejected me five minutes after the interview. Another involved a hiring manager referring me to a different team. That second team manager interviewed me and rejected me within five minutes of the interview ending, without feedback.

Referrals at Startups

The easiest way to approach a startup is by reaching out directly to the people posting job openings on LinkedIn or Twitter. Another common route is through contracted recruiters, who might contact you via LinkedIn or post generic listings that often turn out to be for seed or stealth startups.

Offers and Work Policies at Startups

Most startups are based in New York or SF (obviously) and tend not to offer remote positions. Compensation usually ranges from $150k–$250k base with 0.2%–0.5% equity grants. Because these roles are concentrated in high-cost-of-living areas like the Bay Area and New York, state and city taxes significantly impact net income compared to where I’m currently based. Most startups provide healthcare, some include 401k matches (but not all), and "unlimited PTO" is often touted, though given the culture, it feels questionable. Relocation packages vary; some offer assistance while others don’t.

Unicorns

I interviewed with three unicorns through the process: Anthropic (back in April 2024), OpenAI, and Scale. I interviewed with Figma in Fall 2023 but didn't make it through. Besides that, I haven't really interviewed with any other unicorn startups.

Interview Process at Unicorns

Anthropic had me go through 3 OOP based coding rounds, followed by a virtual onsite with nearly 7 rounds, including LLM-related coding, ML basics, discussions, and culture fit. Honestly, I really liked the process despite not clearing it. The questions were fair, and they didn’t push me into areas I wasn’t familiar with. Overall, I’d recommend their process. At OpenAI, I interviewed for the RS/RE position. I was surprised to start with math/LLM coding instead of a general coding round. After rejection, they referred me to an MLE position (which would have been in SF), but I chose not to continue. Continuing would’ve meant another filter round and 4–5 more virtual onsite rounds for either position. At Scale, I completed a preliminary interview and two subsequent rounds, with a final round planned if I had cleared the earlier ones. All three rounds were excellently conducted, and the interviewers were attentive and engaged. Surprisingly, none of the coding rounds at any of the unicorn companies were LeetCode-based, and most of them allowed me to look up information (though not using LLMs). For OpenAI, you can have multiple interview processes running in parallel. At Anthropic, all the teams you're being considered for are combined into one large final interview set, which explains why my Anthropic interviews were so numerous.

Specifics from My Unicorn Interviews

The good

  • The interviewers for each of these companies were pretty great. Anthropic’s rounds felt the most relevant.
  • I liked how OpenAI tried to match me with other positions.
  • I really appreciated the effort the Scale AI interviewer made during my ML coding round.

The not so good

  • Anthropic’s process includes a lot of interviews. I interviewed with them back in May, and while the interviews were good, there were just too many of them.
  • At Scale, I had to follow up with the external recruiter multiple times because they didn’t update me for 2–3 weeks after my second-to-last interview stage.
  • At OpenAI, they were adamant to be based in SF, even though they’ve opened a Seattle office. They were upfront about this though, so I don’t blame them.

Referrals at Unicorns

I applied to Anthropic and OpenAI through their website, ensuring I answered each question thoroughly. For Scale, I connected via an external recruiter. All three companies asked if I had a referral or knew someone internally, which can significantly help your chances.

Offers and Work Policies at Unicorns

I didn’t get offers from these three, so I can’t provide exact numbers, but you can find their compensation ranges online. While Anthropic and Scale do have positions available in Seattle, OpenAI seemed to mostly be hiring in SF. Most of them do have 401k match and healthcare benefits. Unlimited PTO is often listed, but I doubt many people take full advantage of it. Some companies offer parental leave and planning assistance, but these benefits vary widely.

Established Companies, aka, Big Tech

I interviewed with several tech companies, including Meta (LLama team), Amazon (Alexa LLM and AdsShow information for the linked content [the latter wasn’t by choice, more details below]), Apple (across four teams in AIML that also included a contractual position), Google (Gemini), Tencent, ServiceNow, Microsoft (Bing, Office and two MSR teams), Paypal, Tiktok (back in July 2024) and Netflix (Content & Studio) [stopped Netflix process due to time constraints]. I did not pursue opportunities with Adobe, Huawei, LG, Samsung, Bloomberg or Sony, just for the lack of time, or the lack of intent. These do have great ML/LLM teams if you are interested.

Interview Process at Big Tech

So, buckle up for a ride. Each of these companies has a very different process, even amongst students, and they put you through it. First things first: which companies let you interview multiple times, which have a cap, and so on? For Google, Meta, Amazon, PayPal, and Tencent, you can only go through one interview loop. With Apple, you can go through multiple interview loops concurrently, but you will only be able to discuss offers with one of them. With Amazon, if you want to interview with an extra team, they'll try to add an additional interview to your existing interview loop. For Microsoft, you can keep interviewing for multiple teams as well as apply to multiple positions. For Meta, you interview for one team, but you can be considered for another team later in the process after your interview packet has been prepared. I think this information is important to know for structuring your interviews.

The last thing to consider is scheduling. Every company operates at its own pace, and on average, it took around 1.5-2.5 months for a company to guide me through their process, especially during the holiday season and NeurIPS week. You'll want to plan your interviews strategically so that you can complete them all around the same time.

Now that you have this information, let's talk about what the interviews encompass. You will need to get the data structures and algorithms coding, aka, leetcode done. There’s really no way around it. All companies ask for it, including startups. You’ll just need to get it done. I’ve put all the resources in LLM (ML) Job Interviews - Resources , but briefly, I went through all the 150 Neetcode questions and all of the questions I was encountering in the interview process because there were definitely repeated questions. Other than that, they involve presentations, ML system design, LLM research design, LLM system design, leetcode coding, ML coding from scratch, ML breadth, LLM depth, and behavioral rounds.

The rest of the section describes my interview process which is pretty long, so here is a tl;dr (generated using GPT4o) if you do not want to read it all.

Expand to read tl;dr and then skip to next section

Meta: Interviewed for unspecified research roles via referral. Process: hiring manager chat, presentation, 3 ML design rounds (area-specific & LLM-focused), coding (2 Leetcode), and behavioral.

Amazon: Filtering discussion, coding, presentation, 6 rounds covering ML design, breadth, depth, LLMs, and system design. No ML-specific coding.

Apple: Team 3: Two filtering rounds (hiring manager & ML coding), then 4 on-site rounds (behavioral, ML knowledge, ML coding, data structures). Team 1: 12 rounds, including recruiter screen, hiring manager chat, ML-focused coding/design, a presentation, and leadership discussions. Team appealing but no Seattle option.

Google: Skipped filtering, unexpected personality questionnaire, presentation, 5 rounds (2 Leetcode, 2 research, 1 behavioral).

Tencent: Filtering, presentation, 6 one-on-ones covering breadth, research depth, math/stats, and Leetcode.

Microsoft: Team 1: Filtering, 5 rounds (3 with Leetcode). Team 2: Hiring manager + 4 ML-focused rounds (1 coding). MSR AI (Team 2): AI Frontiers involves a prototype/demo (screening + 5 rounds).

PayPal: Two filtering rounds, then 3 (coding, ML discussion, behavioral).

Netflix: Hiring manager round completed; next - didn’t continue: filtering + 4 rounds (coding, ML coding, ML breadth/depth, behavioral).

Now you can skip to next section.

For Meta [Offer] , I was interviewing for research scientist and research engineering positions, they didn’t know, and I didn’t know, because it was a direct referral to the system, hence there was no specific job title. The process involved me talking to the hiring manager and then giving a presentation. This was followed by three machine learning design rounds, one specific to my area, two focused on general LLM use cases, a general coding round with two Leetcode questions, and a behavioral round. The team I interviewed for filled their headcount before a decision was made, so my recruiter did put in effort to match me to another very relevant team in the same organization.

For Amazon [Offer], I did one filtering round, which was a discussion, and then a coding interview. After that, I had a presentation and six rounds, including ML design. Each round had some coding, though not ML coding. They covered ML breadth, ML depth, LLMs, and system design.

In Apple, for Team 1 [Offer], I went through a total of 12 rounds. Yes, you read that right - 12. The first round was a recruiter screen, followed by a hiring manager screen, another filtering round with ML breadth and ML coding, a presentation, and five rounds of with ML depth, ML breadth, general coding, ML coding, and system design. I thought that was the end of it, but apparently not. After that, I did a conversational round with the hiring manager again, then with the manager’s manager, a specialized LLM person round, and a round with the director of the Proactive Intelligence team. I really liked this team and wished they allowed me to work from Seattle. They wouldn’t have allowed much publishing, but they’re working on real consumer-oriented goals, which I’m always a fan of. 

For the Apple Team 2, I did one filtering round, which was purely Leetcode. I learned from my mistakes in this one and they didn’t move forward. For another team (Team 3) in Seattle, referred to by my recruiter for the second team, there were two filtering rounds: one with the hiring manager and one with someone from the team. The first was just a conversation, and the second had some ML coding. This was followed by four on-site rounds covering behavioral questions, general ML knowledge, ML coding, and data structures. Then there was a contractual position where I had four one-hour conversations, mostly research-related, with one round including some ML coding.

For Google, because of the help and the timelines I had, they skipped my filtering round. However, they made me do a personality questionnaire, which was unexpected. Beyond that, I did one presentation and five rounds: two leetcode coding, two research interviews, and one behavioral (no ML coding involved).

For Tencent, I did one filtering round, one presentation, and then had six one on ones with different members of the team, each of whom asked from a selection of general breadth, research depth, math and stat and Leetcode program questions.

For Microsoft Team 1, I did one filtering round with the hiring manager, followed by five general rounds, three of which involved Leetcode coding. For Microsoft Team 2, there was one round with the hiring manager and then four rounds mostly surrounding ML, with one of them being coding. For MSR AI Team 2, I completed the hiring manager round, and then an interview loop with 5 rounds (including a presentation, one OOP coding and 3 ML/LLM research interviews), which didn’t end up with an offer. I do think I performed well here, so I was disappointed with the result. They had a show a prototype or demo in screening round, which I haven’t encountered before. For MSR AI Team 1, I completed hiring manager round, but was rejected for further rounds after 2 months.

For PayPal [Offer], I did two filtering rounds and then three rounds: one coding, one ML discussion, and one behavioral. For Tiktok, I did one recruiter conversation, two coding + general ML rounds and then one final hiring manager ML/System design round, which I didn’t clear. For Netflix, I’ve only done the hiring manager round so far, but it seems like there will be another filtering round and then four on-site rounds (coding, ML coding, ML breadth, ML depth and behavioral) to complete the process.

Specifics from My Big Tech Interviews

The good

  • Besides some irrelevant and unnecessarily difficult LeetCode questions, most of the interview rounds were good, with relevant questions, and the interviewers made me feel comfortable.
  • There was no hazing involved in any of the interviews. Some interviewers were upfront, saying "I'll keep asking you probing questions until you cannot answer them. This is not a reflection of you as a candidate, just the way I interview," which I really appreciated.
  • Almost everyone I interviewed with had read through my resume or reviewed some of my work, which made the interview process much friendlier. Honestly, all big tech interviews were pleasant - the interviewers were well-informed, asked questions about my expertise, and aimed to make me feel comfortable. The same cannot be said for the startups.
  • Microsoft Team 2 and MSR AI Team 2 interviews were conducted well, and the MSR team focussed on my areas of strength which is always appreciated.

The not so good

  • I experienced ghosting from three positions - one before starting the process and twice after completing six rounds of virtual onsite interviews.
  • Twelve interview rounds seemed excessive, even for a great company and team with impactful work.
  • The offers I received had short (in my opinion) expiration windows of seven days, requiring me to negotiate extensions to make informed decisions.
  • Google rescheduled my interviews twice, while Microsoft Team 1 shifted me between positions mid-interview process and rearranged the final three virtual interviews during the onsite day.
  • At Amazon, I initially interviewed for an LLM and emotion-focused team, but after the screening round, they silently transferred me to a sponsored ads A/B testing ML team, leading to irrelevant questions throughout the virtual onsite process.

Referrals at Big Tech

I applied to Meta originally around 8 months back without a referral. Even though I got in touch with recruiters, it led nowhere. Then I reached out to someone I knew who had worked on a paper I had used in my research. I had interviewed with them right out of my PhD and had to pause the process because I took my previous job. I reached out to check if they were still hiring, and apparently that person had now shifted to Meta, which is how I got my interview scheduled there. I eventually also ended up asking for an employee referral, but this was when the process was already in motion.

With Amazon, I interviewed back in September for a very relevant team, but in the middle of the process, without letting me know, they completely changed my team. While Amazon usually has one interview loop, they made an exception for me when I reached out to a recruiter. I was very upfront about what had happened and how they shifted me to a non-LLM A/B testing team, which I didn't know anything about. They put me through the whole interview loop again. I also had an employee referral for this, but I don't know if it helped. However, it did help me convince them to try again, which is usually an exception.

With Apple, I got two referrals for around four positions but didn't hear back from any of those. Instead, I heard back from positions where I had no referrals. The AIML measurement team actually called me after I got rejected from the search science team because the recruiter referred me. For the contractual position, I reached out to the person on LinkedIn. The team is amazing, but one thing to note about contract positions is that even though they can find consultancies that sponsor H-1B and later green card, I expected the compensation to be much higher given the lack of RSUs, but that isn't the case, so usually it isn't a good deal.

I applied to three Google positions with an employee referral but didn't hear back. Then I got in touch with someone who was a previous lab member of my advisor who now worked on the Gemini team, and they helped me through the process.

For Microsoft, I applied to many positions with an employee referral (including through someone talking about me to the hiring manager) but heard back randomly from different teams, one of whose members I contacted on Twitter. For Netflix, I applied online, didn't hear back, then asked someone for a referral. They sent me a link, and although the referral wouldn't be attached later, I heard back from them.

For Tencent, I reached out to someone on Twitter and emailed someone else, and that's how that process began. With ServiceNow, I reached out to someone on LinkedIn and also applied just applied online to another, and I heard back in both cases, which was great. For Paypal, I applied online and was reached out to by a recruiter.

Offers and Work Policies at Big Tech

Most of these teams and companies have locations in the Seattle area, as well as in SF and New York. One assumption I made early on was that if a company had a Seattle office, they’d let me work from there instead of requiring remote work. Unfortunately, that wasn’t the case, and it’s probably an assumption I shouldn’t have made.

In terms of compensation, averaged over 4 years including bonuses and refreshers, I received offers ranging from $350k to $430k across these companies. This includes RSUs, possible target bonuses, refresher stocks, and averaged sign-on bonuses, but excludes relocation. The only teams outside Seattle where I reached the offer stage were PayPal and Apple's Proactive Intelligence, and Paypal didn't offered relocation packages. Interestingly, I initially thought Meta paid the best and Apple had much lower pay, but that wasn’t true for me. Apple leveled me higher and offered better compensation than Meta and Amazon, partly because they counted 12 months of my internship as one year of experience, unlike the others.

Microsoft and Apple also have Employee Stock Purchase Programs on top of their RSUs, and the RSUs I received from Apple were comparable to other companies. Amazon doesn’t seem to do bonuses or refreshes unless their stock dips below your target salary, relying instead on sign-on bonuses for the first two years. Meta’s stocks vest early with no cliff, unlike other companies that have a cliff.

Negotiation-wise, the only way I managed to compare offers was by being upfront and specific about numbers from other companies, as I didn’t want to bring outdated information from 2021 when the job market was very different. I wasn’t a hotshot, but I stayed clear about what I knew and didn’t know.

As a side note, for hybrid work: Meta and Apple require 3 days a week, while Amazon mandates 5 days unless you get explicit special permission from your manager (though how that’s implemented isn’t clear). Netflix and some Microsoft teams offer remote work options, which might be worth considering if flexibility is important to you.

Personally, I prioritize health insurance and 401k matches over other benefits. While I don't have all the specifics about what each company offers, I was surprised to learn that even Meta, known for its excellent healthcare program, doesn't always provide $0 premiums for employees. Many of their plans involve coinsurance, which can add up quickly. I found that a bit unexpected, and I'm still figuring out how I feel about it. I thought it was worth mentioning. Other benefits you might be interested in include pet insurance, fertility programs, and whether the company offers support for these.

Hindsight and Tidbits

I’ll keep adding to this if I recall anything new, but here is some information that you might find to be helpful.

  • Be open to reaching out to people, even if your work is still in progress or unpublished. I used my blog posts to share my work with others, and I found that reaching out is generally helpful since people are usually quite kind.
  • I wish I had made my presentation 40 minutes instead of 45. Setting up and introductions took time, and I ended up rushing through the content. It took me three tries to get my presentation completely right by adding PCC values, data points, and workflow diagrams.
  • Schedule interviews with the expectation of being able to handle multiple offers, in case you end up receiving multiple kinda exploding offers close together, as this helps with negotiations and reduces the need to ask for deadline extensions. I was always upfront with recruiters about my timeline and current processes, but this transparency could become problematic if they couldn't schedule interviews in time due to the holiday season.
  • I was direct about my experience, being completely honest about working with continual fine-tuned models of size 0.5-1B and primarily performing LoRA-based fine-tuning using peft/bitsandbytes/axolotl. I clarified that I haven't pretrained models and lack experience with model or data parallelism. I explicitly mentioned that most of my work has been SFT, with limited experimentation in RLHF/RLAIF, and that I'm not well-versed in state space models. While this honesty might have cost me some positions, attempting to navigate through unfamiliar questions wouldn't have been beneficial.
    • Some interviewers were helpful in guiding the discussion. For instance, when asked about constrained decoding at Apple, I was upfront about my limited knowledge, explaining that I understood it involved structured JSON outputs and state machine representations verifiable by regex (as implemented in outlines for CFG), but hadn't implemented them personally.
    • I was upfront about design decisions and visible research outcomes that were influenced by cost, model size, and training constraints. This transparency is important since Google might have observed different results compared to my findings with fine-tuning Qwen2.5-0.5B.
  • It's perfectly fine to have preferences if you remain adaptable. I'm upfront about not using Langchain/LlamaIndex in my RAG and agent work, despite having experience with it. I mentioned that the difficulty in modifying specific components when needed led me to use solution A instead.
  • I approach interviews conversationally and stay true to my confidence level. I have a habit of saying "right?" when seeking validation, and I openly express "I hope I'm on the right track" when uncertain. When I get stuck on simple problems but solve them after receiving hints, I acknowledge it by saying, "Oh, I apologize for missing this direction and needing a hint." I then provide any additional relevant information to complete my answer. I also realized that I say “in general” a lot. After a certain number of interviews, I also ended up saying “I think I had one final question” even when I had no final question.
  • Learn the exact code for binary search, graph components, and coding attention blocks, as you will need to use them throughout the process.
  • I often struggle to decide between traditional and modern methods for design interviews, such as choosing between older recommendation systems versus RAG-based relevance scores, or BERT for classification versus generative model structured outputs. Through this process, I learned that there are two options to consider. After summarizing both, I would suggest that given situation X, we should probably pursue option A. What are your thoughts? Additionally, I've become more comfortable spending 10 minutes asking clarification questions during design interviews, as I used to be a nervous interviewer who jumped to conclusions too quickly.
  • I made sure to say out loud that I was writing things down or looking things up helped me gain confidence. The one time I didn't do this was when I was so nervous that I blanked out on the solution for 5 minutes. Although the interviewer tried simplifying the question, I eventually answered the original, non-simplified version after my period of silence.
  • When people ask about developments in a specific area, don't focus solely on the latest advancements. For example, if someone asks about improving transformer efficiency, don't immediately jump to discussing Longformer, subquadratic attention, or state space models. Instead, start with the basics, such as grouped query attention, and gradually progress through the complete answer.
  • Prepare STAR (Situation, Task, Action, Result) answers with specific phrases to guide your responses. I used "For some context" for the situation, "we/I needed to" for the task, "I ended up doing/having" for the action, and "with that, it resulted in" for the result. This helped me stay organized. Keep in mind that behavioral interviews vary by company; for example, Meta uses a 10-turn conversational format rather than a traditional 3-round question approach, which threw me off.
  • I tend to be a nervous talker, and even after nearly 400 interviews, I still struggle with giving concise answers. I'm gradually learning to be more brief and avoid providing excessive background information, I recognize that I need to be more direct in my responses. But I still rambled a lot. A LOT. Even in my last interview, I was over-explaining things, and was cluttered with my answers. I wish I could develop a star like system to approach these answers too (and I am working on it).
  • I remembered all the questions asked during interviews, wrote them down, and practiced them before my next round. As mentioned, I learned on the job, and this was my approach to learning. When I didn't know an answer, I would look it up or ask an LLM after the interview, hide it under a toggle, mark it, and later check if I remembered it. I kept everything organized in Notion pages without using Anki or any complicated system.
  • On that note, create labels in your Gmail and mark them with "Interview" and "Interview/Scheduling" to keep track of the process. I didn't do this and regret it, as my inbox is now basically unsearchable.
  • I spend a lot of time online, which helps me stay familiar with current research. When I skim something, I openly acknowledge that I just skimmed it and share what I've learned. If I have more details, I bring them up when asked. I always mention when my ideas are taken from or inspired by papers I've recently read. I see no benefit in claiming others' work as my own.
  • You'll notice that I frequently mention having a blog post on this page, which has been uniquely helpful for me. I honestly recommend getting a website (What is the cheapest and easiest way to create AND maintain a personal academic website?) and maintaining an updated Google Scholar page. You don't even need to write blog posts; just give people a quick reference point where they can learn about you in under 2 minutes.
  • Close all video tabs (not just pause them) before joining the interview. I've accidentally hit the play button instead of the asterisk more times than I'd like, which resulted in background noise from Stardew Valley or Mario Party gameplay, and me scrambling to figure out which tab it belonged to.

Finally

Once you have the interviews scheduled, not everything is in your control, and luck plays a role (as with my Meta second team match), and the timeline and relocation aspects can be challenging, but your preparation can take you far enough. How to prepare varies for each person, but I write about my preparation methods in LLM (ML) Job Interviews - Resources.

Elsewhere on The Internet

This is an open invitation to anyone who wants to share their process. If you provide the information, I'll organize and add it here. I hope it can help others who, like me, may hesitate to ask for help. Having readily available public information can make a significant difference. If you'd like to share your experience and be credited, please reach out through my blog, direct message, or your preferred method of communication. I wish I had access to such resources instead of struggling through the process due to my hesitations, insecurities, and anxieties.


  • Kyunghyun talks about hiring expectation and experience, which heavily resonated with me:
    from their perspective, the job market suddenly asks them to show their credentials in terms of innovating in a much narrower domain of large-scale language models and their variants and to work on directly contributing to these products built on top of these large-scale models. there are much fewer opportunities if they do not want to work on productizing large-scale language models, and these positions are disappearing quickly.

    One benefit I had was wanting to work with LLMs, but areas I enjoy such as post-training/evaluation and knowledge work, are often found in product implementation teams.

    • Peter Sobot comments about that feeling correctly
      Kyunghyun is correct in saying that "the current crop of PhD students [...] are being left out" of the modern AI hiring pipeline, but it's even worse than that.
      Those who do get hired are often left unsatisfied that they're expected to build products instead of doing research.
    • Chris Olah on the other hand offers a different perspective
      So if you’re an academic considering industry research roles, I’d offer the following questions and frame:

      (1) Would you enjoy working in the team science / focused bet model?
      (2) What bets would you be excited to be a part of?

  • Gowthami talks about return offers here
    There are a lot more internships than actual RS roles in these companies. So if you are in final year, try to optimize for company that actually gives you a job later, not someone that’ll make you interview from scratch along with other candidates.
  • Some experiences from Nathan Lambert’s job search process, right after grad school in 2022
    A large undercurrent of this post is how helped I am by having the @berkeley.edu email address. My job search would've been very different without this. I think there is an optimum for every candidate on the spectrum of how many emails they should send versus how likely a response is. If you don't expect a response, you probably should spend more time building each on up (by doing more background, building, or networking).

    AI is certainly a community driven by prestige.

    and for a job switch in 2023

    Structurally, the places where open research and science are the priorities is exceedingly rare. Even if someone joins as an academically minded research scientist, realities will always pull people into the business needs (especially at startups).
  • Some perspective about MLE interviewing and deciding on a career path from Yuan Meng here and here
    If your resume is strong enough, you may get a date or two (e.g., recruiter call/HM chat/phone screen), but for the company to say “yes” (the offer), the expertise you bring to the table has to fit their roadmap and the person that you are must fit the company/team culture — otherwise, the marriage will be painful (and short).
    Everyone dreams of working for a company that offers competitive compensation, rapid career growth, excellent work-life balance, high job security, and hopefully visa sponsorship. A company meeting all 6 criteria may exist, but only during 2021-2022 tech boom or in your dreams. If there is such a place right now, nobody wants to leave, so no headcount can be created 😅. Something’s gotta give.
  • Abhradeep Guha discusses the differences between industry and faculty hiring from an interviewer's perspective here.
    Research: The hiring team wants to see the depth of the candidate’s research and not the breadth. The candidate will be mostly talking to domain experts from very aligned areas of the candidate. The job talk is of a very different flavor than academic one. The best industry job talk is the one that focuses on one problem and goes arbitrarily deep into it. Most industry labs interviews nowadays have a coding component (LeetCode type or otherwise). If the candidate fails in those, the chances of getting an offer is fairly low, even if the candidate is stellar researchwise. The reason is labs typically want folks who are generally strong, and can pivot to different areas as needed, and basic general purpose skills are mandatory requirements.