Landing at an SE/SRE summer internship in the US
Greetings from Bittersweet. It has been a long time since I posted anything on the blog last time. It's not like that I don't want to write anything, but rather I'm not good at putting my thoughts into words... I really should practice that more often.
After months of searching, coding, and interviews, I've finally landed an internship position at Dropbox as an SRE(Site Reliability Engineer) this summer. I'd like to share my experience in a form more like a "logging file" than a complete guide, so please take this one with a grind of salt.
A leetcode a day keeps bugs away.
Yes. Leetcode. It's the famous and "infamous" website that is referred to almost whenever someone's talking about their interview preparation. It smells like a cliche, but I'll talk about it a bit anyway.
In April 2020, everything was grinding to a halt when the world shifted into a 'pandemic mode'. I spent most of my time indoors, and that's when "leetcode daily coding challenge" first came to my notice. One question a day, and it's not a heavy load that would torture you day and night. I personally formed a habit of finishing that daily challenge before going to bed every day, and I managed to form a habit that lasts until even today. My suggestion on how to tackle Leetcode, for those who are not a big fan of frantically solving 100 questions in one or two days, is to start early and stick to it. Integrate daily coding challenge into your day-to-day routine and after 1 yr or so it'll make a difference.
In addition, leetcode is not just somewhere you can practice coding questions. I'd search for relevant posts about OA or interview questions/feedback on Leetcode or Glassdoor in advance to get better prepared for what to expect in those assessments.
Bloomberg (Software Engineer Summer Intern, rejected)
Apply online -> Phone screen -> Tech interview 1 -> Tech interview 2 -> HR round -> rejected by email ~3 weeks later
Phone Screen (15 min)
- Resume overview
- Talked in detail about a previous quant developer internship of mine when I was in Shanghai
Tech Interview 1 (1 hr)
- Why Bloomberg
- Q1: Binary Tree Zigzag Level Order Traversal
- Q2: Design Underground System
- Questions from the interviewee
Tech Interview 2 (1 hr)
- Follow-up questions on my resume
- Q1: Merge Intervals
- Q2: Word Search
- Questions from the interviewee
HR Round (25 min)
- Confirmation: graduation date, legally working status, other offers, expected salary...
- Why Computer Science
- Why Bloomberg
- I mentioned shared value, highlighting inclusiveness & openness
- HR followed up with details about this topic
- Recent project you want to highlight
- About Internship program:
- 11-week long
- 1st week onboard training
- 10 weeks working on a real project (in contrast with side projects)
- Evaluation chat in the middle (~ 5th week)
- Evaluation chat at the end
- Along with a manager, you'll also be assigned a mentor (a senior engineer)
- Besides projects, many fun activities (team building, etc.)
- Accommodation: corporation dormitory / accommodation stipend
- Most of the coding challenges are chosen from medium-level leetcode questions.
- It's a good practice to check the technical blog of the company, in this case TechAtBloomberg, to get prepared for "why this company", "what questions do you have from your side", and behavioral questions. Do your research in advance. In my case, writing down some key points and bringing my note to the interview didn't bother my interviewers at all. On the contrary, they'd love to see you're prepared :)
Dropbox (Site Reliability Engineer Summer Intern, Accepted)
Apply online (applied to general SE position at first) -> Email from a recruiter that general SE slots were all filled, but recommended me to try SRE -> SRE webinar -> OA(Online Assessment) -> Phone screen -> Virtual onsite -> Offer call yay
When your recruiter refer you to a related position that is not the one you originally applied to, I would suggest giving it a try, since firstly it's great to explore more possibilities in general, and secondly, you never know what flavor of chocolate you'll get next :p (in my case I got a pretty sweet bar of chocolate as I not only won a T-shirt in the raffle but also got an offer later on)
OA (90 min?)
Apologies but I can't remember the exact questions being asked in my OA. Luckily, the question pool of Dropbox is not enormous. Please refer to the "code" folder inside this GitHub repo.
Phone screen (1 hr)
- Check if an array of bytes is present in a file
- Naive solution: O(mn) where m = len(array_of_bytes) and n = len(file)
- Follow-up questions to optimize using RollingHash: O(n)
Virtual Onsite (~3.5 hr)
Tech round 1 (1 hr)
Implement a simple key-value DB that supports transactions.
HR round (45 min)
- Why Dropbox
- Project that you'd like to highlight the most
- The harshest feedback that you've ever received
- Leadership experience
- Failures and how did you face them ...(Can't remember all the questions XD)
Tech round 2 (1 hr)
Connected components on undirected graphs (represented by a 2-D binary matrix). Follow-up questions on how to effectively maintain those connected components after some updates, e.g. flip a '0' to '1' in the matrix. (My answer to this follow-up was to use the union-find set.)
Chat with an SRE engineer (30 min)
It was a nice time to meet an SRE engineer who shared his work experience and day-to-day life at Dropbox. It was also a great time to ask any lingering questions on my side. Here're some of the questions I asked:
- (From Product demo video) Dropbox Desktop app, What's the choice for programming language / UI lib? Cross-platform?
- During the pandemic, everything tends to move online. Did Dropbox undergo any spike of collaboration services? How's Dropbox handling the increasing need?
- What are some of the open challenges for the SRE team?
- What are some of the challenges to collaborate with other teams in the SRE process?
- In the prev webinar of SRE I learned that in recent years the team has started to use Golang in addition to Python. What's the motivation for using Golang and what are some of the benefits brought by this decision?
- One of the things that I like the most during the whole recruiting process is that official preparation materials for interviews are provided and sent to you through Dropbox Paper before the onsite, which I found to be super helpful and encouraging. Please make sure to go through them and dig deeper by clicking the links provided in those documents.
This article is more like an assortment of my personal "interview logging files". I hope it's not too confusing, and I'm more than happy to answer any questions in the comment area below. If I were to give final advice on finding an internship, I'd say: start early, be prepared with the help of all kinds of online resources, and be yourself as the interviewers are looking for the real you rather than someone you pretend to be.
Thanks for reading, and best luck with your interviews!