Last week I had a job interview. I did not get the job, but writing a postmortem is a good way to think through what I can do differently next time.
The Candidate
Hiring is like purchasing a product. The company has a need and they are evaluating what’s available in the marketplace. I am a product with features and benefits, and the interview is my pitch. As I started writing this I found myself wondering, “what exactly do I want the hiring manager to learn about me” Here are the main things:
I am a good programmer.
I am a creative problem solver.
I am self-motivated and have a bias for action.
For a topic I don’t know a lot about, I will learn quickly.
I am organized and efficient.
I am easy to work with and do not create drama.
Of course, I can’t just come out and say these things in an interview. Instead, I need to provide examples and anecdotes. I also have to exude these qualities subliminally. That is easier to do in person, where you can give a strong handshake and maintain eye contact. It’s harder to do over video.
Sidebar
In the 2000s I took a year-long sales training program that taught the Sandler method. (I wrote a little about it at the time here.) The main thing I learned is that buyers, like all people, are not rational. They are emotional beings first, and they rationalize their purchase after the fact. The job of the salesperson is to tickle the lower brainstem and get them into an emotional state. Once there, you absolutely do not sell to them. Rather, you guide them to discover in their own terms why you are the best solution. Crucially, they must feel like they are driving the process, not that they are being sold too. Done well, the buyer perceives you more as a friend they’ve asked for advice than a salesperson.
Unfortunately, I did almost none of that in this interview.
The Position
The company is a Series A online education startup. They are looking for a senior developer who has “ideally shipped meaningful features to a real user base, and are comfortable with a broad set of concerns that come with building production web apps on the client, server, and infra layers”
I first heard about the position in December in a post on Hacker News. Unlike most other postings there, which link to an application form, the CTO had made a personal video. He explained what they were looking for, but spent more time selling the benefits of the company. It was nicely done but not over-produced. Just a Loom video with a couple of visuals.
I sent him an email saying I liked their business model and why I thought I would be a good fit. I said at the outset that I’ve been away from programming for a few years (demonstrating honesty) but then listed the technologies I’ve worked with. I was trying to communicate that I’m a fast learner who can jump into their situation and get up to speed quickly.
The CTO emailed me to schedule an interview. He told me to think about three things:
I'd like to talk in depth about one full-stack project you had a big role on from inception till shipping, including the context around the project, the decisions you made, the challenges you faced, and the engineering details.
How does your career so far lead to this opportunity? How does [company] fit into your goals and interests, and what does a great role look like to you?
What would be most valuable and interesting for you to learn about [company]?
I liked that he had a clear agenda. I scheduled a time for early the following week when I thought he might be fresher.
The Interview
He started with the second question first. Why was I here? I found myself talking more than I wanted to, giving my history going all the way back to the early nineties. I think my mindset was one of showing how experienced I am, and that I’m a fast learner, but to most people the early web is ancient history.
Next he asked for project examples. I told him about three projects I had worked on that were challenging and impactful.
Scaling a MySQL-based analytics platform for StatsMix. I had considered moving to a NoSQL solution like MongoDB but decided against it because the ecosystem was too small — there was not a lot of Stack Overflow questions and answers for all the edge cases and weird bugs. Here is my original question on Stack Overflow about how to solve it in Rails with MySQL. Notice that no one had a good answer? It was a unique problem. I did find a solution and it worked really well. During that period, one of our competitors (Mixpanel) switched to MongoDB, wrote a glowing blog post about it. I remember thinking at the time that “maybe they know something we don’t and we should’ve gone with MongoDB.” But then nine months later they switched back to their previous RDMS and wrote a long blog post about that too. Sometimes iterating on your current technology is better than adopting a new one.
Building a charting engine in jQuery. It was a complex UI and I had to create a whole state-tracking system, similar to what React does today with useState useEffect. I get the feeling that when most people hear jQuery they think “old and obsolete.” Which is true, but another way to think about it is “things are so much easier now. Someone who built that probably knows what he’s doing.”
Building a marketplace for YouTube influencers using Mithril.js and Node, which I inherited from a dev firm and knew zero about. I tried to emphasize that two previous CTOs had failed in part because they wanted to throw everything out and start over. Despite not knowing anything about the framework, I taught myself how to use it and we launched in three months.
Rewriting the billing system for SurveyGizmo from scratch, along with pushing for changes at the process level that made it easier for the company to scale. It took me about two months to write that system. It was solid enough that they continued using it for nearly 10 years.
Unfortunately none of those are still online, so it was just me talking.
He asked me to show a current project I’m working on. I wish I had thought about that question before the meeting and prepared. I showed the UI for a React project and talked about some of the challenges of it, but I could have created an outline/presentation of what it does, how it works, what technologies I’m leveraging etc.
Also, while I have a good eye for UI, I am not a designer. I have to rely on designers and off-the-shelf components to provide anything more than buttons and rounded corners. I also usually focus on function first before styling. While the app I showed him looks okay, there’s still a lot of polish to do and I don’t have a designer helping me. (I ended up doing a lot of that polishing over over the weekend.)
My Turn
As we came close to the end, he shifted to what questions do I have. I asked one of the questions they teach in Sandler:
If I could wave a magic wand and make all your problems go away what would it look like?
He explained that he was looking for someone with an entrepreneurial view who thought of products from the macro level — not just technology, but talking to and understanding customers, getting buy-in from stakeholders, figuring out how to get the resources you need etc.
That’s a bullseye for my skill set. I wish I had asked that question sooner so I could have framed my answers along those lines.
When asked why they haven’t filled the role after three months, he said it was because the people they most want are more likely to just go start a company themselves. I tried to emphasize that I had the personality and capacity to do that, but at this stage in my career I’m less interested in doing my own thing. It didn’t ignite more conversation about it. (In fairness, he had a hard stop at the top of the hour.) I really, really wish we could’ve talked more about their process and how the ideal employee would work.
Results and Final Thoughts
He told me he’d have an answer within 24 hours. While it’s good to get a quick turnaround, I had a feeling he had already decided. Sure enough, the next day I received a declination email.
If I had to guess, the main reasons I didn’t get the job are:
Didn’t have many examples of my work
Concern about me being out of the game for so long — does it mean I’m washed up, or perhaps desperate?
I talked too much
Going Forward
One thing I’ve learned in life is to never to take things personally. I’m bummed about not getting the job, yes, but I’m not depressed or grieving about it. So what’s next?
The number one thing I will do is to create a presentation of work artifacts — mockups, design docs, code samples etc — so I can explain them more visually.
Second, I will work the “magic wand” question into the conversation sooner.
Third, for my next interview I will do a premortem first.
Finally, I’m going to send this post to the hiring manager. Maybe it will spark a second look.
(If you’re reading this, don’t feel pressured to respond. You do not owe me an explanation. :-)
Special thanks to Jason Mitcham, Chris Dolinski and Shern Tee for providing thoughtful feedback on this post.
"buyers, like all people, are not rational. They are emotional beings first, and they rationalize their purchase after the fact" —very interesting!
I liked reading this -- it's easy to identify with a lot of the problems you ran into. Also, the post is so well written. So here's what I'm curious about: at the end you asked people for feedback about the post. What feedback did they give? Is it about writing? Is it about understanding your own weaknesses? I'm always interested in how people use editors.