Hacker News

Becoming a Research Engineer at a Big LLM Lab

7974 Words, 39 Minutes Becoming a Research Engineer at a Big LLM Lab -- 18 Months of Strategic Career Development

Note: This is also published on Substack (where you can give me your mail if you want emails whenever I publish something).

A couple of days ago, I signed as a research engineer with Mistral, one of the few ML foundation model labs with more than a billion-dollar funding. My excitement on Twitter found quite some resonance - partly in the form of questions for advice.

Getting here was not an accident. I have strategically worked towards this outcome for an extended period, and I have a few things to share about what worked for me. In a sense, this blog post is a sequel to How to become an ML Engineer in 5 to 7 steps, where I covered my self-taught path toward becoming a machine learning engineer from a non-CS (though STEM) background. Here, I outline how I worked towards what I hope will be a career-defining role.

I started this work after working in my first ML position for about a year. This is an account of my personal experiences, which I based on advice I got from friends and found online. I don’t claim it’s original, and my sample is n=1, so cherry-pick what resonates for you. I still hope some find it useful.

Now, without further ado, what follows is a discussion of:

  • Tactic and Strategy
  • My Personal Timeline
  • Defining the Goal
  • The Application Playbook
  • Networks
  • Career Momentum
  • Application Process Touch Points
  • The Mindgame
  • Conclusion

Tactic and Strategy

To improve my chances of getting a career inflecting role, I think there are two different kinds of useful actions you can take: strategic and tactical ones. Tactical actions are relatively low effort, but with a high return in your specific situation. This may be reading up on the latest news on the company you are interviewing with, doing a couple of LeetCode problems to refresh muscle memory, doing mock interviews, or polishing your CV.

Strategic actions are high effort, high return actions that may even seem fruitless in the specific moment, but in aggregate and compounding, give you a substantial advantage. Think about learning a new technology deeply by building a substantial portfolio project, having significant tenure at a reputable organization, building and maintaining a network, or building a personal brand by talking about your work. In the long run, it’s strategy that makes a successful career. But in each moment, there is often significant value in tactical work. Being prepared makes a good impression, and failing to get career-defining opportunities just because LeetCode is annoying is short-sighted.

Most advice for the application playbook and company touch points is tactical. However, to get interviews, networking, strategic skill development, and communication are helpful. This is what I cover in the networking and career momentum sections.

Being clear about goals is necessary to develop an effective strategy and to get into situations where tactics even matter. If that sounds rather abstract, the discussion of my personal timeline may be helpful to illustrate the difference.

My Personal Timeline

In total, landing what I hope will become a career-defining position at Mistral was an 18-month effort. This includes alternating phases of strategic and tactical work.

It was around April 2024 when I decided I wanted to step up in my career. First, I sought out a career discussion with my direct manager. More responsibility or concrete growth trajectories could have been an immediate and relatively low-threshold way to achieve my goal. However, it became clear that there was no short-term or even mid-term way to grow with my responsibilities.

This is when I started to clarify my goals. If I had to change, where to? I was reaching out to friends and used my network to talk to people working in big tech companies, start-ups, scale-ups, FAANG, Big Labs, whatever seemed interesting, and where I could get an introduction. My questions were always similar. How did they like their current position? Do they learn a lot, and what are the growth trajectories? How much work do they have to do? What are the necessary skills, impressive portfolio projects, and what else is necessary to land a similar position?

As a result, I kicked off the first phase of strategic skill development. I invested many hours into LeetCode prep and got a bunch of textbooks to catch up on relevant CS fundamentals; most notably distributed systems, data structures, and algorithms.

It became tactical a couple of months later. I sent my first application in August of 2024 and did pretty well in the process. However, after six rounds and around November, I didn’t make the cut and was quite devastated. While I had planned to send out more applications, refreshing my ML fundamentals, prepping coding interviews, and completing takehomes, all while working full time, kept me so occupied that I did not manage.

I resigned to be able to fully focus on getting that next role. After waiting out my notice period and officially jobless, I got into sending applications full-time in January of 2025. The results were meager. Many positions I was excited about didn’t even invite me for an interview, and in the few interviews I got, I failed because I was nervous and made a couple of easily avoidable mistakes. Did I just get lucky in making it that far in my first process?

Either way, I had to change my process and decided to get strategic once again. Now full-time, I could make a lot more progress in upskilling and tackle much more ambitious portfolio projects. That’s when I decided to join Recurse Center - a cohort-based, but self-directed programming retreat. Essentially, it gave me the freedom and space to follow my upskilling, but provided me with an awesome group of people doing the same; it gave me an entry on my CV where I could put all these projects, and it was in New York, which sounded like an adventure (they also offer remote). Most importantly, though, it was three months long. That is not a timeframe I would have been comfortable committing to without any structure out of fear of being seen as a slacker. However, you can achieve quite a lot in three months of dedicated time focusing on getting better.

So I moved to New York and spent until mid-May 2025 learning Rust, contributing 15 pull requests to highly scrutinized open source codebases (ruff and uv), and writing a research paper with my master’s thesis supervisor at the AI Safety Institute of the German Aerospace Center (my research wasn’t ML related, but the institute name certainly helped to make it more relevant).

Back at home, around June 2025, I got tactical and focused all my efforts on applying. I had about 60 touchpoints with 40 different companies, got a verbal offer with Mistral (alongside a couple others) mid-August, and finally signed in early September.

It’s easy to put a red thread through this process in the retrospective. Rest assured, however, that at the moment it was a messy process with lots of doubt and insecurities on whether I would succeed or quit my job to become a professional hobbyist. What helped me mentally and in devising a strategy was having a specific goal.

Defining the Goal

Changing a job is a personal project. You have to own the whole process, need to make judgment calls on where to allocate your work, and whether to accept or decline a specific opportunity. In that respect, job seeking is great. Lack of structure gives you a lot of room for agency, and your decisions have great leverage on your future career. But the same lack of structure that makes the whole process difficult, tedious, and frankly unpleasant to navigate.

This navigation is a lot easier when you know where you are going. Knowing your goals is helpful for both motivation and reminding yourself why you chose to do this when things get tough, as well as to be able to effectively allocate your resources or even say no and walk away when an opportunity is too much of a compromise.

Setting your goals is deeply personal, and I can’t do this goal-setting work for you. You need to be honest about what drives you and realistic with what you can reasonably achieve. But I can give you my own goals as an example.

I wanted to find:

  • a career inflecting role,
  • where I would build rare and valuable technical (software and ML engineering) skills,
  • doing work I enjoy,
  • while having ownership and impact, but also
  • support from senior peers so I can
  • grow into technical leadership, but
  • stay an individual contributor for the foreseeable future while living in
  • reasonable proximity to the people I care about in a place that I would enjoy living in.

To me, these criteria satisfy two important constraints. They are general enough that there are a reasonable number of roles out there that could be a fit; I’d have more shots on goal. But they are also concrete enough that I can rule out and say no to opportunities that are too much of a compromise.

The goal of working at a frontier Model lab with billion-dollar-plus funding effectively limits your search to maybe 10 companies, all of which are highly competitive to get into. Just searching for a job that pays well would have been too broad. I could have even tried to switch into Consulting or VC and still hit the mark.

How I wrote my goals helped me to devise a profile of the ideal role. Getting ownership and impact early, having room for growth, and being forced to stay an IC are things that are very common at start-ups. Access to senior peers, the CV pretty privilege of a well-known brand, and the need for and resources to train niche engineering skills more in established companies. Scale-ups seem like a good middle point that ticks a lot of these boxes. Though there are definitely start-ups or larger corporates that do, too.

These criteria not only help you to find places to apply to, they also gave me the confidence to decline roles that didn’t feel right, for example because I would be a small cog in a big bureaucratic machine, or because the start-up was so early that I would have had to optimize for churning out MVPs to test product hypotheses as opposed to building high performant low level systems.

I found jobsearch.dev a helpful resource to work through and come up with these criteria (and generally get into the right headspace for applications).

The Application Playbook

With a goal defined, it’s time to get the ball rolling. I was introduced to this playbook right at the beginning of my journey by a friend working at a large Silicon Valley company, and promptly proceeded not to follow it for about a year. But when I finally did apply it, starting May 2025, with a polished portfolio and extensive LeetCode muscle memory, the results spoke for themselves.

I used my predefined goal to compile a long list of positions and companies of interest. For my top choices, I tried to get in touch with people working there (or followed up with people I got to know in my exploration phase). The goal was to gather insider information on the application processes or sometimes even a referral. This worked best with network contacts, but I had some luck with cold outreach on Twitter or LinkedIn.

For cold outreach, I was writing something along the lines of:

“I’m Max and really excited about xyz and strongly considering applying to role abc. Is there anything you can share to help me make the best possible application …”

I didn’t apply to all companies right away and instead proceeded in batches. Each batch contained one of my (referred) top choices as well as other companies I was less excited about, but would still consider working at. Proceeding through parallel processes in lockstep made coordination a lot easier. More importantly, I could schedule the lower-stakes interviews before the ones with my top choice. This way, you get some routine and do all the dumb first-time mistakes in a setting where the damage is reasonable.

I did not apply to companies where I was sure I wouldn’t want to work. There needs to be some stake in the process, and I don’t want to waste their time. While interviewing, some of these second-choice companies became first-choice ones throughout the process.

For each batch, it was the goal to make it to the offer stage with multiple companies at the same time. Concrete offers gave a lot of signal to me. Which feels better and why? Additionally, multiple offers provide leverage in negotiations. Is there anything a company can do to make its package more attractive? Team assignment, signing bonus, remote work? I knew an ask was reasonable because I was offered the same by another place.

The reason that I was having only one of my top choices in a batch is that I did feel some obligation to the referee. If I made it to an offer stage and the offer was competitive, I should take it. For the others, I wrote them after I had accepted my offer, thanked them for their advice that made getting this role possible, and promised to pay it forward (of which writing this blog post is a part).

To reiterate, the essence of the playbook is:

  1. Batch your applications so you can use lower-stakes ones as training grounds.
  2. Use your network to get referrals and insights into the interview process.
  3. Be mindful of your referee’s time and do your best to land the role they are referring you for.

Networks

I’ve touched upon the importance of a professional network in the last section when talking about referrals and information about a company and its recruiting process. While friends in high places are surely useful, the main power of networks lies in the strength of weak ties. One generally has more acquaintances than close friends, and they know people far outside one’s own social circles. I still call these “acquaintances” friends, because to me, that is what they are. Personally, any “Networking” worked better when I took it as meeting interesting people, being helpful, and making [the rest of the article continues with "Career Momentum", "Application Process Touch Points", "The Mindgame", "Conclusion" - but the raw text cuts off at "making". The user provided only up to that point. So we stop here.]

Note: The raw text ends abruptly after "making". The article likely continues, but the user only gave the text up to that point. We preserve exactly what was provided.

Comments

No comments yet. Start the discussion.