Surviving a highly technical interview

Technical interviews can often materialize as a game of Battleship. Each side, lobbing over random coordinates of pop-quiz style knowledge tests looking for a “hit”. Will your armada sink in the next interview?

Board game metaphors aside, a well-done technical interview can be highly insightful into the technical skill of a candidate, where resumes and chit chat may not reveal the true nature of someone’s ability to contribute to teams expecting each person to perform highly technical tasks. Conversely, a poorly done interview only succeeds in demoralizing possibly good candidates, with those who pass only showing that they know what you *think* is important – a risky proposition that threatens to create an environment with low diversity of thought and skill.

So what does a good technical interview process look like?

  • Explain Everything
    • A candidate is in an unfamiliar place with people they do not know, evaluating them in all manners. Go out of your way to explain who you are, the interview process, what is expected, where the bathrooms are, who will come next to talk, introduce them, so on. If a candidate is too nervous from trivial things, they will not be able to give you good readings on the things you care about. Help them out a bit.
  • Measure Strengths
    • A good technical interview should only explore a candidate’s claimed strengths. This is so important. Do not waste valuable time making candidates feel small in things they already said they don’t know well. Move on.
  • Let them talk
    • Avoid standardized testing style questions with exactly one answer. Instead, use questions which let candidates answer in their own words, encouraging them to volunteer their level of comfort in the subject.
    • Positive example: Explain polymorphism to me in your own words.
    • Negative example: If I want to define a class that cannot be instantiated, but define some of the behavior for subclasses, what keyword do in the class declaration?
  • Enough sorts
    • Do candidates really need to write sorting routines at your company? Can they just use one that was already written? If so, why are you testing them on writing a sort? Instead, prefer a trivial sample to prove they can code, or instead offer them to provide some examples of advanced algorithms they have written outside the interview. Remembering how to quick sort with someone standing over your shoulder should not be a gauge of anything.
    • Instead of asking for route memorization of algorithms, consider replacing these segments with tests that identify that candidates know which algorithms are a good fit for what problems. It is likely this is more important to you.
  • Know it too
    • When questioning candidates about technical subjects, it is important that the interviewer also discretely know the subjects being investigated. If this expertise does not exist at your company, solicit a peer or trusted third party to help you.
  • Be respectful
    • Even if candidates do not make it through your process, make sure they are treated well. If your hiring pipeline has gaps, give the candidate your personal contact information so you can follow up with getting them the outcome of their interview. Press your coworkers to decide quickly about each candidate so they can get the news of what comes next (if anything). You would appreciate the same treatment.

Given these guidelines, most folks should be able to cobble together a reasonable process to evaluate candidates.

How do candidates maintain their composure during this sort of intense question session? A few tips have helped me in the past.

  • Get basic context
    • What job role are you applying for? Is this question abnormal for the role? Ask why this question applies to your role if you do not think it does. It may be a sign you will be doing a different job than you thought.
  • Remember your value
    • The reason most people get hired is because they offer a value greater than the resources they consume (or so it seems). If you do not know the answer, follow up with how you can likely get the answer on your own, or how you would identify who to ask for help. If it looks like this sort of problem would leave you stuck, it is a sign your value generation would stop here.
  • Talk through it
    • There is no problem with thinking a bit before you answer questions, but preface those awkward pauses with a simple statement, “Let me think about that for a bit.” Letting the interviewer know you are thinking, or what you are thinking as often as you are able prevents you from looking like your brain just shutdown.
  • Ask questions
    • Despite being the interviewee, ask questions of your own. Failure to get a single job does not mean you should get nothing from the process. Clarify every question you did not know the answer to, solicit feedback on your interview, ask how the company solves problems, about their culture, about your manager, teammates, break room, everything. At the end of the interview, ask how long it will take to receive an update on the process.
  • Follow up
    • Sometimes companies do their own Human Resources work, but are lousy at it. Help them out by following up immediately after your interview, thanking them for the opportunity to meet. Include a friendly reminder that you look forward to hearing about the result of your interview. If no such contact is made for 3-4 business days, send a short note asking if a decision has been made.
  • Get contacts
    • Networking is a huge value during the job search process. Be sure to continue expanding your network as you interview.
  • Relax
    • If it does not work out, keep trying. If you continue to improve yourself, apply yourself with careful thought towards advancing to the next step, you will achieve your goals.

Hopefully the next time you participate in a technical interview, one or more of these points will help you.

Agree or disagree, drop me a comment.

Answering this question cut 30 lbs of body fat in 4 months

Recently, I completed the Ironman NC 2016 (Oct 2016). The race would have been a full 140.6, but was cut short by 56 miles due to flooding in the area. A race image can be seen nearby (185lbs). Next to it, you can see me 4 months later, nearly 30lbs less body fat (155lbs).

Since 2010, I have been doing triathlons from sprint distances up until Ironman NC 2016 for the longest distance to date. Along the way, I expected that I would be not only healthier, but look healthier. Sadly, this did not evidence true. Year after year, my training left me hovering between 180-185lbs with rare exceptions. I felt like I carried a winter coat everywhere I went.

As I completed the Ironman NC, I found myself getting injured during the run – typical of all my long distance runs. This was disheartening, since it meant I was going to run/walk and finish after dark. As an added bonus, I get more hunger and more time to ponder what I have been doing wrong.

Post race, I decided I had enough of simply increasing my threshold for distance, but press my pace – aggressively. Settling on a 3 hour marathon pace as my long term goal, I knew this could not be done by simply improving all my bad habits. I needed to get serious about ditching any detractors. This is when I asked the question.

“How is what I eat accelerating achievement of my goals?”

It was that simple. Once I realized that many of my biggest body fat issues were not fixable by out working the other side of the equation (exercise), the fat literally melted off. Within 8 weeks, I had lost 25 lbs.

I cut out:

  • Added sugar
  • Added sugar alternatives
  • Preservatives
  • Most processed carbs (bread/pasta)
  • Oversized meat portions
  • Meals > 500 cals
  • Most GMO/non-organic foods

The simple version of my diet is now:

  • When waking up
    • Unflavored, grass fed whey protein concentrate or isolate mixed with water, or half serving with other half Orgain chocolate protein powder
  • Post workout
    • repeat shake/water mix
  • Lunch
    • 500 or so cals of organic brown rice, organic black beans, chicken breast, and vegetable
  • Second lunch 3 hrs later
    • repeat lunch
  • Dinner
    • repeat lunch
  • Snacks
    • When hungry, eat a small handful of nuts, or eat a single piece of fruit
    • Sometimes at night, eat unflavored greek yogurt with some sliced fruit, a few raisins, sliced almonds, or similar toppings.
  • Water
    • Drink lots
  • Before bed
    • repeat shake/water mix

My workouts

  • 1-2hrs / day of endurance or strength or mixed training 5 days/week
  • 4hrs long set 1 day a week

Some might say that with my level of exercise, it should be a no brainer to lose weight. To those people, I say, I tried that for years, without any real results. Maybe younger people can get away with that, but at 38 this year, I don’t think I will be pulling that off.

If you find these insights useful, leave a comment.

May you achieve your goals – every last one! 🙂

How I went from a lousy swimmer to passable

When training for my first triathlon, my swimming was so bad, it looked more like a distressed swimmer simulation. The harder I tried, the worse I got – until finally, a breakthrough.

When you watch some people swim, I think their brains naturally figure it out so easily, I don’t even think they know how to explain to someone who stinks *SO* bad.  You see, not only did I struggle with the stroke, form, flexibility, posture, breathing, head position, power delivery or anything else. I had the most critical issue of every problem anyone can ever have. I had no idea how to improve other than to just keep trying.

This piece is the key to making real and steady improvements.  When it comes to training in repetitive motion sports, it is important to build good habits early so that all that training can pay off.  Otherwise, it is like making minimum payments on a credit card.  You keep paying, but nothing actually gets paid off.

If I could go back, the first thing I would tell myself is, “Fix your breathing”. The microscopic gains that can be made without fixing breathing are just not worth grinding out. Face it.  No one wants drink half the pool by the end of the workout. (Consider yourself spared from all the puns I considered here.)

I have an unnaturally low sense of fear and danger. This is not to say I am a thrill seeker. It is more to say I did not breathe well, but did not worry I would drown.  That, however does not reduce the biological reaction to being out of breath. The urgency to breathe with the normal desire to look forward caused many young swimmers, including myself to swim more like dog paddling meets freestyle than just freestyle.

To fix this, I worked on drills designed only to increase my awareness of breathing, my comfort in breathing, environmental acuity in knowing where the top of the water was in relation to my mouth and related notions. Combined with this, I abandoned the preconceived notion that I would swim perfectly according to some image in my head and just breathe on the same side if it evened out my effort and rhythm.

Much of this advice came by way of various coaches who have instructed me until it finally sunk in.  Pat Rohner and Kendal Smith were among those who kept urging me to get better with small targeted instructions.

I still struggle to swim well, but breaking through these terrible blockers:

  • Not understanding what I am trying to do
  • Not knowing what to improve
  • Trying to fix too much at once

Has allowed me to move into a phase of improvement that allows for more gains with less work.

So, for anyone working on breathing or past it, my advice is simply this.  Find a good coach to help you fix one thing at a time, while helping you to understand not just what motion to perform, but what the underlying motivations are driving that instruction.  Then, proceed to measure your wonderful gains.

Good luck to all the other struggling swimmers out there. See you on the other side of the buoys 🙂

Lessons from finishing last in my first sprint triathlon

In my first sprint triathlon (in 2010) I wanted to believe that I could do it like most things in my life – might not be the best, but would not be the worst. I could not have been more wrong.

For anyone who reads even the first chapters of “The 7 Habits of Highly Effective People” by Steven R. Covey knows that you cannot cheat a natural system. A computer programmer who does not actively participate in sports may not do that well “cramming” for his first race. That is exactly what happened and the results were predictable. Of all the men who finished, I finished dead last. Every grandmother and grandfather who finished all passed me. Even the ones riding cruisers rocking the streamers on the handlebars.

At this point, I faced two choices:

  • Acceptance
  • Change

In some ways, I still don’t entirely understand all the forces that make me do the things I do. Ego, soul seeking, or maybe just a rock head. I chose to make a change. Like most changes, the decision is far easier than the execution.

My wife asked me a few times why I would keep at this. Each struggle just somehow makes me more determined to win.

I found out:

  • I suck at swimming, biking and running
  • I have exercise induced asthma
  • Sitting is the new smoking
  • You cannot out exercise your diet
  • Failure to measure destroys steady gains
  • Finishing is about determination
  • Performance is your training plan

In the coming weeks, I hope to break down my discoveries into discrete lessons. In the process, I hope to better my own understanding as well as help those who may happen upon these posts.