During my last semester at Northeastern, I was fortunate to get interviews from many companies, from start-ups to giants, for various job profiles within software development. In this post, I would share my interview experience with DraftKings. Please note that it's a personal experience and not an opinion on the process or employees and may not reflect the company.
I interviewed with DraftKings for the post of Entry-level Software Engineer (New Grad) in Fall 2018. The interview experience over-all was excellent, and I observed that DraftKings recruiter was quite responsive. Though, I felt interviewers were preoccupied at times (e.g., in their phones) and unresponsive.
DraftKings is a daily fantasy sports company in Boston. I had never heard of them until I applied there in October 2018 on the recommendation of a friend who was interviewing there as well. It was a time when I applied for many positions every day and hence did not keep precise track of all the places I've been applying.
I received an email from DraftKings recruiter in November, and we scheduled a call — and rescheduled it on his request. When we finally got to converse, he talked to me about my professional background and career interests and asked a few technical questions. He also informed me of what DraftKings does and different teams in it, including my job. It was all quite exciting and exciting.
Few minutes after the call, I received a HackerRank challenge from him, supposed to be completed within 24 hours — which I did an evening on the same day — in Java. The next day, I received his reply that the company would like to move forward to a phone interview.
I think it creates a positive impact on the candidate and keeps the candidates excited and inspired for the company when recruiters respond and move fast in the process — and I would applaud DraftKings for that.
We scheduled a one-hour phone interview for next week and gave me a choice of the programming language from Java, C#, and .NET — which was odd for me because for the interviews, I prefer to use Python, particularly for brevity — and no other company had asked for C# and .NET. Anyhow, I chose Java — since I was not familiar with the other two.
The phone interview started with the interviewer introducing himself, and then we jumped to the coding part. He informed me that we'd try to keep some time in the end for questions that I, as a candidate, may have. The coding part was a simple design problem, and I had to implement it in Java. Few classes were given with a couple of methods — and a list of the parts that I needed to implement. It had two parts — if you complete the first — you get to go to the second.
It was a test of knowledge of the programming language, rather than algorithmic problem-solving. Once I completed the first part, the interviewer added more items to be implemented. We discussed trade-offs in different approaches that can be followed and allowed me to implement, which I feel the best. Moreover, I was allowed to leave some parts (e.g., comparator) as a stub.
Afterward, he answered my queries regarding the team, profile, and work culture, including some conversation on how DraftKings make use of technologies like Data Science and Machine Learning.
Few minutes after the phone interview, I received an email from the recruiter inviting me for on-site interviews, which would be the final round of interviews. Again, I was impressed by how fast they make decisions and act on them. We scheduled the on-site series for next week.
It was a windy and cold but sunny Tuesday morning to their office in Boston near South Station on MBTA's SL4.
Journey to South Station on MBTA Silver Line bus SL4 became one of my favorite bus routes in Boston since I traveled on it almost every weekday from January to August 2018 during my internship at SessionM. Another is Route 1 to Harvard — which runs close to Northeastern (Mass Ave and Symphony stations), Charles River, and MIT. I reached the office on time — which was not so hard to find. I had three interviews on-site — Coding, Design, and Behavioral+Previous Project.
10 AM — Coding Interview
My first interview was supposed to start at 10 AM, but the interviewer appeared 20 minutes late at 10:20. It was an unexpected and unwelcome experience on an interview day — but, well...
He gave me a computer with an open code editor to work on and explained the problem well. It was similar to a phone interview though on a higher level of difficulty. However, he said that I could use the internet to check any in-built methods I may need. Again, the options of languages were limited, and I was coding in Java.
He told me that the syntax and coding style is a non-issue. I was given half an hour in which he left the room but checked on me twice if I had any queries. At the end of the time, he checked on my work and seemed quite happy — I had implemented all the methods correctly. Woohoo!
11 AM — Design Interview
The next interview started on time. The interviewer introduced himself as a manager working in a particular Finance team at DraftKings. He jumped straight on the question after that without many details and provided me with a whiteboard and a marker to work with. He told me that he'd let me know at the end of the interview if I've satisfied his expectations or not.
I asked him questions to clarify various parts of the design problem — however, the interviewer was highly non-responsive — making the interview a one-sided conversation rather than a discussion to build something better. Given that the interviewer was very cold, I had to make some assumptions — which I stated openly.
At times, he was busy on his phone (was I boring?). He also seemed very much preoccupied while I was explaining my design strategies. I felt that he was not interested in the interview at all.
However, after close to 45 minutes, I designed and explained everything with assumptions, trade-offs, and further strategies. The interviewer informed me that he was satisfied with the solution I presented. It was a welcome change from his previous behavior though I was getting a negative vibe now.
He gave me a few minutes to ask any questions I may have. He didn't answer anything.
12 PM — Final Interview (Behavioral + Past Projects)
During this round, the interviewer started by asking me to explain any past project. I asked him if he had any preference for which project I should discuss from the list on my resume. He allowed me to pick one as per my choice.
I decided to explain my most recent project — implementation of the C4.5 Decision Tree algorithm in MapReduce. I also confirmed from him if that's alright. He let me know that he doesn't know anything about parallel data processing and MapReduce (which was quite surprising to me). Hence, I explained how MapReduce works with a simple example program such as WordCount.
Afterward, I explained to him the Decision Tree algorithm for Machine Learning without parallel processing. And then, I explained to him how that algorithm would work in MapReduce. I let him know that he may ask any queries that may accrue during the explanation. I also talked about trade-offs, what can be done better in the current design, and offered to show the code.
However, at the end of it all, he said that he doesn't understand Machine Learning — and that he was looking for some sort of Full-stack end-to-end project to be explained. It was after my 40+ minute explanation.
It was quite a shocker because I had offered him the choice to let me know what type of project he would like me to explain. Moreover, he could easily make me understand at the beginning of the explanation that he doesn't know ML and that he would prefer if I switched to some other project (though I gave an overview of required details on ML as well).
It was quite clear that the interviewer was disinterested in the actual interview — maybe just passing the time. At this point, I was disinterested as well. Additionally, he asked me a behavioral question from a specific experience.
After this, the interview ended, and I met the recruiter who informed them that they'd let me know the decision soon. Two days later, he asked me to schedule a call.
He called me to let me know that they will not be making an offer for the following reasons.
The interviewer didn't like my syntax, and I didn't use all the given details.
- They told me before the interview that the syntax doesn't matter.
- Yes, I didn't use the methods/variables which weren't necessary to complete the program.
- How many ways can you (wrongly) write single liner for-loops and if-else statements?
- Had I joined the company, I would've followed the company's design policy (if they've one).
Not much here.
The recruiter told me that I was not able to explain my project very well.
My take: I understand that since the interviewer didn't understand either of MapReduce or Machine Learning beforehand, it would be difficult to grasp and simultaneously decide on the candidate. The interviewer should've let me know that he's looking for a Full-stack project, and he doesn't understand ML models in the beginning rather than 45 minutes into the interview after I had explained everything.
The recruiter also told me that I didn't have a terrific story (for the behavioral part).
I thanked the recruiter for elaborate feedback.
I think it was an excellent experience over-all. The cold response on the on-site interview by two latter interviewers was unexpected — and I think I deserved the attention since I was paying with my time as well.
Technical interviews are usually marketed as a discussion rather than a monologue, and in my experience, that's a constructive way. In the end, I liked that they took the time to provide me feedback — which most of the companies don't deem necessary. Additionally, thanks to the recruiter for the speedy process and thanks to DraftKings for the opportunity!