Sunday, May 18, 2014

The Dreaded Software Job Interview

I was at a job interview the other week. It's something I dread. It's like taking tests in college, I just freeze up over the easiest of technical questions. I practically have to start counting with my fingers and toes. Also, while my brain freezes, my mouth starts to run, talking about all the observations and strange things that occur in the software industry and in my current job. These observations are sometimes perceived as painting me as being a maverick, someone who bucks the system, someone who is not optimistic and can drag a team down. This perception can't be further from the truth.

Many companies do a terrible job at evaluating candidates - and I'm talking about both small and mega companies. In a typical interview, there is usually the "How would you move Mount Fuji" type questions. That is, they want to see your thought process in approaching and attempting to solve an impossible task. For me, the problem is not the question, but that it's asked in a highly stressful situation. So in a sense it's a stress test. Here's the problem with a stress test for software engineering candidates: it's not reality. Good software choices can never be rushed and good software practises never come out of a stressed, quick-turnaround environment. Good software takes research, collaboration, a lot of rework, a lot of testing, making trade offs and back-of-the-mind, secondary, subconscious thought. The usual form is you take all of that and ram it into a time-table that in no way can resemble a schedule that can be depended upon. To me, the formulation and translation of tasks to scheduled releases is pure hocus-pocus - only managed by extraordinary individuals possessing great common-sense, experience (in regards to "real" software engineering) and patience. A good software engineer has to deny himself and quietly and quickly advance the judgement of others.

I have to tell to you though, I was very encouraged by this last interview. Why? Because one of my interviewers shared with me his thoughts about how so many software companies interview candidates wrong. Wow, I thought to myself, this guy gets it. I WANT TO WORK HERE!

I don't know if I'm going to get an offer but I hope I do. My opinions and observations that I can't help myself from expressing are opportunities. That is, opportunities to create something really special, to increase the efficacy of a project team or product, to meet customer needs, etc... Really, they're just problems that I observe and notice that might have a solution. A solution to implement and move forward from so that the next problem can be taken on.

If I get hired, I might start like going to work again. Wow, what a concept. (But really, I never stopped working.)