Technical Interviews: The Good, the Bad, and the Ugly
Interviewing for jobs in college can be very challenging and time-consuming. Technical interviews (i.e. interviews with questions specific to technical details of a role) have an added air of mystery that can make these interviews even more stressful.
As I near my graduation date, I decided to reflect on my job interview experiences throughout college. I want to preface this with some discussion of my circumstances. The University of Illinois, like many engineering schools, offers students many opportunities to meet recruiters and interview. I am tremendously grateful for this environment and it has definitely pushed me to do better.
This is a story about my interviewing experiences. To start out, I attempted to tally the number of interviews I have undergone throughout the last 4 years.
Freshman year: 7 Interviews
I went into my freshman year ready to apply anywhere and everywhere, and I think I came close to that. There was a period of time where I applied to 10 jobs every single day. When I attended the career fair I talked to every single company that hired computer science students. Probably around 40% of them even bothered to engage with me and of those companies, only around 50% of those interactions were NOT horribly embarrassing. I remember very clearly being asked how to reverse a string (which is something most computer science students learn in their first week, if not hour) and fumbling awkwardly until the recruiter had the good sense to put me out of my misery (“The line looks pretty long, so we will get back to you.”)
During this period of time my inbox looked like this:
I could say that I knew my chances weren’t high, so these rejections didn’t affect me very much, but the truth is they did. Every time I received another email, I went into self doubt mode (“Why did I think I could do computer science?”). To be honest it really sucked.
After a lot of time, many redone resumes, and several panicky phone calls to my mom, I was able (and very thankful) to get two interviews, one of which turned into an internship for the following summer.
In addition to my job search, that year, I interviewed for some student organizations. In total I racked up 7 interviews that year.
Sophomore year: 10 interviews
My sophomore year I studied abroad in Madrid, Spain and conducted a series of awkward and often stressful technical interviews via long distance calls. Being out of the university environment, I tried several creative tactics to get interviews. I googled companies, found recruiter information on LinkedIn, and even tried emailing a couple Spanish companies.
That year I did get an interview for one of the companies I absolutely idolized as a sophomore. I did not end up getting the job, but I remain very thankful for this interview because it made me feel like I had a chance to work for one of my dream companies, which at the time was kind of like that scene in Cinderella when she tries on a pretty dress for the first time.
Perhaps my most memorable interview experience that year was when, in a terrifying twist of fate, I managed to lose my iPhone on the London Underground and my laptop on a train to Paris the next week and was left terrified and technology-less for an interview, which as a computer science student felt kind of like being on a bad reality show.
I ended up renting both a flip phone and a chromebook for the interview, which somehow worked fine. I received an offer from a company that was very different from the company that gave me my first internship. That semester I did 10 interviews.
Junior Year: 50 Interviews and a lot of taco bell
My junior year was a flurry of interviews. It seemed like I spent whole weeks of my life submitting online applications, following up, and then when I actually got people to talk to me, doing informational calls, technical interviews,more calls, and more. My spotify playlist was pretty much a nonstop series of pump up songs. Huge shoutout to Beyonce for telling me I could make it through this time of my life.
During that year I felt a good deal of pressure to get an internship opportunity I really liked. This was a very stressful time for me, and if I had to do it again I would do fewer interviews for my own mental health.
That year I did several interviews with a company I adored. One of them went well, until I was asked how to handle an edge case. I fumbled over my words and was unable to think of a solution until the interviewer finally cut me off: “It’s extremely simple. Simply append a -1 to the beginning of the list. That will handle it easily. I have to go now, thank you for your time.” I somehow managed to get a second interview, which actually went pretty well. Then I was told that they didn’t have enough information on me to make a decision, so a third interview would be necessary. I told myself this was the one, hyped myself up, and told myself I was going to nail it.
I was rejected a couple days later. I was asked about how to optimize a program for computing exponents. I did okay, but not well enough. The stress continued.
In total that year I did 35 phone interviews and 14 in person interviews. I got rejected a lot that year. And while all rejections hurt, I would say that rejections after interviewing a few times and thinking that you might have a chance hurt worse than not being given interviews. I could say that by then I had learned to brush these off, but I did not. They all pretty much sucked. Every time I received an email saying that they would be moving on with other candidates, I wanted to crawl under a rock.
I remember very clearly being rejected from a job I really wanted after an interview I thought went well and outright crying. I felt like I didn’t know what I was doing wrong or if I would ever get better.
Talking to my friends (and my mom) really got me through this time. I remember calling my mom distraught and unsure of what exactly to do next. She reminded me of the bigger problems that exist in the world and told me to eat some ice-cream and get back to it.
She was right, it did get better. I accepted an offer for a company I honestly had not known anything about before, which turned out to be an awesome experience.
At this point I had a grand total of 66 interviews.
Senior Year: 43 interviews
My senior year I already had an offer, but I still wanted to go through the interviewing season just to be sure. Early on, my interview process senior year was a lot better than previous years, mostly because I decided to give myself a break. I bought myself a candy bar every time I interviewed (and several other times as well, fine) and resolved not to be too hard on myself.
That being said I still did a good number of interviews. I did 23 preliminary interviews and 20 in person interviews (spread out over 4–5 onsite visits). I had a total of 43 interviews by the end of the year.
In total over my 4 years in college I accumulated 109 different interviews. In addition to the time I spent traveling, studying concepts, doing mock interviews, and stressing out, which ate up hours of my life, this is a huge amount of time.
After all this, I have some reflections to share.
Fear of Missing Out (“FOMO”)
I got a little better at avoiding “FOMO” my senior year, mostly out of necessity. My junior year I literally took every single interview opportunity I was given, which took a serious toll on me. My senior year I did a better job of filtering out job opportunities, and even turning down onsite interviews for companies that I didn’t feel were right for me. I think this was an important lesson for me.
My junior year I interviewed with a few companies that I didn’t have a huge amount of genuine interest in. And I got rejected by several of these companies. Getting rejected for a job that you weren’t super excited about sucked just as much than getting rejected for jobs that I did really want, so I decided to save myself the trouble the following year. It gave me the time to focus on the interviews that were super important to me.
“We just want to hear your thought process.”
This is the technical interview mantra. Interviewers probably say this to comfort you, and it is comforting at first: “I don’t need to get the right answer, I just need to show my thought process.” But it can be extremely upsetting if you don’t make it through — it’s like “Wait, does this mean my thought process is broken?” It took me until this year — my senior year — to see the value in this principle.
This year in onsite interviews I received questions I just did not know how to approach. I was forced to “show my thought process” because I was not sure how to find the answer. Interviews are really short (most are 45 minutes) so it’s easy to panic when you feel like you don’t have time to complete the question if the solution does not click right away. This (stressing out) has happened to me a lot, and eventually I got better at handling these questions.
I learned to take a breath, ask a whole ton of questions, and get enough of a handle to start developing an algorithm. I learned how to show my interviewers what I did know even when it wasn’t all that much by explaining what was going through my head. And this year, I even ended up passing interviews like these when I didn’t even arrive at a complete solution.
Advice on Interviewing
There are lots of excellent books and resources on the skills of technical interviewing. From my experiences I offer the following 3 pieces of advice:
- Log your interviews. I started keeping a log of interviews with a summary, including what I thought went well, and what I could improve. After logging an interview, I put it out of my mind. This helped me stay sane. Keeping this log mainly taught me that I have no ability to judge my performance in an interview. I walked out of interviews where I was 100% confident that I failed and seemingly miraculously moved on in the process. I’ve also done interviews that made me extremely confident and ended up getting rejected. The reality is: I really can not tell.
- There is no substitute for practice. I did a lot of practice interview questions my sophomore year and even did mock interviews with my friends, but I think my skills only really began to improve after the hours and hours of actual interviewing I did my junior year. Nothing compares to the adrenaline and pressure of a real life interview.
- Go in with an open mind. Do not idealize companies — regardless of what you have heard, you do not really know if it will be a great fit for you. In the same way, there are many fantastic products, people, and places out there that you might not have even thought about.
- Interviews are a two-way street. It can be hard to remember when you are just trying to impress your interviewers, but you are there to interview them as well. Ask about what actually matters to you (for me that was team placement, career growth, and yes, the coffee machine #sorrynotsorry).
- Do not obsess. I was obsessive over my interviews. I would frantically refresh my email to see the result of a technical phone interview. I moved interviews back to get a couple more days of studying in. I was distraught after several interviews that I thought probably didn’t go well (many of them didn’t). All of this was useless. Unfortunately I think this is a lesson that can only be learned with time, but do not freak out. Learn to “close the tab” and move on to your regular life.
During my senior year I agonized over my job decision and probably put myself through a lot of unnecessary stress in the process.
When it came down to it I think I had a pretty clear gut feeling for where I wanted to work for a while. But there were 9,000 little thoughts running around my head making it more confusing. Some of them were useful: “Is a bigger or a smaller company better for me personally to start out my career?” and others were definitely not: “If I move somewhere with less than 60 days of sunshine am I going to need a sun lamp and vitamin D supplements?”
In the course of my decision-making process there were three pieces of advice that helped me:
Advice on Decision Making
- Do not make decisions based on what you think someone else would/should have done. A keynote speaker at Start at a Startup said this, and I think it’s great advice. My senior year I got an offer for a company I had idolized throughout college. My freshman year I would have turned down a lifetime of free chocolate chip cookies to work there. But by my senior year, my goals had changed and the specific opportunity wasn’t right for me anymore.
- This isn’t the end of the world. Much like deciding where to go to college, picking your first full time job feels like the end-all be-all, but it’s just not. There will be other jobs.
- The product, location, people, or perks alone do not make the job. In technology, it’s very easy to fall in love with a product. But the truth is, even if Taco Bell offered me the role of Chief Scientist of Taco Technologies, if I hated the people I worked with this wouldn’t be a good job at all. Similarly even if I got to work with my best friends on creating nouveau salads I would still hate my job. Decide what you care about and stick to that.
- Interviewing will help you figure out what you want. Even though I went into the recruitment season with an offer I liked, interviewing made me a lot more sure of my final decision and also confident that I can cope in a real life software engineering technical interviewing environment.
Looking back on it, much of the time I spent searching for and interviewing for jobs in college was pretty hellish. I was a sleepy, nervous wreck for whole weeks out of the year and certain rejections took big tolls on my self-confidence, but it was worth it.
I got better at communicating, negotiating, and handling myself in tense situations — all of which are valuable skills. On a less definite level, interviewing made me into the person I am today. My sophomore and junior years interview season took a hit on my self confidence that lasted for a while. But when I wrapped up my last technical interview and made my final job decision this year I realized that I felt confident. I felt that I had done my best and I didn’t feel the need to agonize about my solution, obsess over the company, or keep thinking about it at all. More than anything else, this made all the interviews I have done worth it. I got better at interviewing, and I also learned to give myself a break.
Some worthwhile resources
- Cracking the Coding Interview by Gayle McDonnell
- Programming Interviews Exposed by John Morgan
- I interviewed with a startup and decided to google the name to do preliminary research beforehand. I thought I was interviewing for a company that made weather-monitoring technologies and the real company did surveillance for contractors. It quickly became obvious that I was unfamiliar with the real company’s work and the conversation ended shortly after that.
- I received an email telling me that my interviewer had enjoyed his conversation with me and assumed this meant that I had progressed to the next round. The recruiter asked to do a quick chat to catch up and after we got on the phone, rejected me. It took me 4–5 minutes to realize what was happening and at that point I was so embarrassed at my misunderstanding I just ended the call pretty hastily.
- A recruiter from a company I really liked told me that she was finishing some things up and would get back to me soon with good news. I followed up with her in two weeks and she gave me a similar response. At this point I was working with an offer deadline. After another week passed I emailed the company’s head recruiter who directed me to the recruiter I had already talked with, who gave me the same response. Finally I decided to let it go and accepted a different offer. I never received any information from the company after that and I felt really silly for bringing the head recruiter into it.