It’s job hunting time for me again. I took quite a chunk of time off after leaving my last job. Now that I’m ready to dive back in, I’ve been thinking more and more about the job hunting process I went through the last time. I’d like to tell you about the last two interviews I had during my job hunt. This is the story of the first interview.
(Cue the wavy screen effect as we roll back in time to the year 2009…)
I worked for many, many years as a roaming contract programmer, followed by a painful, scrappy stint with self employment. After so many years of fruitless jostling and meaningless projects, I really just wanted a home. A stable environment with a good team and a steady paycheck.
Through a friend I landed an interview with a fairly big company in the healthcare field. The phone screen was weird. It was a short 20-minute call. A few easy tech questions, although the guy interviewing me did trip me up on a time complexity question. That wasn’t so bad. The painful part was the coding task: I had to write code over the phone. No shared editor or whiteboard software, just talking over the phone. He described the problem (Fibonacci) and when I was done I was to describe what I had coded up in C#. This included voicing things like “semicolon”. I had something like 5 or 10 minutes to get it done while he waited on the line. Have you had this experience? It’s a crazy situation. You’re trying to think about how to code a solution while you’re on the phone and nothing but dead silence is coming back from the other side. I got it done in time and described a bit of code that seemed reasonable to the interviewer.
It’s often hard to tell how these things go, but I did get a follow up call scheduling me to come in for a “hands-on” interview. I was stoked, but my blood went cold when I found out that my interview would be 5 hours long. They’d provide lunch, I was assured.
After I got off the phone I pondered this. A 5-hour interview? Really? Had I been applying to Google or Microsoft, that wouldn’t have surprised me. But this was a pretty ordinary company hiring for what seemed like an ordinary position. Still, I figured the worst thing that would happen was that I’d get a free lunch.
I decided that if they were going to give me that much attention, I’d better take prepping seriously. It was stressful. What to focus on? A million things raced through my brain. I eventually settled on reviewing recent changes in the .Net platform and studying algorithms (my kryptonite). I don’t put a lot of stock in arbitrary algorithm knowledge, but I know to expect questions in that area. I can’t say I spent too much time studying, but I did throw some time at reviewing things like red & black trees and trying to imagine what the interviewers might ask me.
The big day came. I worked hard to get there early and after getting lost and running into a small obstacle (glass elevator vs. acrophobia) I managed to be just in time for my interview. Perfect!
I was shepherded to a tiny, fluorescent conference room and interviewed by the team manager. We chatted for a bit and he explained their process. Basically I would be stuck in that room all day. They’d bring me lunch at some point, and over the course of the day they’d send in people or pairs to pepper me with questions for an hour each. At the end of the day he’d be back around to wrap up.
First up was Architecture. They brought in a seasoned architect and we stood at the whiteboard for an hour talking about objects and architecture. I was a little nervous about coding at the whiteboard, but he was very nice and gave me latitude to solve problems in whatever language or platform I’d like. I chose Python since I was working pretty heavily with Django at the time. Things went fairly well, but not perfectly. I felt that he and I were on the same level technically, but he was much more of a specialist of the Enterprise Architect variety. At the end I felt like I passed but it was clear that he was the better Architect.
Next up was Algorithms. This was where I predicted it would all fall apart. A pair of very young guys came into the room, introduced themselves, and then dove right in with some general algorithm questions. To my surprise I knew the answers and could “read the pitch” of the questions they were throwing at me. I experienced a huge boost in confidence and I did much better than I expected. When they asked me to write a sort in C# on the whiteboard I stumbled a little. I had just written Python code for an hour for the previous guy so my brain was warmed up but in the wrong language. My C# was a little rusty, especially outside of Visual Studio. It can be amazingly hard to write code with your hands instead of your fingers. Happily they didn’t sweat syntax errors here and there. Once I shook off the rust and the nerves it pretty much wrote itself. My first solution was recursive so they had me rewrite it. Finally it was done; they had no more code and no more questions. I suspected that the hardest part of the interview had just wrapped. I gave myself a mental pat on the back. All down hill from here, I figured.
Not quite. By the time I was done with these guys I was getting tired. Between the the mental load and the stress I was starting to bog down. Toward the end of the hour someone was nice enough to run out and grab a sandwich for me. Pretty soon I had my sandwich and was chatting with the next pair of interviewers who quizzed me on general .Net knowledge as I ate. If I had guessed in advance which segment I would do best on, this was it. Instead I fell apart. These guys were the sharks on the team, it seemed. Their questions got very aggressive. I just continually whiffed, even with questions that I “knew”. This included one question on specifics about boxed variables that I almost certainly had asked when conducting an interview of my own just a few years before. After that round I felt absolutely worthless.
Next I had a “quick chat” with the head of the division I was applying for. And it’s here that I’m almost certain that I botched the whole interview. I don’t remember the details, but the essence of it was this: We’re this successful startup (successful yes, startup no) and you should have a super-compelling reason you want to work here. My response was essentially, “I just want a job”. This did not sit well, and in a very polite manner he made this clear. (In retrospect I would suggest they use the phone screen to weed out those pesky people who don’t dream the Cubicle Dream. I would have saved all of us a bunch of time.)
Finally I got to meet again with the team manager, my last meeting of the day. By that point I was defeated. He asked how I did. Exhausted and weary, I told him that I thought I did “okay” and that I would have liked to have done better on some bits of the technical interview. He promised to be in touch and then showed me out in to the lobby.
There in the lobby sat my friend, the glass elevator.
Much to their credit they did contact me a day or two later and let me know that they weren’t interested. This was in 2009, in an employers market, and I wouldn’t be surprised if I simply got beat out by a better candidate. So it goes.
Read more in Part 2.