Matt's Blog: while { coding }
    Back to Matt's Homepage   |   Hire Matt

A Tale of Two Interviews, Part 2

(You probably want to read Part 1 if you haven’t already.)

Have you ever talked yourself out of applying for a job? Maybe you didn’t meet the specific requirements in the job ad. Maybe you were intimidated by the reputation of the company.

I did this.

There was a job that I kept seeing. The two strikes against it?

  1. It was a Ruby shop and I wasn’t a Ruby programmer
  2. The CTO was a legend

Those two things conspired to delay my application by a few months.

Around the time I was scheduling the interview with the company from Part 1, I went ahead and applied to work at this little Ruby shop. I was pretty sure that I’d get a phone interview, but I honestly didn’t think I’d get much beyond that. But it would be fun to apply, and good experience.

I did end up getting that phone interview. This was about a week after the disastrous interview at the company from Part 1. This time it was a panel interview, over the phone, for 30 minutes. After the craziness I had with the previous phone screen I could imagine almost anything. I decided to put it out of my mind and just relax. If I didn’t know the answer to things, that was just the way it was going to be.

You would think that having seven people interview you over the phone would be stressful. Surprisingly it wasn’t. From the start it was clear that these were nice people. The interview consisted of them going around the room throwing me tech questions over the speakerphone. I wasn’t asked to code anything. The technical questions were fairly general. No gotcha questions. No brainteasers. It was clear they were just sketching me out as a developer.

Things were going pretty well when suddenly the phone went dead. I was 20 minutes into a great interview and Skype had failed me. Worse, I realized that I had inadvertently closed the wrong Skype window while listening, so it was my fault. I had their office number and called it, but got their switchboard. I had no idea how to get back in touch with these people. Lucky for me, they called me back. I answered and explained what had happened. They were very understanding and we continued the interview.

About 5 minutes later I heard Skype go “bloop”. That usually means the call is over. “Aww, fuck”, I groaned. I had cut myself off mid-answer. There was no way they were going to call me back again.

“What’s wrong?”, I heard in my headset. I was still connected! They were still there, listening… and concerned! The Skype bloop was the timeout of the outbound call I had made earlier. Ice was instantly in my veins. “Oh thank god!”, I said. “I thought I’d hung up on you guys again.” Laughter. Instead of completely screwing up the interview with my random profanity, they thought it was funny.

Skype snafus aside, I felt pretty good about the interview. Sure enough, I got an email the next day asking me to come in for… a 5-hour interview. They’d buy lunch.

Fuck.

At least these guys seem fun, I thought to myself. Worst case, I’d get another sandwich. And get some more practice at this suddenly-common style of interviewing.

I started analyzing the last interview. Where was I weak? How could I do better? In this case they were a Ruby shop. I was very upfront with them: I was not well versed in Ruby and I worked mostly with Python. They were fine with that. Still I thought I should familiarize myself more with Ruby. Also, even though I’d done ok on the algorithms interview before, I knew that was still my weak spot. So with the better part of a week to go before my 5-hour interview, I spent as much time as I could manage reading about algorithms, remembering design patterns, and tinkering a bit with Ruby.

When I showed up for my interview (closed-in elevator FTW) I walked into an open-plan loft-style office with huge windows all around. Once they figured out who I was, the 5 or 6 devs in the office swarmed over to meet me as a group. It was clear I was meeting a team.

“Are you ready to get started?”, one of them asked me. I nodded and took a slight step toward the well lit, glass walled conference room where I could see a looming whiteboard.

“My desk is over here”, he said, and steered me off toward a sunny area of the office where his desk was parked.

Ah, I’m going to answer interview questions on his computer, I thought. Cool, I can type my answers!

Pretty soon it was clear that there were no interview questions. He and I were going to pair program, and I was driving. He explained that we were going to hack on a real problem that he had been working on. I don’t remember what the problem was now, and I doubt I made any real contribution. That wasn’t the point. Within minutes I had forgotten that I was in an interview, and I was at ease. No one in the office was watching or hovering – they were all off doing their jobs. It was just a chance for the two of us to work together and see what that was like. He did manage to throw in a bit of tech talk during our hour together, but I was relaxed and nothing seemed like a gotcha.

After that first pairing session it was lunch time. I was wondering what kind of sandwich they were going to give me. Suddenly the entire dev team got on their feet and headed for the door. Apparently we were having lunch out. And so we did, at a nearby restaurant. Instead of asking me tech questions they asked get-to-know-you questions. It was a little awkward at first, but after a few minutes I was once again relaxed and felt in my element, making conversation and letting some of my humor show. (In case you wonder, I had a salad, no onions. It was still a job interview!)

Back at the office I was paired with a guy who was clearly the shark on the team. He was smart and intense. He talked fast and expected you to keep up. We paired, like before, and I was in the driver’s seat. He guided. My lack of familiarity with Ruby didn’t phase him, especially once I seemed to have made it past his dipshit filter. Still this was the toughest part of the day, as he had this way of explaining things to you and then staring at your eyes to see if there was the slightest twitch of confusion or weakness. It was intimidating, but tolerable. And understandable, really. I could tell he was protecting the quality of his team and took the evaluation seriously.

At some point the CTO pulled me aside for a chat. Instead of demanding from me why I wanted to work there, he just tried to get a feel for what I was aiming for. I was pretty honest, as I had been at the previous interview. But by this point I was impressed with the team and the work environment. He said to me, “We’re a startup. None of us know where we’ll be in 5 years, and that’s ok”. I smiled. Honesty!

I spent time pairing with the other devs that day, each impressive in their own way. In the last pairing session of the day I was able to teach my pairing partner something that he didn’t know, and we put it to work in solving the problem he was tackling. That made me feel great.

Finally, at the end of the day, the whole group of devs came over to see me off. It wasn’t cheesy; they were just thanking me for coming in. It was pretty clear that the feelings were positive both ways.

Within a few days I had an offer.