Skip to main content

Stop Whining About Interviews and Fix them, yourself

In this day and age of tech talent shortage a week doesn’t go by without someone complaining about a
“dumb interview” or “I will never work for these guys because of the interview” rant.  If you are an outsider in the tech industry you might think that engineers are subjected to some kind of hazing to make it into the “brogramming fraternity.” The truth is actually far from it. I will help you change your mindset in a way that will fix your next interview and make it a very pleasant one.

Here is the biggest issue that almost all of the engineers have when they are going to interview with a company: they think that interviewing is similar to passing a test.  It is not like passing a test.  It’s a bi-directional exchange of information.  When you take a day or an afternoon to interview with a company you need to figure out whether or not the team and you are a good fit for each other.

Now that you are armed with this profound knowledge (kidding) you should be absolutely fearless not only to go through any interview, but also to adjust the flow of the interview to accomplish this mutual goal.  First of all you need to understand that a company putting together an interview actually wants to find a good engineer and because they have scheduled 3-8 hours with their team they hope that it’s you.

In a nutshell a good engineer has the following characteristics:
1) has relevant experience or other indicators that he/she can contribute to the mission of the team
2) is not a drama queen
3) has a working style that works well with the rest of the team

I know that there is a bunch of hackers jumping from their beanbags right now who want to tell me about how they best hack at night and that only if someone was more “flexible” they could show how genius they are.  You guys can sit back into your beanbag and understand that while there is a subset of problems where you can go at it alone – most of the serious projects require coordination and collaboration with a larger team.  That is why during the interview process the company wants to know whether you are going to be a person who creates drama or who just can’t mesh with the rest of the team.  If you are that person it doesn’t mean you don’t deserve a software job, it just means that maybe you need to be in a different environment.

I also talked about skills.  Yes, during the interview process, however short it is, you need to be given a chance to prove that you will be able to code/test/design.  It’s very hard to assess that because a serious coding task takes more than an hour.  That is why people who will code for work are getting questions about reversing strings or searching through an array.  It’s one of the quickest ways to figure out if someone can actually write some code.

There is another huge mistake that a lot of engineers who interviewed with me and didn’t get hired made – they never really dug into what they are interviewing for.  The bi-directional conversation assumes that while a team is evaluating you to be a good fit, you have also done your homework and think that you actually fit the requirements that help this team accomplish its goals.  Anyone who has not done the homework sends the following signals: “I don’t care about this job” or “I generally don’t think very far into the future”.  Either way it’s obviously not a good fit.

Now we are facing another issue – a bunch of people who had very little interview experience are interviewing and they ask you some dumb question like “how do you tell which light bulb was on in a room that you never entered.”  Here is how you deal with that: it is absolutely OK to ask the interviewer questions back.  You can say something simple like: “hey that seems like an interesting problem, but we only have an hour and you are hiring me to do Java development.  In my 5 years of Java development I never had to figure out light bulbs, what I did do is debugging, identifying memory leaks, refactoring legacy code, migrating data… etc., would you be interested in talking about that instead?”  If the interviewer insists that you still have to do light bulbs then do the best you can, but take note that here is a potential team member who tries to assess you by inference instead of asking you directly about things that matter for this position.  Is that a sign of a good team?

Last thing that I want to tell everyone is that technology is hot right now.  It’s one of the most desirable jobs to be in.  A lot of people who are not passionate about it or don’t really know it are choosing to do it for the perceived payoff.  They are getting resume coaching, interview coaching, they are buying books on how to do coding puzzles and such.  As a person who is making the hire/no-hire decision (something that I had to do for the past 12 years) you are trying very hard to separate good from bad.  The costs of making a mistake sometimes are pretty huge.  I’ve given people a little slack when it came to proving their coding skills and almost always regretted it.  Because we made the wrong choice we have invested months into people and told other qualified candidates that the position was filled.  If you have examined the company, the job requirements and asked the relevant questions to make sure you can have a long and prosperous future with the company - say so.  It’s not begging or bragging.  It can be something simple like: “From what I saw I think I am a good fit for this because… “ – that goes a long way!

Thanks and Good Luck!

Shameless Plug: I am always looking for good people to help build out my team.  If you are interested in talking – get in touch with me via LinkedIn or Twitter.


Popular posts from this blog

SDET / QA Engineer Interview Checklist

After interviewing and hiring hundreds of engineers over the past 12+  years I have come up with a few checklists.  I wanted to share one of those with you so you could conduct comprehensive interviews of QA Engineers for your team. I use this checklist when I review incoming resumes and during the interview.  It keeps me from missing areas that ensure a good team and technology fit.  I hope you make good use of them.  If you think there are good questions or topics that I have missed - get in touch with me! SDE/T or QA Engineer interview checklist from Mike Borozdin If you like this checklist you might want to check out these posts: Emotional Intelligence in Software Teams   and  Good-bye manual tester, hello crowdsourcing!

Code versus Configuration

At Ethos we are building a distributed mortgage origination system and in mortgage there is a lot of different user types with processes that vary depending on geography.  One of our ongoing discussions is about how much of the logic resides in code vs. being in a workflow system or configuration.  After researching this topic for a bit, I have arrived at a conclusion that the logic should live outside of code very infrequently, which might come as a surprise to a lot of enterprise software engineers. Costs of configuration files and workflow engines First thing that I assume is true is that having any logic outside of the code has costs associated with it.  Debugging highly configurable system involves not only getting the appropriate branch from source control, you also need to make sure that the right configuration values or the database.  In most cases this is harder for programmers to deal with.  In many FinTech companies where the production data is not made readily acce

Intuitive Programming - Comments

Comments are a topic of vibrant discussion.  Ever since programmers could leave some text in the program that was ignored by the machine the debate started: “what’s a good comment, what’s a bad comment, why comment?” There are endless instructions to programmers that say many of the following things: 1) Describe your function! 2) Don’t write in the comment what you wrote in the code. 3) Tell people why you are doing what you are doing. What I think has been missing from this discourse is the audience for comments and through those audiences there is intent.  The code is being read, skimmed or analyzed by people and tools.  So what are the audiences and reading modes? 1) Maintaining and enhancing the code 2) Skimming through the entire module or file to figure out what the overall structure is 3) Reviewing the test files to check out the test coverage and edge cases 4) Seeing the docstrings of functions while being in a separate file altogether 5) Reviewi