-
Notifications
You must be signed in to change notification settings - Fork 64
/
Copy pathdropbox.txt
111 lines (55 loc) · 7.84 KB
/
dropbox.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
放弃: multi-thread programming
DropBox Architecture
http://www.quora.com/How-is-Dropbox-implemented-using-AWS-S3
First was a HR / technical interview. Spoke about 2 projects and answered questions on them. 25 min online technical interview. Question was "Given a pattern and a string - find if the string follows the same pattern Eg: Pattern : [a b b a], String : cat dog dog cat "
First the recruiter sent me an online coding challenge about class registration as mentioned before by lots of reviews. The time limitation is 2 hours. After a week I got a phone interview. The question is about count the number of visitors on a website for the past 5 min. Follow ups included exploring potential concurrency issues and how would you fix it. An online collaboration editor was used, and your code need to be compiled and run. The engineer who spoke with me was really nice.
The online portion of the interview asked to implement a class registration system. Each student had a number of classes they were assigned to, and each class had a number of students. Functions were needed to add students, add classes, remove students, remove classes, etc. There was around a two hour time limit.
I applied online, and two weeks later I got an email from a recruiter asking me to complete a 90-minute timed online coding exercise from HackerRank. The coding exercise can be started at anytime within one week from the day they sent it to you. My coding exercise was about developing an online class registration system. I had a bunch of related functions that I had to implement (add a class, remove a class, enroll a student, remove a student, etc), and they give you the specifics for each function. I didn't think it was very difficult, but it was kind of long so I didn't get to implement everything. You can compile and run your program right on the coding exercise page. There are also test cases, and it will tell you which test cases you passed, which ones you got wrong, and what should be the correct output for those.
I was contacted by DropBox recruiter. After I spoke with the recruiter about opportunity and culture, I decided to submit the resume. The entire process was really pleasant and fast. I was scheduled for the phone interview within few days after submitting the resume. The initial phone interview was technical but there was no coding. It was more of screening and testing knowledge of the candidate in various technical area (system, parallel programming, networking, basic data structure, algorithm, web infrastructure, tech-stack). It wasn't hard but wasn't easy either. My advice is study and understanding tradeoffs. Interviewer actually looked into your resume and try to ask questions relevant to your area of expertise. First 15 minutes was introductory and the rest was breadth technical. The interview result was revealed a day after.
Knowledge:
system,
parallel programming: http://berb.github.io/diploma-thesis/original/041_overview.html
networking: http://en.wikipedia.org/wiki/OSI_model
basic data structure,
algorithm,
web infrastructure:
http://architects.dzone.com/articles/modern-web-app-architecture
http://www.slideshare.net/cchamnap/introduction-to-web-architecture
tech-stack
Phone interview, was asked a variation of the counting change problem, I wasn't quite able to code it up. Got the denial a few days later, as expected. Everyone was very nice and friendly, had a great chat with the interviewer also. I'd recommend giving this company a shot, there was NOT kool-aid at all like at most companies; just genuine engineers who seemed to want to hire great talent.
Each person asked me a single technical question that I then worked through. They were unique and somewhat difficult. I also got to bring in a project that I'd worked on in the past, and show that to one of the interviewers.
Question was "Given a pattern and a string input - find if the string follows the same pattern and return 0 or 1.
Examples:
1) Pattern : "abba", input: "redblueredblue" should return 1.
2) Pattern: "aaaa", input: "asdasdasdasd" should return 1.
3) Pattern: "aabb", input: "xyzabcxzyabc" should return 0.
Solu: http://www.mitbbs.com/article_t/JobHunting/32817129.html
Spoke with an engineer at a career fair about my previous experiences and dropped off my resume. I was asked to sign up for a 30 minute on campus interview that night for the following day. Following the interview, I was asked to do another 60 minute interview the next day. Each of these was about 20% questions about goals and prior experience and 80% coding for the rest. After solving the problem I could ask questions about Dropbox as a company. In two days I was asked to visit SF office for a full-day interview, which was four one-hour interviews, each with one engineer and a shadow interviewer. Lunch with another guy in the middle, wrapped up with a 45-minute general Q+A.
Implement two functions that assign/release unique id's from a pool. Memory usage should be minimized and the assign/release should be fast, even under high contention.
Discussion: http://www.mitbbs.com/article_t/JobHunting/32868495.html
I was asked how to find duplicate files in a filesystem, and I wrote up the code on coderpad.
I received an email less than a week later telling me that I would not be receiving an offer.
Interview Questions
List all duplicate files in a filesystem given the root directory.
Finding the duplicate files of the same root folder.
One-on-one, 30 minute interview. Whiteboard coding, with helpful advice from the interviewer. About 5 minutes at the end to talk about Dropbox and any questions about the company. Overall, very friendly and relaxed interview process, with callbacks within 24 hrs for a longer interview (unfortunately, was not called back -- probably because this was my first technical interview for a company).
1. Design a link shortening URL system. Discuss the tradeoffs of different approaches.
2. (Coding) Write a basic file system and implement the commands ls, pwd, mkdir, create, rm, cd, cat, mv. This was done on my own computer, in the interview room, with a 1.5 hour time limit.
Pretty standard questions. First interview involved finding the sum to a target in an array, second involved designing a log-hit counter for a website. I was allowed to write both in java. The questions weren't overly difficult, but they expected top-notch answers!
Solu: http://www.mitbbs.com/article_t/JobHunting/32549839.html
StackOverFlow:http://stackoverflow.com/questions/17562089/how-to-count-number-of-requests-in-last-second-minute-and-hour
The questions were related to java. The interviewer asked me to write a code to edit a string in a output.
"Make a program that can print out the text form of numbers from 1 - 1000 (ex. 20 is "twenty", 105 is "one hundred and five")
Write a program that logs hits received in the past 15 minutes.
design a spell-checking algorithm
You have a number of meetings (with their start and end times). You need to schedule them using the minimum number of rooms. Return the list of meetings in every room.
Design an LRU cache. It's a data struct with a capacity. Beyond this capacity the least recently used item is removed. You should be able to insert an element, access an element given its key, and delete an element, in constant time. Note that when you access an element, even if it's just for a read, it becomes the most recently used.
Infix -> postfix expression conversion and evaluation.
More MianJing
http://www.themianjing.com/dropbox%E7%9A%84%E4%B8%80%E6%9E%9A%E9%9D%A2%E7%BB%8F/
http://www.themianjing.com/tag/dropbox/
http://codeanalysis111.blogspot.com/2015/01/google-dropbox.html
https://nuttynanaus.wordpress.com/2014/03/09/software-engineer-interview-questions/
http://www.jianshu.com/p/f0c619a4814a
Collaborative Editing like Google Docs.
http://stackoverflow.com/questions/5772879/how-do-you-write-a-real-time-webbased-collaboration-tool-such-as-google-docs