CSE40175: The Interview Process
The job interview process is a hard and stressful one. Especially for computer science jobs, the process not only requires some luck and knowledge, but also the ability to perform under pressure. Many people find this process frustrating, many people find this process unfair. I will share some examples of my job search and discuss my opinion on the effectiveness and ethics of the typical tech-job interview.
For me, my job search begins by looking through listings on either GoIrish or some other job board. If I see something I like, I submit my resume and cross my fingers for an interview. I understand that this may not be the most efficient way to get a chance at an interview for the response rate for “random” resume-drops are fairly low, but the job market for programmers is big enough that if you submit enough resumes, you are almost guaranteed a phone call or two.
After your resume is selected, usually an HR recruiter sets up an first round phone interview. For me, this process mostly involves resume and behavioral questions that are rather straight forward. Sometimes, the recruiter may ask some technical questions such as big-O and sorting algorithms, but given the background of the recruiter, your answers do not need to be too thorough to get a second interview. Despite the “easy-going” nature of this first round interview, it is a process that I dislike the most. For me, the behavior questions are rather annoying. Furthermore, I seem to always get the recruiter who was too busy or too sick and forgot to call me. Not only does this waste my time as I sit there waiting for a phone call that is not going to come, but I have to reschedule the interview, something that I want to get out of the way.
After you get past the initial phone screening, there is usually a technical round. For me, most of these occurred over a video chat service like Google hangouts or Skype. During these interviews, not only do the interviewers grill you on programming concepts, but they expect some live coding as well. This part of the interview process is the most stressful for me. As a person who sometimes can get flustered under pressure, my mind will sometimes go blank during the live programming part. However, I found that the more times I go through this process, the easier it has become. Furthermore, using resources such as LeetCodeOJ and Interview Cake have really helped me prepare. In my opinion, live programming, like standardized tests, may not be the best way to determine a good candidate due to the variation in each person’s coding style. However, I believe it is the most fair and practical way to pick a “good” coder, given the time and resources a interviewer has.
For most of the companies I have interviewed with, the technical round is the final round of the interview. However, there were some companies with a third round of technical interviews to allow the interviewer to get a better grasp of your programming ability. After the final round comes the waiting game. I have waited as little as two days and as much as 3 weeks to get a response. It is understandable if a company, especially a large one with many applicants, to take a bit longer to respond. For me an ideal time range would be a response within one week, however I find it fair and ethical if a company needs up to three weeks to make a decision.
I hope I gave some interesting insight to the tech interview process. I think the process is a hard but fair one and like many other things in life, a little preparation goes a long way.