During my last semester at Northeastern, I was fortunate to get interviews from many companies, from start-ups to giants, for a variety of 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 as a whole.

I interviewed with DraftKings for the post of Entry-level Software Engineer (New Grad) in Fall 2018. The interview experience over-all was good and I observed that DraftKings recruiter was quite responsive. Though, I felt interviewers were pre-occupied 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 friend, who was interviewing there as well. It was a time when I was applying for many positions every day and hence did not keep precise track of all the places I've been applying.

Recruiter Call

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 regarding my professional background, career interests and asked a few technical questions. He also informed me on what DraftKings does and different teams in it — including what my job might look like. It was all quite exciting and interesting.

Few minutes after the call, I received a HackerRank challenge from him, supposed to be completed within 24 hours — which I did at evening on the same day — in Java. Next day, I received his reply that the company would like to move forward to phone interview.

Phone Interview

I think it creates a really 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.

The one hour phone interview was scheduled for next week and I was given choices of 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.

Phone interview started with the interviewer introducing himself and then we jumped to the coding part. He informed that we'll try to keep some time at 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 couple of methods — and a list of the parts that I needed to implement. It had two parts — if you successfully complete the first — you get to go to the second.

In my opinion 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 stub.

Afterwards, 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.

On-Site Interviews

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 really impressed how fast they make decisions and act on them. We scheduled the on-site round 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 during 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 3 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 me the problem really well. It was similar to phone interview though on a higher level of difficulty. However, he said that I could use 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 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 query. At the end of the time, he checked on my work and seemed quite happy — I had implemented all the methods correctly. Wohoo!

11 AM — Design Interview

The next interview started on time. The interviewer introduced himself as a manager working in certain Finance team at DraftKings. He jumped straight on the question after that without much details — I was given a white board and a marker to work with. He told me that he'll 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 totally 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 in his phone (was I boring?) and seemed very much pre-occupied 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 him everything with assumptions, trade-offs and further strategies. He 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 few minutes to ask any questions I may have. He didn't answer anything clearly.

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 should I talk on 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 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.

Afterwards, I explained to him the Decision Tree algorithm for Machine Learning without parallel processing. And then I explained him how that algorithm would work in MapReduce. I let him know that he may ask any queries that may accrue during explanation. I also talked about trade-offs and what can be done better in the current design and offered to show the code as well.

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+ minutes 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 let me know in 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 overview of required details on ML as well).

It was quite clear that the interviewer was disinterested in actual interview — may be just passing time. At this point, I was disinterested as well. Additionally, he asked me a behavioral question from certain past experience.

Decision

After this the interview ended and I met the recruiter who informed that they'll 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.

First Round

The interviewer didn't like my syntax and I didn't use all the given details.

My take:

I was told 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 (badly) write single liner for-loops and if-else statements?

Had I joined the company, I would've followed company's design policy (if they've one).

Second Round

Not much here.

Third Round

The recruiter told me that I was not able to explain my project very well.

My take: I understand that since 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 very good story (for the behavioral part).

I thanked the recruiter for elaborate feedback.

Summary

I think it was a good 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 the constructive way.

In the end, I liked that they took time to provide me feedback — which most of the companies don't deem necessary. Additionally, thanks to the recruiter for speedy process and thanks to DraftKings for the opportunity!