If you don’t know about DeepMind, let me give you a quick intro. They do cool stuff, like creating AI that can beat humans and even world champions at games like Go or Chess, or solving complex problems related to protein folding or help to cool Google data centers, or creating Google Play’s app recommendation. DeepMind was a startup but was later acquired by Google so now they are Google DeepMind. That’s all about it.
This is DeepMind’s work on Protein Unfolding.
DeepMind’s work on Protein Unfolding.
Needless to say, it was not going to be as easy as I thought. This was DeepMind when I actually decided to apply for the internship [ ↓ ]
This picture is of me having breakfast around the end of my second year. A few months before all this happened. Not to a great start.
My second year at university had just ended and I was seeing people all around me getting cool foreign internships, cracking GSoC, getting thesis opportunities in reputed universities, or running a startup. I had none. Following advice from one of my close friends, I started applying. And when I say applying, I mean, actually applying. Like Google Sheet applying -
I don’t know if you spot a similarity, but the first few companies in my list dealt in 3D-related space. Something I was very interested in during that time. Unity and Maxon Cinema4D were tools I was familiar was and I don’t remember how I came across DeepMind, but yes, the list had about 41 rows and 6 columns -
If you can see, the second row is for “Games and Environments Intern” at DeepMind. I really liked this role for two reasons -
So I decided to walk the extra mile and not just apply on the portal.
I did some digging around (not very hard) and found people who were working at DeepMind in domains relevant to the post I was applying for. I even found their email (I think I found their photography account on Instagram first, but anyway) and sent one out -
I tried to be precise in the email and mentioned all my queries, gave a brief introduction about me and what I have worked with.
They were super helpful and added another person from the hiring team at DeepMind to help me out with my queries.
I had a few back and forth emails with them and one of those email replies would sum it up perfectly -
Hi Rajeev,
I apologise for the late reply as I was out of the office a lot last week.
Great to hear that this internship interests you! Please find the answers below:
1. For this internship, we are looking for candidates who are still in their studies
in a technical field as well as demonstrable experience of programming in one of the
following C++, C#, Java or Python. No ML experience is required
2. We would recommend writing a cover letter to show your motivation as well as links
to your github/portfolio with examples of projects.
3. It is difficult to answer this question in a lot of detail but you will be
embedded in our games team and will have a dedicated host/mentor who will be
working onn a project with you.
You will get a chance to interact with an
interdisciplinary team and be involved in a research environment.
If you are interested, please apply online: <https://deepmind.com/careers/jobs/>[...giving 404 now]
I hope this helps but please do let me know if you have any other questions.
I asked them what was the last date to apply for the internship was and got a quick reply -
1. The dates work around your schedule but we would recommend starting in June for 12 weeks for the Games internship.
2. Yes, any experience and projects you have with Unity as a game engine would be beneficial
3. The last application is 11th October.
This email was dated September 22. I duly noted the deadline -11th of October. Obviously, I will not forget it. But I did. I applied exactly one day after. Don’t ask me why, I am just really bad with deadlines.
I applied a day after the deadline and had not so a great resume. Hence, I didn’t have many hopes from it. I had almost forgotten about it. I didn’t expect a reply and I didn’t. Until after about more than a month.
One day I got an email titled — “Hi Rajeev Singh Naruka from DeepMind”. To say I was on cloud nine would be an understatement.
We scheduled a Google Meet (called Google Hangout at that time, 😆). The first meet was a quick chit-chat about my previous work experience and what the role will entail. Nothing fancy, just to check if I would be a fit for the role. You know, the human side of us. No psychos.
After our initial meet, we went on to the next round — the dreaded “TECHNICAL INTERVIEW”.
Hi Rajeev,
Thanks for the email, I am glad to hear that you enjoyed our conversation.
I hope you had a good weekend!
Following our conversation, I’m pleased to let you know that we would like to
progress with your application to the next stage.
The next step would be for us to arrange a 45 minute to 1 hour Google Hangout with a
member of our Worlds Team, who will do a quiz with you and will cover the following
subjects:
Data Structures and Algorithms
Language Fundamentals
Software Engineering
General Maths
Systems Engineering
The quiz requires an undergraduate level of understanding of the above topics and
helps us to understand your strengths and knowledge.The questions are 'in person' (over the internet),
so they are verbal and the answers are mostly verbal too.
There are a couple of occasions where we ask you to draw graphs
and we use the 'highly technical' approach of asking you to draw it on a piece of paper
and hold it to the camera :)
What is your availability looking like to take this interview over the next few weeks?
Please let me know if you have any questions in the meantime.
Thanks,
Now that I am going back the memory lane, I am having traumatic flashbacks. Really. Up till now, the only mistake was me applying a day after the last day of application. It was not a disaster when you compare to mistakes I made in this phase.
This is actually me while writing this blog, thinking about the shit that’s about to go down.
I have time in my favor. Got plenty of time to prepare for the technical interview. Already know what they are going to ask -
I mean what can go wrong? But it did. Here is the list of the assumptions I made that would bite me in the back -
At this point, I had made assumptions as to what was going to be asked, I still went ahead to confirm it with this email -
Hi [],
I would like to ask you a query with respect to the technical interview for the
internship position at DeepMind on 16 December, scheduled by [] as you know.
She previously mentioned that the interview would be of a quiz type with mostly
verbal answers. I wanted to know if I can expect some write-code-for-this-algorithm
type questions as well.
Any other information regarding this interview are welcomed.
Thanks,
Rajeev
They replied with the following email -
Hi Rajeev,
Thanks for reaching out! Unfortunately I cannot provide much more information
than [] did on the quiz today, all I can tell you with certainty is that it will
cover the below topics, and that the yes, most answers will be verbal except
for a few where you may have to draw a graph.
At this stage, there should not be a main focus on coding in the interview.
Data Structures and Algorithms
Language Fundamentals
Software Engineering
General Maths
Systems
I hope this helps slightly, and good luck :)
Thanks,
They clearly said — NO FOCUS ON CODING. But I was still not convinced. Also, they did mention DSA at the top, so that’s what I did. I prepared for DSA. Both theory and coding problems in the interview. General Math, Software Engineering, and Systems were too general for me to actually spend time on them. So, I didn’t. The biggest mistake I made.
The interview was scheduled and I was prepared. At least I thought I was prepared to face the interview. What could go wrong now? The INTERNET.
The interview started on a high note. They asked me a simple question about Linked List. Too easy for me. I had prepared for much harder questions on Data Structures and Algorithms.
As I started to answer the question with a confident voice (I rarely use this one), the internet died. It was pretty reliable but it failed when I needed it the most. What will they think? Would they think I did it cause I didn’t know the answer? Why am I so unlucky?
I was panicking.😖
Somehow I got it running again. Would they still be in the interview, didn’t I just waste like 5 minutes of a hard-working scientist? Why would they stick around? Fortunately for me, they were very patient and they did. I continued with the answer. Answered it and they followed up with related questions, which again I answered with ease. I was the DSA wizard (No not really).
They said they were going to ask me a total of 10 questions. 1 down. It is going to be a cakewalk for me. Answering all the DSA questions. But that was it. They didn’t ask me any further DSA questions.
But they did ask me -
1. What are smart pointers?
IDK! I barely know dumb pointers. Give me a break.
2. Garbage Collection and How Java or C# does it?
Answered it somehow. Then I tried to show-off my “DEEP” understanding of Java by throwing words like JIT (Just-In-Time) compiler. They followed by asking me what it does. I didn’t have a very clear understanding of myself at that point and hence my answer was all over the place. At that point, I realized that I should only talk about stuff I was 100% sure about.
3. Memory Leak and how it is managed in different languages?
Where are those DSA questions I prepared for?? Where !! I tried my best and talked about the difference between dangling pointers, what can cause memory leaks. But how different languages handled it? I had no idea.
While I was battling through these questions, my internet went down, again. It died three times in that interview. At one point, nothing was going my way, I didn’t know a lot of questions, my internet was not stable and my hopes were dwindling. I even thought I would not reconnect and that would be the end of my misery. But then I decided not to do it and endure the pain of my mistakes 👼. I thought about how I can make the best out of the situation I am in -
During the interview, they jumped into asking questions based on 3D as well. They asked me how can one define the rotation of an object in a 3D space? I had recently done a small project in ML that had a database to train the model on. The database was of the position and rotation of trackers in a room. I knew you could define the rotation of an object with “Quaternions” and so I said you can do it with quaternions. He was pleasantly surprised, not all hopes were lost perhaps and followed up with a question — “How many Quaternions we need to define the position of an object?”. I wanted to bury my face at that point. I didn’t know the answer to it. I admitted and then he went to explain it. He asked me if I knew Gimbal Lock. I didn’t and he explained that as well.
This was the final nail in the coffin. 🙂
I followed up after the interview and said I had a great time learning in the interview because that’s what I did. I didn’t do well but I did learn.
Then that dreaded email came. If you remember how excited I was to see the initial email for the whole interview process, well the following email was a punch in the gut.
Hi Rajeev,
Happy New Year, I hope you had a good holiday season.
Apologies for the delay as I was out of the office on
holiday and so I am just catching up on emails.
Firstly, thank you very much for your interest in DeepMind and for taking the time
to speak with us.
We've spent a lot of time over the past week deliberating this decision, but after
giving it some thought we feel that the role we currently have doesn't fully suit
your strengths.
You communicated well but we are currently looking for slightly stronger core CS
knowledge than was demonstrated in the last interviews.
So regretfully, we have decided not to take our discussions further with you at
this time, but we would be really keen to keep in touch and potentially explore
other opportunities in future.Myself and [] really enjoyed chatting with you,
I hope you enjoyed it too.
All the best and please do keep in touch.
Take care,
I ended the conversation on good terms and thanked them for the opportunity.
Hi [],
Happy New Year to you too.
Thanks for getting back to me about the decision. While I’m a little disappointed to hear
this news because of my admiration for DeepMind, I greatly appreciate the opportunity to
interview for the internship with you and [].
I believe, the job description indicated more towards the need for an artistic
perspective than strong CS fundamentals. But I do realize that working at DeepMind
requires stronger technical proficiency. So next time, I assure you, I will be better
prepared.
I thoroughly enjoyed this learning experience and would love to be considered for
any future opportunities that may become available.Once again thanks [],
It was great interacting with you.
Sincerely,
Rajeev Singh Naruka
This was it. The end of the story. Would love to know your thoughts on it! Let me know on @RajeevSinghN on Twitter.
If you liked this post I'm sure you'll love what I usually share on Twitter, I share a lot of Growth & coding tips there ✌️