From Software Engineering to AI Research or a Tale of 413 "No"
Middle-of-nowhere in Russia, outsourcing and startups, web, conferences. London, Meta, infra, open source. Moscow, Skoltech, a second Master’s, first publications. Back to London, Mistral AI and Revolut, industrial AI research, a permanent feeling of being an idiot, and the thrill of a ton of adventures ahead. Anyway, first things first.
In Previous Episodes
It was 2024. No, 2023. Maybe somewhere in between. I was in my third year working as a big-shot senior software engineer at Meta’s London office. Successfully shuffling JSONs around to keep our mobile devs happy and make app development a tiny bit less painful. After a string of existential struggles (one way or another tied to a divorce and, consequently, a search for new direction in life) I decided to make a big change - get out of web and run into ML. And I needed it yesterday. Into research, no less. They wouldn’t build AGI without me. Or rather, they would. And without me! Disaster!
If you’re curious how I got to London in the first place, check this post.
Studying something so fundamentally different alongside my job didn’t work out. Most likely I just didn’t try hard enough, but setting aside speculations, I had to admit failure. Change something. Well, if I couldn’t study on my own, I needed to find a group. With deadlines and a stick over my head. When the carrot in front of you stops working, it’s time to try a carrot from behind.
After doing the math on London tuition and living costs, I started looking for alternatives. My heart wanted an adventure, my sanity wanted a break. One thing led to another, and I decided to move closer to family and friends: to Moscow. Surprise-surprise, but after London, Moscow feels cheap. On top of that, education there is free.
I applied to every top school there: Yandex’s School of Data Analysis (YSDA), Skoltech, HSE, ITMO. Successfully failed YSDA at the very first stage—missed it by a half-point. Cried for a bit, pulled myself together, and got into Skoltech. I also got an offer from ITMO, but by then I’d already visited Skoltech’s campus and was completely sold. Plus, I’d met some of the other applicants during entrance exams. The place was packed with Olympiad winners, physics prodigies, and super-smart kids. I wasn’t sure how I fit in after 10 years without taking a derivative, but it’s better to be worst among the best, isn’t it?
Skoltech
We didn’t actually start with classes, but with a month-long startup simulator called the Innovation Workshop. They lock the entire incoming class under one roof all day, regardless of major, tell you startup war stories, and subject you to mandatory fun and networking. Everyone met everyone. Even the most terminal introverts couldn’t escape. We did a few one-day workshops, and at the end, a team sprint where we threw together half-working prototypes out of duct tape and prayers.
Then the real studying began. Hard studying. The very first assignment, manually calculating some monstrous gradient, froze me for almost an entire day. There were five such gradients in the homework. And then a couple of proofs. And that was just one course out of three. Yeah, my software engineering background was not going to help much. Oopsie.
I felt sorry for myself for a couple of weeks, then focused on a single thing (attention is all you need indeed!). Skipped most of my current classes except one. Dropped all extra activities except the gym (the barbell is sacred). And… things started coming together.
Next, I added research work in a lab. Again, without trying to do everything everywhere all at once. I came in with a rather vague request - to understand why models are the way they are. My advisor me narrow that down to measuring data complexity and suggested my first research direction. And again, something started working. Not perfectly, but it worked!
How I Failed Every Interview. Well, Almost
Back in the winter after my first semester, life ran over my ego with a stack of rejections for summer internships. I sent around 100 applications to big names in London. Every single one rejected me.
Hoping that it was mostly about location (as you might guess, Moscow nowadays scares off 146% of recruiters) and armed with my first published paper, I went to London to look for my first job on the spot.
The location change worked. I started getting called for interviews. Not very often, but it was already much better than the dead silence of winter.
Unfortunately, my very first interview turned out to be with Isomorphic Labs. And as usual, you always bomb your first interviews. Just like your second and third. That’s how Huawei and the UK’s AI Safety Institute (AISI) slipped past me too. It was terribly frustrating, but by the fourth time I finally figured out where the gaps in my knowledge were and what they actually wanted to hear from me. After studying hard and rolling a 20 on luck, I snatched an internship offer at Mistral AI!
Honestly, I suspect recruiters only talked to me because I had Meta on my CV. And nobody bothered to check that my work at Meta had zero to do with ML. So here’s some privileged-not-so-actionable advice to everyone trying to break into the field — get a big name on your resume. Unexpected, right?
At the internship, alas, I didn’t get to work on model training. They put me on infrastructure for synthetic data generation. On the upside, I met a ton of ridiculously smart people, soaked up the atmosphere of a top industrial lab, and once again realized what a clueless little pigeon I was and how much I still didn’t know. On the downside… honestly, there wasn’t one! Sure, I was dying to mess with model architectures and run my own training runs, but you have to be a special kind of ungrateful to complain about building infra at the bleeding edge of AI. Especially when you haven’t even finished the second year of your Master’s.
The internship flew by. It was time to look for a job again. Having Mistral on my CV opened up the interview funnel dramatically. I tried to break into the frontier of big AI: DeepMind, Waymo, Anthropic, Reflection AI, FLAIR at Oxford/Meta, and a handful of smaller startups. This time I even managed to schedule the interviews I wanted least at the very beginning. That helped me reach the final rounds in most processes.
Alas (again, alas!), I received another handful of “no”. In some places my nerves got the better of me, but in most cases I simply lacked experience. Passing the interviews isn’t enough. At big labs there will always be several candidates who successfully clear every stage. You also need experience relevant to the role. I had 10 years of engineering experience behind me, a couple of publications (one even got accepted at EACL), and an ongoing Master’s. My competitors had 10 years of experience in ML, multiple of publications at A* conferences, and often a PhD. The choice is obvious.
The Bright Futu… Present
I needed a manager willing to take a risk. A team willing to hire someone with a non-traditional background, but with fire in their eyes. In other words, I needed a small miracle.
Right around my birthday, it happened! I got an offer from a small new research team at Revolut. The team had just released a foundation model for financial transactions and was rapidly gaining momentum. I couldn’t have hoped for anything better! Skilled people around me as a motivator for growth, while the small size means the opportunity to take on as much responsibility and scope as I can carry.
The funny thing is, Revolut wasn’t even on my radar. It never crossed my mind that a neobank would be pre-training its own foundation models from scratch. Then a friend slid into my DMs (thanks, Tanya!) and sent a LinkedIn post with the job ad! So, one more important lesson — build your network, folks.
So where did we land? As of today, I’ve shipped PRAGMA to prod, submitted a paper to NAACL with the team, and now I am playing with the graph models and the next generation of PRAGMA. Along the way, I graduated from Skoltech, but it is not the end of the academic journey. Next up, a part-time PhD at a UK uni exploring mech interp and model organisms of uncertainty in deep learning. To this day, I frequently feel like an idiot who barely knows anything, but that’s good. It means I have the right people around me. It means there is a lot of hard, “real” work ahead, the very kind that brings genuine, deep satisfaction at the end.
Advice for Fellow Career-Switchers
- Try to make the transition to ML within your current company, even if at first you’re working on infra with the option to pick up ML tasks. It’s much easier. You keep your income. You sacrifice the speed of the transition and risk getting stuck in infra. At Meta, it didn’t work out for me.
- If, like me, you find it easier to study in a group, a Master’s is a great option! Just apply to a university in the country where you want to work afterward. It would have been easier for me to get an internship in London if my CV had UCL on it instead of Skoltech.
- Find your academic advisor and start working with them as early as possible. Perhaps the most valuable thing I took away from Skoltech was working with the head of our lab, Alexey Zaytsev, and networking with other students.
- Network fiercely. Start reading groups, go to hackathons, study together in libraries. The most noticeable shifts in my thinking happened after talking with one of the PhD students at Skoltech (thanks, Nikita!).
- Regarding interviews, read this post. I couldn’t write it better.
- Try to get into one of the research residency programs.
- Mentally prepare to hear “no” over and over and over again. It will be hard. I thought I was ready, but “living through it” and “thinking about it” turned out to be fundamentally different things.
- And good luck! You’re going to need it!
Comment this post on X