My Journey to Landing a Job at DeepMind
Table of Contents
- Introduction
- Background Story
- High School Years
- Transition to Software Engineering
- Crafting My Own Machine Learning Curriculum
- Neural Style Transfer
- Deep Dream
- Generative Adversarial Networks
- Transformers
- GraphML
- Reinforcement Learning
- Getting a Referral to DeepMind
- Forming Genuine Connections
- Contributing to Open Source Projects
- Preparing for the DeepMind Interview
- Algorithmic Textbooks
- Cracking the Coding Interview Book
- Mathematics for Machine Learning
- Behavioral Questions and AGI Research
- Conclusion
My Journey to Landing a Job at DeepMind
In this article, I want to share my personal story of how I managed to land a job at DeepMind as a research engineer. This has been one of my most requested topics, and I'm excited to finally share my experience with You. What makes my story unique is the fact that I do not have a machine learning degree. I don't hold a PhD, a master's degree, or even a bachelor's degree in machine learning. My first exposure to programming came fairly late in life when I was 19 years old. Additionally, I come from a relatively poor country, and the higher education system in Serbia is not as developed as some of the top universities around the world.
Background Story
Let me start by giving you some background about my Journey and how I got into the field of machine learning. Back in high school, I didn't even know that working for a tech company was a possibility. I was familiar with computer basics like Windows and using Google search but had no idea that people could actually work for these companies and build amazing products. It's safe to say that I was quite ignorant back then. I wasn't the kid who started programming at the age of six, nor did I dream about building artificial general intelligence at a young age. In fact, I had very little exposure to the world of programming and technology.
In 2013, when I had to choose my field of study, I wasn't sure what I wanted to do yet. I heard about an electrical engineering faculty that was known for admitting only the smartest students. It was considered the hardest faculty in my country. The challenge intrigued me, so I decided to enroll and pursue a degree in electrical engineering. During the first few years of studying, my extracurricular activities didn't involve building fancy applications or technical projects. Instead, I focused on learning human languages and physical training, such as calisthenics. At the time, these pursuits seemed irrelevant to my future career. Little did I know that the skills and mindset I developed during this period would be invaluable later on.
At the end of my studies in 2017, I made a decision to pivot into software engineering. My studies had focused mainly on digital and analog electronics, with only a few programming courses. I started taking more programming courses to catch up and enhance my skills. Around the same time, I landed an internship as an Android developer in a small startup. This opportunity allowed me to gain hands-on experience and Apply what I was learning. It was during this period of experimentation and self-learning that I realized the importance of building my own curriculum tailored to my goals.
Crafting My Own Machine Learning Curriculum
Once I decided to pursue machine learning, I knew I had to develop a structured and comprehensive curriculum. I wanted to explore various subfields and Delve deep into the Core concepts. I began with a focus on neural style transfer, as it aligned with my passion for computer vision and art. Through implementing the original neural style transfer paper and creating YouTube videos and open-source projects, I gained a solid understanding of deep learning frameworks, such as PyTorch, and convolutional neural networks.
Next, I turned my Attention to deep dream, a fascinating algorithm that produces dream-like images. I dove into blogs, tutorials, and projects related to deep dream, and I even created my own implementation. While my progress deviated from my initial plan, which aimed for two to three-month periods of dedicated study, I was still improving and gaining valuable insights.
Generative adversarial networks (GANs) became the next subfield on my learning journey. Given their popularity and widespread use, I wanted to grasp the fundamentals and explore the possibilities they offered. Implementing projects like the original GAN paper, conditional GAN, and deep convolutional GAN helped solidify my understanding of GANs and their role in generating realistic outputs.
As transformers gained prominence in the machine learning community, it was essential for me to comprehend the concept to tackle advanced papers. I implemented the original transformer paper, building a machine translation system between English and German, and shared my learnings through YouTube videos and a blog. This phase allowed me to cover a wide range of topics, including attention mechanisms, sequence-to-sequence models, and self-attention.
GraphML piqued my interest for several months, and I dedicated my time to understanding graph neural networks. In collaboration with leading experts in the field, I implemented the widely acclaimed graph attention network paper, created popular YouTube tutorials on graph neural networks, and shared my knowledge with the research community.
Reinforcement learning was the final subfield I covered before transitioning to exploring the most cutting-edge research papers. I open-sourced the original DQN paper, which introduced a Novel approach to solving Atari games on a Superhuman level. I delved into papers like AlphaGo, AlphaGo Zero, MuZero, and D4PG to gain a deep understanding of reinforcement learning principles.
Throughout this period, I developed my own machine learning curriculum, combining high-level resources, research paper readings, YouTube videos, open-source projects, and blog writing. Although I encountered challenges and deviated from my original plan, I continued to improve and expand my knowledge.
Getting a Referral to DeepMind
While preparing for my job application at DeepMind, I realized that having a referral would greatly increase my chances of getting an interview. I understood that simply sending a random person a message asking for a referral would not yield the desired results. Instead, I focused on forming genuine connections and finding ways to add value to the target company.
One approach I took was reaching out to someone at DeepMind named Peter Velitchkovic. I discovered that he was already familiar with my content, as he followed my YouTube Channel. We started chatting, discussing various papers, and building a connection Based on shared interests. I offered my assistance and support, showing genuine interest in contributing to projects he was involved in. Over time, this connection grew stronger, and when the opportunity arose, he was happy to refer me for an interview at DeepMind.
Another strategy to secure a referral is to contribute to open-source projects associated with the target company. By investing time and effort in contributing to projects that Align with your skills and interests, you not only demonstrate your capabilities but also catch the attention of other contributors who may be willing to refer you.
Preparing for the DeepMind Interview
Once I received an interview invitation from DeepMind, I knew I had to prepare intensively. The interview process at top-tier companies like DeepMind often requires a strong grasp of algorithms, data structures, and technical knowledge. I wanted to ensure that I thoroughly reviewed these topics and refreshed my understanding.
To prepare, I revisited algorithmic textbooks, cracked the coding interview book, and studied mathematics for machine learning. I also focused on behavioral questions and devoted time to understanding the philosophy and engineering aspects of artificial general intelligence (AGI). Additionally, I conducted research on the research papers published by the interviewers to familiarize myself with their work.
Throughout the preparation period, I balanced technical knowledge with soft skills, as behavioral questions play a crucial role in the interview process. By the time of the interview, I felt confident in my abilities and well-prepared to tackle the challenges ahead.
Conclusion
In conclusion, my journey to landing a job at DeepMind was one filled with challenges, perseverance, and continuous learning. Despite not having a formal machine learning degree, I crafted my own curriculum, explored various subfields, and built a strong foundation in the field. Forming genuine connections and contributing to open-source projects played significant roles in securing a referral to DeepMind. Finally, thorough preparation for the interview process enabled me to demonstrate my technical knowledge and passion for the field.
I hope my story serves as inspiration and guidance for those aspiring to join top-tier companies in the field of machine learning. Remember to stay curious, keep learning, and Never give up on your dreams.