By: Ben Weiss
There’s no doubt that the interview process can be daunting, especially for highly technical positions. Moreover, without knowing how one’s development skills will be evaluated, candidates often don’t prepare correctly and end up getting slammed – even if they could have succeeded with better foresight.
Luckily, for those looking to apply for IT jobs, CareerCup is here to add more transparency to the IT placement process. Founded by Gayle McDowell – a rockstar programmer and former employee/hiring authority for prominent technical companies out like Google, Microsoft and Apple – CareerCup was created as a way to funnel McDowell’s experience in the industry into a forum that IT candidates could use to more realistically prepare for the interviews they’d be facing.
And now that CareerCup has evolved into a comprehensive interview prep hub, McDowell was kind enough to sit down with Infusive Solutions to discuss best practices for preparation, interviewing with non-technical professionals and creating a support system for female programmers.
Infusive Solutions (IS): What are a few common reasons that potentially qualified candidates fail in programming interviews?
Gayle McDowell (GM): There are a number of common things that can go wrong. One is when a candidate has heard that a technical interview is really hard, so he/she tries to learn really complex algorithms. But, that’s not what we’re looking for. We’re not looking for people to regurgitate algorithms. We’re looking for people that have problem-solving ability and that’s not about being able to spit out knowledge.
Then there are also people who get a problem-solving question and are completely stumped – they don’t even try. Or they’re thinking they’re stumped and sit there completely silent, getting increasingly nervous, because they thought they were expected to immediately get the right answers. And that’s far from the truth. A difficult question may take even a great candidate 20 minutes to solve.
Many top tech companies are looking generally for problem-solving ability and coding skills, rather than specific knowledge. So candidates who think that they just need to know the answers are not getting it … they’re not getting what these interview processes are all about.
IS: Can you comment on the importance of diverse interview preparation (practicing whiteboarding, coding/debugging by hand etc.) when it comes to thriving in programming interviews?
GM: When preparing for programming interviews, candidates need to focus on coding with pen and paper because in the interview, they’re usually not going to get a computer. So it’s important to learn coding freehand, because otherwise, you won’t realize how much you’ve forgotten without the assistance of code completion and syntax highlighting.
IS: Is there a difference between what it takes to succeed in a programming interview for a tech company versus firms in other industries?
GM: There is a little bit. One of the things we see is that the top-tier tech companies – Microsoft, Google, Amazon – they’re all about problem solving and coding skills … that’s their core focus.
But, when you have a developer interviewing at non-tech companies - particularly the larger ones - they’re also looking for problem solving and coding skills, but they’re looking more at actual knowledge. They’re more likely to ask you language and knowledge-specific questions.
By contrast, the major tech companies don’t care as much about your knowledge of particular programming languages.
If you look at interview questions for, let’s say, Goldman Sachs, you’ll find they’re a mix of slightly easier Microsoft/Google style problem-solving questions and questions that are very language specific.
IS: There are many hiring managers out there who put forth that if they do their job correctly, programming candidates should have no clue whether they did well or poorly in an interview. Is there any way for candidates to get around the ambiguity and avoid some of that post-interview anxiety?
GM: Not really.
When an interview is more knowledge-based, it’s easier to assess if you did well or not and you’ll get the idea that if you’re going to get an offer, you should have known the answers to what you were asked.
But, when we’re talking about problem solving questions, candidates typically assess their own performance based on either how much they struggled with an interview question or based on how the interviewer treated them.
The problem with that though is that candidates are going to be assessed on how other candidates did on that same interview question. So from an interviewer’s perspective, if a candidate answered a question ‘quickly,’ the perception of ‘quickly’ is only based on how long it took other people to solve it. That means it’s impossible for candidates to know whether they answered it well, because they don’t know how other candidates solved the same problem. So that method of assessment doesn’t work at all.
The other way people look at it is to think, ‘the interviewer seemed really happy with my solution and seemed to really like me, so I must have done well.’ The thing is, you’re going up against other software engineers who may not be the best interviewers themselves … and they may not have great, bubbly, happy personalities. So, how much an interviewer seems happy with you has so much more to do with their personality than your performance. There’s no reason to assume that the interviewer will be nicer because you’re doing well. If anything, the interviewer may be harsher if you’re doing well because they want to push you more.
IS: One of the issues with securing a programming position is that candidates may need to explain their qualifications to non-technical people (HR, recruiters etc.) in the hiring process. With that in mind, what are some best practices for technical candidates who will need to present their skills and background to diverse audiences?
GM: I think one of the hard things here is you don’t know whether your resume is going to be read by an HR person or an engineer. So you need to make your resume accessible to people who are technical and those who are not. Part of that is about showing impact. Developers are going to know that certain types of problems are really hard. A recruiter doesn’t necessarily know that. But, they can understand impact. They can understand hours per day saved by an optimization an engineer developed, they can understand dollars saved. So it’s about striking that balance.
When preparing, practice talking to your parents, to your siblings or your friends who aren’t technical and try the “situation-action-result” model – an approach through which you explain a situation you were in, the action you took and what the results were. With that strategy, a candidate can practice talking about how specific results were impacted by actions he/she took in ways that aren’t technical as part of the preparation.
The key is to practice your story in both ways [both technically and non-technically]. But, if you’re told who you’re interviewing with, you may be able to look them up in advance or at least ask whether it will be a technical interview or not.
IS: You’ve written articles about why we need more women in technology and the stereotype that women get tech jobs based on their gender rather than their skills. With that in mind, how do you think all your work and resources move the needle forward for women in the technology industry?
GM: It’s tough. People look at why there aren’t more women in technology, and what they’re missing is that there is an entire culture that pushes men towards technology and not women, and trying to change any one thing just doesn’t do much … you’re not going to change the culture with one thing. There are so many factors from the fact that video games are violent and may appeal more to little boys than little girls, how teachers treat girls in high school … there’s so many things in society that it’s a really hard issue to change.
But, one thing that people can do more actively is – while it may not change the culture, but could make a difference on an individual basis – is recognize that on average, women tend not to be as boastful about their skills and tend not to be as confident in general, and to recognize that when a women says ‘hey, I don’t know if I’m good enough to interview for this company,’ to maybe push them a little bit more. To tell them that they are good enough.
IS: CareerCup provides serious insight into the hiring processes of tons of companies across industries. With that in mind, what kind of feedback do you get from employers whose interview strategies are now widely available?
GM: Positive. Some people do think interview prep is cheating, but most companies realize they need candidates to be more prepared and part of that is having more transparency. When I get negative feedback, it tends to be from smaller or non-tech companies that provide written tests because those questions pop up on CareerCup. But, when I’m asked to take them down, I do.
For those companies though, they probably shouldn’t be using the same interview quizzes over and over. Whether they’re on CareerCup or not, someone is going to post these interview questions and candidates will find them out. If nothing else, friends will share them with one another.
Not to mention that companies need candidates to be better prepared because many of them are struggling to fill open technical positions.
Real questions: The site has sourced tons of actual interview questions from a wide variety of companies in different industries and of varying sizes.
Videos: CareerCup offers unrehearsed videos of technical candidates performing in the interview process. Enabled with pop-up commentary, the videos show what is going well, poorly and what’s on the interviewer’s mind.
Mock interviews: Taking a step beyond the videos, these mock interviews place technical professionals on the hot seat to help them get past the hurdles of the interview process and into a new programming position.
Resume editing: Creating a resume that does justice to a programmer’s experience and skills is difficult, so CareerCup provides help with refining resume issues both large and small.
The Google Resume: Excellent resource that shows students interested in development how to prepare while in school and helps IT candidates understand how to stand out from the competition.
Cracking the Coding Interview: A highly technical resource that provides IT candidates with the skills needed to succeed in development interviews.
Infusive Solutions Inc. is a niche technical recruiting firm within the Microsoft Partner Network dedicated to helping clients hire IT professionals and taking our candidate’s careers to the next level. Join us on Twitter and Facebook.