In my previous article, I shared my interview experiences at IBM. During the interview process, a recruiter from Dropbox reached out to me, asking about my interest in an exciting opportunity they had. While I was negotiating with IBM, I was ready to accept a rejection by telling them, “If I don’t work out, someone else will.”
1st Interview
The environment at Dropbox felt very similar to that of a FAANG interview. However, what set them apart was how they structured the interviews, allowing for a more relaxed schedule. I scheduled my Technical Interviews for day one, and the System Design Interview was set for another day (I asked for a four-day delay to prepare better). The final interview, as usual, was with the Hiring Manager and took place afterward.
The technical interview began, and I felt a little nervous. After the first problem didn’t work out, I thought to myself, "Well, that’s the end of Dropbox." They really test your Data Structure and Algorithm skills by immersing you in a real project, which is something I hadn't experienced before. It was a bit intimidating.
In the first interview, the main task revolved around File Search. We were dealing with large folders that contained millions of files. I was asked to write a program in Python to find a given file (since they use Python a lot). As they tested me further, they broke down the problem into multiple tasks to assess my deeper knowledge.
In Task 1, I suggested using os.walk()
, which they liked, and I wrote the solution. For Task 2, they asked me to write the solution without os.walk()
. After thinking for a moment, I expressed the solution using a Trie structure, which they appreciated. Finally, they asked me to implement parallel scanning, something Dropbox focuses on, unlike other companies in FAANG that don’t necessarily delve into concurrency, parallelism, or asynchronous topics. Be prepared for that. I provided a solution for this as well, but before I could write the code, time ran out. We chatted a bit more before parting ways.
Other Interviews
The second interview was mainly focused on building an Availability Calculator. My prior research in this area proved useful, and I also sought advice from some acquaintances. The System Design interview was somewhat simpler than I expected. I was asked to design a Web Crawler. Thanks to reading books, blog posts, and various resources on the topic, it wasn’t too challenging. We spent more time discussing the details of one specific part of the system, designing it together.
The final interview with the Manager included Behavioral Questions. They asked about my previous job, why I left, and what kind of projects interested me. We discussed many things, and the interview ended with the Manager saying, "See you around." This gave me a bit of hope. We said our goodbyes with a "See you soon."
Advice
During interviews with different companies, you’ll be tested on many aspects of your skills at once. Never limit yourself. Learn about Concurrency, Algorithms, and other topics—stay curious.
If possible, focus on System Design through hands-on practice. It’s not necessary to find a million users to test with, but testing itself is valuable experience. You’ll learn a lot by experimenting with it. Read books, practice, study mathematics—there’s no harm in learning useful skills.
Outcome
So, after receiving an offer from IBM, I also received an offer from Dropbox. My manager told me, "You’re the first Uzbek developer at Dropbox." I still need to double-check that. In my next post, I’ll share how I received an offer from Meta.