Pangram verdict · v3.3
We believe that this document is fully human-written
AI likelihood · overall
HumanArticle text · 1,611 words · 4 segments analyzed
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 Referrals CV Initial Screen Takehomes Online Assessment Programming Interview System Design Interview Culture Fit Quiz Interview Hiring Manager / CTO Interview Reference Check 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 institue 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.