Loosely based on Robert Elder’s post.

disclaimer: Meant for learning and possibly useful information for people. Not trying to flex in any way.

I timeboxed my time from Winter 2018 to Winter 2020 for a few reasons. At this point I had exclusively applied for software dev jobs and I was (arguably) interviewing the most during this period. At each term I want to highlight the places, number of interviews, difficulty, and how I dealt with each decision.

I want to make this post because for a lot of people they may see the glamourous jobs, perks, and benefits of an internship but fail to see the hard work, dedication, and often overlooked failure that comes with interviewing and trying to get an internship. (or generally anything in life) I also like explaining my experiences and how I tried to iterate and improve upon on each failure.

Most companies listed here have probably changed their interview processes and/or changed possible questions.

I did roughly 70 interviews. I probably failed ~80% of them. This is solely focused on interviews. Some companies sent coding challenges first that either screen me out when I failed it, screened me out after I aced it, or moved forward with me after I aced it.

I would describe myself as a medium-level candidate on interviewing with experience:

Top 2% in Leetcode Weekly Contests, 2000+ rating, 500+ solved Leetcode questions: Leetcode

and Specialist rank in Codeforces (1400+)

I was fairly weak at the beginning of my interviewing but steadily got better with practice. Regardless of this there are more than just algorithmic aspects to the job interview and job hunt.

Small Glossary of Terms for WaterlooWorks

Not Ranked = No Offer

Ranked = You are runner-up for offer. If person who got offer accepts, you don’t get it. If person who got offer doesn’t accept it, you get it

Offer = Job Offer

Winter 2018

This was a fairly disastrous time period for my job hunt. I had finished my QA job at SurfEasy in Winter 2017 and was actively trying all year to get a dev job. I had the help of WaterlooWorks during this term too. Unfortunately with 2 non-developer jobs in 3A I felt I was being ignored by a lot of decent jobs just by the fact of never having a dev job. Despite that, this term I had probably the most interviews ever in a term (Main Round + Continuous Round)

Main Round

Capital One - Waterloo

I remember prepping algorithms and walking in pumped. They showed me some android app and told me to design data structures to design the app. They did not like my implementation. Not Ranked

Yelp - SF

This was my first developer interview. They asked me an OS scheduling thing and I wasn’t familiar with it since I was currently taking OS. I failed in the first round (of two rounds). Not Ranked

Consensys - Waterloo

I had prior blockchain experience (won something at ETHWaterloo) and Ethereum was really hot at the time. I was really interested in working at Consensys. They asked me to code in Javascript and rotate an array. I had a bug and I did some weird change to my code and then it started working. Not Ranked

Zynga - Toronto

This was a game team working on Poker and was trying to move from flash to Unity. I actually was really interested in working on a game. I solved the question of how to remove duplicates from a linked list, and I felt we connected very well since I had prior Unity experience and I had published my game to the Steam store using Unity. I thought I was getting the offer for this one. Ranked

Continuous Round

I ranked Zynga a 1 but was not selected. So I went to Continuous Round. In Continuous Round I had what I call the Ranked Curse. Where I would consistently be the runner-up for a position but never selected.

I actually tried applying again to Consensys in continuous round (since they only filled 2/6 positions or something like that). They did not select me to interview again.

TD Bank Group - Toronto

This was all behavioural. I remember for some reason I booked the earliest time slot at 8am. During the interview my alarm to wake up (8:30am) went off, cause in most circumstances I would have been asleep. I’m gonna be honest it seemed fine as a 1st or 2nd co-op but I didn’t really want to do it for my 3rd co-op. Ranked

Curvegrid - Japan?

They asked me some overflow question. They were working out of Japan and was doing something with blockchain. I think they also decided to interview 30+ people for 1 position. I also think they ranked everyone? Ranked

Primate Labs Inc - Toronto

This was super long ago so I don’t remember much. I just remember them being unimpressed with my technical solution (despite solving it). Not Ranked

Finastra - Toronto

This was all behavioural and asked me about my projects. I left the interview a bit unimpressed they didn’t ask me an algorithm question. Offer but turned it down

I ended up ranking them a 4 and whoever got ranked (and subsequently ranked them a 1) got the job.

Iotex - SF

This was a blockchain IOT startup. They had smart people and seemed really cool. I did a few rounds involving behavioural, system design (which up until that point I had no idea what I was doing), and an algorithm question. I distinctly remember after failing to find “k-th largest element in array” without sorting (you use a heap). They selected someone else. I had done maybe 2-3 rounds over a couple of weeks. Not Ranked

Vida Health - SF

They are a Velocity start-up and at the time I was staying at the Velocity residence. They asked a simple algo question like 2 stacks to a queue and I solved it. The guy who got this offer was actually in the dorm adjacent to mine and I got ranked. He ended up taking it, so I was out of luck. Ranked

Universe - Toronto

I’m gonna be honest I don’t remember much. I think I failed their algo question. Ranked

Many Roads Studios - Toronto

The interviewer was not happy I put comments explaining my code in the interview. I was not impressed after talking for an hour when interviewer explained my role and overall impression from the interview. Offer but used “Not Ranked”

Procom - Toronto

Honestly these interviewers were really chill. I remember one of them said they switched into CS (just like me). He laid out an “easy” problem, a “medium” problem, and a “hard” problem. For some reason I chose medium and couldn’t solve the search a 2d array. I thought it involved some complex binary search and divide and conquering. (which it isn’t, it is O(MN) for matrix M and N dimensions) Ranked

Okta Inc - Toronto

They sent a coding challenge and a 3 hour interview. (Which up until that point was the longest interview I ever had) It was 1hr technical, 30mins behavioural, 30mins behavioural, 1hr technical. I walked out of it fairly good and out of 200 applicants they interviewed me and two others. It was also mid-April so talent pool was fairly shallow. Offer

Nvidia - ???

I interviewed for a UI/UX intern from Nvidia because cs349 put a job posting for it and I hadn’t found a co-op yet. This interview process took FOREVER. I probably was actively interviewing for the position close to a month and a half. I ended up saying I was moving onto other opportunities. I exited the interview process after I got Okta

Interviews: 15

Rejections: 13

Offers: 2

Summer 2018

While at Okta I continued to interview for internships. I had 2 more co-op slots and I was aiming for Summer of 2019.

Demonware - Vancouver

I interviewed for a cloud team. Their work seemed really cool and they told me they worked closely with Activision. They asked me some topological sort question with a solution involving DFS for dependencies. They also asked some unix trivia. Offer but turned down. My main motivation for turning it down was they were not willing to budge in any capacity when I tried to negotiate pay and length (8 months only). If I accepted I would have taken ~50% paycut from Okta.

Google - ???

I did the coding challenge and 3 phone interviews. the first 2 went poorly but the third one I solved it all and I felt was redeeming enough. I waited (the full) 3 weeks from the hiring committee to hear their decision. They then said no. Rejected

Fall 2018

I moved my co-op to Summer 2019, so I didn’t have WaterlooWorks until Winter 2019. I took this time to apply externally to companies.

MixMax

I used won their API prize at MHacks 10 and I tried use that connection to interview with them. They had a Javascript question and all I remember is the interviewer loudly slurping their bubble tea during the interview. They also asked for a reference letter before giving a decision. Rejected

Yext

I had a phone screen with some conversion of number with bases. I did not solve it. Then I had to debug some program. Rejected

Honey

I had a phone interview. The interviewer asked me a DP question with a knight on a phone dialpad. Solving graphically with backtracking is not hard but visualizing the DP is.. interesting for an interview at least. Rejected

Improbable

I actually liked Improbable a lot. They dealt with distributed systems in gaming platforms like Unity, Unreal Engine, etc. I was still fairly interested in working for a game company in some capacity and I was taking both Graphics (CS488) at the time. I did the phone screen with some intervals and then flew to do an onsite in London, UK. This was my first onsite (and first time EVER going to the UK) I ended up not solving the math-based algorithm question. Rejected

Interviews: 4

Rejections: 4

Offers: 0

Winter 2019

I had WaterlooWorks again to aid me in finding a job. This time I aimed a little higher since I only had 2 more co-ops and I was more experienced.

theTradeDesk - SF

Applied externally. Had a system design question and regular algorithm question. Fairly easy interview and decent compensation. Offer but turned down I was interviewing with Dropbox at the time and I had faith I could pass their interview.

Main Round

Zenefits - Vancouver

I did the interview and I thought it went okay. Not Ranked

Dropbox

Had an on-campus phone screen, coding challenge, and 3 hour interview session. Solved everything except the last question in the 3 hour session. I thought it was good enough. It was not good enough. Not Ranked

Continuous Round

I got Not Ranked from Zenefits and Dropbox so I was forcibly moved to Continuous Round.

Okta - Toronto (again)

I tried to interview again despite them telling me (originally) they did not give me a return offer. Ranked

Ultimate Software - Toronto

They asked some basic stuff like “difference between public, private, and protected”. Not Ranked

StackAdapt - Toronto

I had to solve k-th largest from an array. (thanks Iotex) I was familiar with it this time around. Ranked

Salesforce - SF

Did a coding challenge, (fairly easy) algorithmic interview, and manager interview. Not Ranked

Zenefits - Vancouver (again)

I’m amazed they decided to reinterview me. I did 2 1hr interviews. (fairly easy) algorithmic interviews. Offer

C3.ai - Redwood City

Applied externally. Did multiple rounds of algorithms and system design. Offer but turned down I had to decide between C3.ai and Zenefits and actually chose Zenefits because I felt more comfortable given the conversations I had during the interviews. It is interesting looking back that I turned down “cali” but in hindsight I really enjoyed my time in Vancouver.

Interviews: 9

Rejections: 6

Offers: 3

Summer 2019

While at Zenefits I continued to interview. This was also my last time using WaterlooWorks since my last co-op was Fall 2019. This is from applying externally and using 50 jobs on WaterlooWorks.

Salesforce - SF

Emailed the recruiter. Did a coding challenge, (fairly easy) algorithmic interview, and manager interview. Not Ranked

Amazon - ???

Did a coding challenge, (fairly easy) algorithmic question and behavioural interview. Ran out of spots (lol) They said I passed the interview but ran out of spots. They also told me I couldn’t defer it to a later term like what Google does.

LinkedIn - Sunnyvale

I was put in the UI track and I thought it was a mistake. I was going to contact the recruiter but I forgot to and just did it anyways. Did 2 1hr interviews one focused on UI. The algorithm interview one was trivial but UI one I struggled with since I didn’t know any UI. I actually felt this was the worst interview of my entire career. I was so incredibly nervous cause I didn’t know what “dom bubbling” or “fragments” were. Then manager/team host matching. Offer

Interviews: 3

Rejections: 2

Offers: 1

Fall 2019

I continued to interview while at LinkedIn. My initial goal was to co-op in Winter 2020 and Summer 2020 since officially I was only given 5 co-ops from CECA. This section I’ll also disambiguate between intern and full-time (ft) interviews.

Lime - SF - Software Engineer Intern

Rejected after HR phone screen. Rejected

Jane Street - New York - Software Engineer Intern

Rejected after technical phone screen. Rejected

Stripe - SF - Software Engineer Intern

Did a coding challenge, and phone screen. Had a virtual onsite for 2hrs. More practical implementation questions opposed to algorithms. Rejected 2 weeks later. Rejected

Impira - SF - Software Engineer Intern

Did a few algorithmic interview rounds when they were still in stealth mode. Rejected

Figma - SF - Software Engineer Intern

Did onsite in SF. Solved all questions. Weakest aspect of my interview was the formal system design. Rejected

Palantir - Palo Alto - Software Engineer Intern

Did onsite in Palo Alto. Solved all questions. Weakest aspect of my interview was the formal system design. Rejected

Dropbox - SF - Software Engineer Intern

Did onsite in SF. Solved everything except the last question in the 3 1hr sessions. I thought it was good enough. It was not good enough. If you want to know how painful it was, it was the same problem that stifled me the last time I interviewed at Dropbox. Rejected

Yelp - SF - Software Engineer Intern

Did coding challenge and 2 rounds of interviews. Offer but turned down

Splunk - Vancouver - Software Engineer Intern

Arrived 15 minutes late due to a meeting that ran over time. All behavioural at the first phone screen. They were not happy. Rejected

Memsql - SF - Software Engineer Intern

Did a few phone interview rounds. Struggled to solve most of the questions. Rejected

Pure Storage - Mountain View - Software Engineer Intern

Did a few phone interview rounds. Solved all the questions. Rejected

Flexport - SF - Software Engineer New Grad

Did coding challenge and virtual onsite. Solved all questions. They said I passed the interview and would love for me to join their teams. Ran out of spots (except this time it was not nearly as funny) -> Rejected

Robinhood - Menlo Park - Software Engineer New Grad

Did a coding challenge and onsite in Menlo Park. Solved all questions. Weakest aspect of my interview is formal system design. Rejected

A Thinking Ape - Vancouver - Software Engineer Intern

Did one phone interview round. Solved it completely with extra time to spare and explanations. Rejected

Databricks - SF - Software Engineer New Grad

Did phone screen and onsite in SF. Rejected due to not solving assembly question about pointers and memory assignment. No algorithm questions were asked it was all implementation. Rejected

Axon - Seattle - Software Engineer Intern

Did phone screen with easy algorithm question on backtracking. Offer but turned down

Asana - Vancouver - Software Engineer New Grad

Did phone screen and had easy algorithm question. Weakest aspect of my interview is formal system design. I got rejected due to not system designing chess very well. Rejected

Bounce - Kingston - Software Engineer Intern

Did phone screen that was all behavioural. Was asked if I could work weekends and work part-time once I finished the internship. I’m not sure how I’m supposed to answer that without seeing the work first. Ghosted after but I’ll count as rejected

Interviews: 18

Rejections: 16

Offers: 2

What does this all mean?

Nothing. This is just my experience. Some people get lucky with interviews, some people don’t. This may seem like a lot of interviews but I applied to over 150 places for Summer 2018, 300 places for Summer 2019, and was constantly applying everywhere. If you are experiencing failure realize that we all face that same adversity. For a job, you just need one place to work out.

Totals: (across all time periods)

Interviews: 49

Rejections: 41

Offers: 8