Quick recap. Last year, I walked away from being a founder/CEO to return to the job market as a software engineer. This is a piece of that story.
I tended to only hear back from startups that I applied to. My resume did not jive with large enterprises, I guess. This was fine by me. I prefer startups. But it meant an eclectic series of interviews.
For one startup (very early stage) I was to walk the CTO through a project I built. I was excited about this format. I dreaded live coding puzzles. They’re not my strong suit. I would rather show off my capabilities building things that solve real problems.
I had just the thing too. I was actively developing a web application to solve some problems of my own. Stripe2QBO helped streamline some annoying bookkeeping tasks—importing Stripe transactions into Quick Books. It worked great for my use case. As an excuse to keep my skills sharp, I decided to generalize and productize it. It was coming along nicely, and I was quite proud of it.
I showed up to that interview excited to talk about about my product. About the problems I solved, and the challenges I faced, and the tradeoffs I had to navigate, and the tech stack I chose, and all that good stuff. Instead, very quick into my spiel, the CTO me asked me if I knew what a Promise was. It stopped me in my tracks.
Well, yes, I’ve been coding JavaScript for years, of course I know what a Promise is…I’ve just never had to explain it.
Classic.
I did my best. Not exactly sure how deep to go. Not exactly sure if I was explaining it correctly. It didn’t help that all the asynchronous data fetching in my application was abstracted away (cleverly, IMO) using modern redux toolkit. This meant there was no obvious place in my codebase to show off the async data loading pattern my interviewer seemed to be looking for.
If I had kept my cool, maybe I could have explained what I had abstracted away and how. But it took me so off guard that I never recovered. Soon after, he nitpicked on a button that had some off centre text. This further rattled me. You’re missing the forest for the trees man! We never really talked about Stripe2QBO—the functional, end-to-end, solves-a-real-problem product I built. I was rejected over email later that day. Oh well.
Russell, Sometimes the interviewer just isn't looking for you to be hired at that time, date or place. Sometimes they are waiting for your one slip up. And there is nothing you can do.
One of my earliest failed interviews was when I was trying to jump from one bank to another for a high pressure role as a Tech team lead for managing Equity and non-stop trade systems. I passed my first two interviews and the final phase was a three person panel. I established good rapport with the two tech managers in that panel, answered some deep tech questions and after 45 minutes the third "quiet" one said he had a question.
His name was Gary and he was the key business lead for Equity Research.
"Edward, what is a bond? Name me three types".
I balked and stuttered for a few seconds.
The other two tech managers raised eyebrows. "Ermm, convertible, corporate and ...." I blocked. I couldn't think of other types right there. Gary said "OK, thanks", got up to shake my hand and left the room. Later that week I got the feedback that they were going with someone else and that Gary had gave a no-go to the panel, even though the other managers would have gone ahead.
Two months later I heard that Gary V had defected to work for a private equity firm. Dammit.
Never been to a technical interview (sounds onerous) but I have been in TONS of interviews and I know that feeling in the cab-intimately. Like wake up in the middle of the night 10 years later thinking what was I thinking, woulda, shoulda, coulda kinda regret. I guess the thing to remember is... you tried your best and you learn for next time? Alternatively... adulting can sometimes suck