Back Story

The past year I applied to nearly every internship opening I could find related to computer science, such as application developer, software engineer, etc. At one point I had over fifty open applications on the career website I was using and I easily applied to over a hundred over a two month period (I tried to do 2 – 5 a day). Total I had sixteen companies interview me over the phone, and twelve in person interviews. Further, I declined at least ten other interviews with companies once I accepted an offer in November 2013. The total number of interviews does not include various conversations with recruiters outside a designated interview or the hundred or so “elevator speeches.”

Through all of those interviews my sole thought was “would I like to work for this company?” I was not really worried about finding an internship because I had an offer within a couple of weeks. Rather than accepting I “chained” my offers ensuring I always had an offer and continued interviewing. Even after I had my choice internship I continued because I wanted to practice interviewing, increase my potential earnings, and to decide what I valued in a company (i.e. what piqued my interest).

First Impressions

Who is conducting the interview, is it HR, a Developer/Engineer/Programmer, Manager?If for example you have a sole interview with someone from Human Resources (before an offer) the company is much more likely bureaucratic than a company which gives you one interview with a developer (i.e. is technical). In the later case, the company enables a team member to determine whether or not they would work with you, and in the first case someone apart from the team is making a decision for the team. This is not always the case, but as a general rule I feel it holds. How is the interviewer dressed?An interviewer will likely dress how he/she would dress for a day of work (perhaps a bit nicer), if it’s a suit and tie it is a formal workplace (meaning a dress code) or if he is just wearing a jeans and polo it is a more relaxed atmosphere. Being required to wear a suit or being able to wear jeans does not necessarily mean it is a “good” or “bad” place to work. For example, NASA requires you to dress decent (i.e. at least a button down), but many find it an excellent place to work. Does the interviewer seem as if they wish to be there?I am sure conducting (some) interviews can be a drag. However, if I meet someone who simply does not wish to be there; they are either being forced, had a bad flight/drive, or are just having a bad day. In any of the cases, an interviewer which seems disengaged it does not bode well for you. Either he is having a bad day or you are boring him/her. Worse yet, if the company is forcing an employee to conduct interviews and the interviewer is disengaged, the employee is damaging the company and not taking his job seriously (do you want to work for a team like that?).

Technical Questions

View the code on Gist.

Output: “!smroW ,olleH”

github

The above (more or less) was given to me in two “technical” interviews. A “technical” interview question which every computer science major should know, however there were two graduate computer science majors (of five) who were in the interview with me who did not know the output. To be honest I was shocked, what did they spend five years studying and did they code at all? After speaking to them after the interview I discovered that their “computer science” program focused almost explicitly on mathematics and they had coded very little to none in the past two years. Perhaps a simple coding question does tell you a lot more about their skill level than I thought…

Technical questions usually consist of the type of work you will be doing. If you see the above and you understood instantly what the code was doing the job will likely be way too easy and may not even involve coding. On the other hand, technical questions regarding data structures, algorithms, etc. implies a more intellectually stimulating job. More over, when you are asked difficult questions you are more likely dealing with higher caliber interviewers and in turn a more skilled software engineer/developer/programmer/etc.

If for example you are asked the following, you know you are dealing with a much more stimulating job:

There are ten floors, each with the same number of people living on each floor. There are three elevators and no stairs. How do you allocate the elevators for optimal(ish) performance, minimizing waiting time for each floor.

I will not dive how to solve this problem, but in essence the interviewer is likely interested on how a solution is formed rather than the “optimal” solution. For example, drawing a picture, discussing with the interviewers, etc. will be more important than forming an explicit solution. Even saying something such as, “have two elevators service five – ten and one service floors one to four,” may be close enough. However, the above question will both tell the interviewer more about how you solve problems and tell the you, the interviewee, that the job is more intellectually stimulating.

Projects

When an interviewer takes the time to examine your projects and github repos it can save a significant amount of interview time, but it also signals that GPA is likely less important than projects. For those who have a significant number of projects this can be a big advantage. It also lets you know that the company is more interested in results, than how you look on paper. Since many large technology companies[1] are not interested in your GPA, and the data supports that it has little correlation to how successful you will be (at least according to Google)[2], You should be wary of any company that asks for your GPA. The company in question probably is not up to date with modern research/data, ignores data, or is slow to change.

Paper Work

Often the amount of paperwork an interviewer requests (i.e. transcripts, test scores, etc.) can signify what the company values and the level of bureaucracy. For example, one company had me send transcripts, test scores, take two technical hour long phone interviews, an hour long IQ test, an hour long EQ test and finally tried to make me take a three to four hour test online. Somewhere into the first hour of the online exam (proctored by ProctorU) I simply left. It was way too much effort to put into a single application and made it clear they had too may hoops to jump through.

Point being, if a company cannot decide after two technical phone interviews, an IQ and EQ test, reviewing your transcripts, test scores and your projects that they want to meet you in person or are ready to hire you just walk away. Either the company is incapable deciphering your ability, has too much bureaucracy, or cannot communicate internally, in any case it is a company to avoid.

Most Importantly

Every person has their own goals. I was searching for a job which enabled me to make the most money and position me to obtain an excellent job in the future. Given my goals, I believe I chose correctly by choosing Capital One. However, if I was looking to live in San Francisco or to learn a ton, I would have chose a different company. Some people want respect and General Electric, Google, Goldman Sachs may be better companies to work for, where others may want a thrill and a startup may be better.

All I suggest is examining the interview process closely and ensure it is conducted in a manner you prefer, because the company culture will often reflect in interviews. I also suggest asking well thought out questions, remember you are interviewing them as much as they are interviewing you! For some possible questions feel free to visit here.

Recent Posts