Introduction
Summer 2025, I was deep in the internship hunt, applying to every big tech company (I focused on the main ones like Amazon, Microsoft, Google, Meta). I was convinced I had a shot, until the rejections started pouring in. FAANGS didn’t want me. My CV was getting filtered out by ATS systems, my LeetCode skills were probably not good enough, and I was starting to question if I would ever get anything decent.
I am writing this as a future Software Engineer Intern at Mistral AI, one of the best AI companies in Europe. How did I get here? Through a mix of preparation and networking.
1. Building a CV That Stands Out
I knew my CV had to be sharp. Not just a list of experiences, but something that would make recruiters pause and think, “This guy’s worth a call.” I focused on:
-
CV formulation: I found many sources on the internet that can help people build strong ATS-oriented CVs. In particular, I found this guy Sajaad Khader sharing super interesting advice to get a job/internship in a big tech company. The basics are to display the impact you had in every single bullet point you write on your CV. They ideally have to contain numbers.
-
Personal projects: I had to build projects or take part in events that could help me gain experience. It was about having a nice GitHub. It was about having something interesting to talk about in interviews. I went back to my first-year computer science project: the Sokoban game programmed in C. It was tough. At that time, I was not good at all in low-level programming languages. So I focused on learning or reviewing the basics of computer science in general (data structures, memory management, project architecture, etc.). I tried to reproduce the project and this time finish it. It was worth the time and I was sincerely very happy when I extended the project with a (very simple) UI interface using Streamlit to play the game.
I also took part in a hackathon in June 2025. It was organized by the French technology ministry in order to improve open-source solutions replacing big tech solutions and improve European sovereignty. It was worth the travel to Paris (from Annecy, I took some days off to attend this event as I was doing an internship at Salomon). I strongly networked with experienced software engineers, discovered the intense atmosphere of a hackathon, and learned from every single person I talked with.
Interview Prep: Grinding LeetCode
I will be honest: when doing my first DSA exercise, I hated LeetCode. But I did it anyway.
I started by reviewing Data Structures and Algorithms from a first-year computer science course. It was not easy. Arrays, sets, hashmaps, linked lists, etc. But understanding these data structures is key and really made me understand the advantages and downsides of these different elements. I used AlgoMap to track my progress and make sure I was not missing any key topics. Instead of trying as many exercises as I could, I focused on learning key patterns that would allow me to solve any LeetCode exercise. I also did mock interviews with friends. It helped me stop blanking out when someone asked me to explain my thought process. Solving an easy exercise may be easy, but explaining your thoughts in real time is really difficult and you have to practice to become better at it.
I also practiced behavioral questions. Yes, they are annoying, but they matter a lot. Especially before Amazon interviews, I focused on their Leadership Principles (LP) and prepared a good number of stories that I could adapt to any LP that was asked.
Experience: An Extra Internship to Build My CV
I was about to finish my internship at Salomon at the beginning of summer 2025, and I started planning my August. It was the end of my gap year before going back to school in September. I thought taking holidays to rest was a good idea, but knowing I had ambitions for my end-of-studies internship and what would follow, I thought adding an experience to my CV would be a good idea. So I started to apply for internships. I was interested in getting an international experience. I thought it would be nice to work in English but also to discover how work is done in other countries. I found an internship in Luxembourg (yes, it ss quite familiar to France, but it was actually more English than French). My colleagues were either Belgian or Dutch, which made me practice my English a lot. If you want to know more about this experience click here. I believe this internship helped me find my next internship as during the fit interview this was the experience I talked about. The project I had was very close to some tackled by Mistral AI. It was worth going to Luxembourg.
2. Networking: How I Turned LinkedIn Into a Weapon
I think that I am a good networker. Of course, I am the kind of person who likes writing code alone, but I also like talking to people informally. I have met (and connected) with many people just by randomly starting interactions. To try to get referrals and network, I contacted many people: HR and recruiters who posted job openings, alumni from the University of Limerick (UL) (since big tech companies like Google, Amazon, Microsoft, Netflix, TikTok, and Apple have a massive presence in Ireland, I knew my UL connection could open doors), of course alumni from ISAE-SUPAERO, and even people who simply shared job postings in areas I was interested in, whether they were hiring managers or not.
My approach varied. Sometimes, I would send a simple LinkedIn connection request with a quick note. Other times, I would start a real conversation. I never asked for a job outright. Instead, I would ask about their experience, their role, and eventually, if they would be open to referring me. Those referrals became my golden ticket, helping me going through the ATS filter more than once.
3. Applying to FAANGS: The Brutal Reality
I went all in and applied to every major tech company I was interested in. The result? A mountain of rejections. Most of my applications did not even pass the first 24 hours. It was a bit frustrating, but I refused to give up. I applied around 50 times at Amazon, 30 times at Microsoft, for fewer than 10 online assessments reached. But when I reached them, the LeetCode exercises were just way too difficult. It was a harsh reality check. I was simply not prepared enough. I did not pass, but that failure made me understand that I had to be better.
While I was working on improving my skills, I also started applying to smaller IT and consulting firms in France. I made it through screenings and even did a few live technical interviews. I got offers, but I turned them all down. None of them excited me, and deep down, I knew I was capable of landing something better. So I kept pushing forward, even when it felt like I was getting nowhere.
4. Artefact: The Offer I Almost Took (And Why I Did Not)
Artefact, a well-known international data and AI consulting firm, reached out to me with an offer that, while not perfect, would have been a solid addition to my CV. The interview process was surprisingly smooth compared to the brutal technical challenges I had faced at Amazon. It took about a month, and the technical interviews were almost too easy. I made it clear to HR that I was interested but still wanted to keep my options open and continue my job search. They gave me a deadline to decide, and when I tried to push it back, they simply withdrew the offer. At the time, I thought that I made a mistake, but it was the best thing that could have happened. If I had taken that job, I might never have ended up where I truly wanted to be.
I also had interesting interviews for positions that interested me, but I was either rejected or refused the offer. Some of the companies were: Criteo, Thales, and OVHcloud.
5. Mistral AI: The Dream Opportunity That Almost Slipped Away
Just as I was wrapping up the lengthy recruitment process with Artefact, I received an email that would change everything: I had passed the initial screening for Mistral AI Forward Deployed Engineer Intern position. The interview process that followed was unlike anything I had experienced before. At the end of the process, I received an email letting me know I passed the screening for the Software Engineer Internship position.
5.1 The First Attempt: Forward Deployed Engineer Intern
The process began with what seemed like a straightforward but deceptively challenging code review test. I was given 25 minutes to analyze a nightmare Python file. My task was to identify as many issues as possible within the time limit. I remember staring at the screen as I tried to systematically dissect the code while the clock ticked down. Some issues were obvious, like missing error handling and inefficient loops, but others required deeper analysis of the program’s logic and potential edge cases. When the time was up, I had filled pages with notes and I passed to the next round.
Next came the LLM Quiz, which threw me into concepts I had only briefly encountered in my studies: Transformers, Quantization, Mixture of Experts (MoE), etc.
I had to teach myself these topics from scratch in a few days. The interview itself was a succession of questions that tested not just my understanding, but my ability to think on my feet. I stumbled through some answers, but I must have done enough to pass, because I made it to the third round.
The final interview (of my process, there would have been one more) focused on Function Calling with Mistral’s API, a practical test of my ability to integrate with their systems. I had practiced similar exercises, but the pressure of the live interview made everything feel harder. I remember starting strong, but as the interviewer asked me to explain my reasoning, I found myself struggling to articulate my thought process clearly. I finished the task within the time limit, but I could tell from the interviewer’s reactions that I had not impressed them. A few days later, the rejection email arrived. It stung, but I tried to take it as a learning experience. I was not ready yet, and that was okay.
5.2 The Second Chance: Software Engineer Intern
The very next day after my rejection, I received another email from Mistral explaining I passed the screening for the Software Engineer Internship position. This was the position I originally wanted, the one that aligned perfectly with my background in software development. I thought this was my time to perform well and get selected.
The process for this role was different, starting with a project submission to pass the screening. I sent them Mistral-Chess.
The next round was a live LeetCode interview focusing on arrays, hashmaps, and sets. I managed to solve the problem by proposing optimized solutions. I could feel the momentum shifting in my favor. I passed to the next and last round.
The final round was about fit and experience. We talked about my background and projects, my motivation to join the company, and my other process at Mistral. The interviewer noticed that although my experiences were about software engineering, most of my projects involved Machine Learning/Deep Learning, as this is my major in my final year of studies at ISAE-SUPAERO. She asked if having a position not focused on AI would disappoint me. I was transparent and explained that what I enjoy is building software. Of course, I would love to tackle ML/AI use cases, as I think my profile is very interesting for this. The interviewer agreed. By the end of the conversation, I felt a sense of confidence I had not had in previous interviews. A few days later, the offer arrived: I had finally done it.