The Many, Many Types Of Interviews You May Encounter As A Software Engineer

Technical/coding, technical without coding, behavioral, system design, take-home coding challenge, and Squid Game

Curt Corginia
6 min readJul 9, 2022
Photo by Van Tay Media on Unsplash. “Hello, Mr. Corginia…I see this resume indicates you have two years of experience with C++. What’s the difference between a static_cast and a dynamic_cast?”

If there is anything I have learned from my years living alone and cooking, it is that you can do something for a very long time and still not be very good at it — the same way you can cook for years but only know how to make a grilled cheese sandwich. I once told Smack (a regular character in these interview stories) that bragging about the number of interviews you land is a little bit like bragging about the number of matches you get on Tinder. His response was that he would absolutely brag about the number of matches he got on Tinder, so maybe a more apt description is this: Bragging about the number of interviews you get is like bragging about getting a higher score in golf. Ideally, you interview a few times with one company, it goes really well, you accept a job offer there and you move on with your life.

I had an interview with a software engineer manager, and it was strictly behavioral. I pitched the question to Smack as well, and he kind of made fun of me for it:

Me (quoting the question): What is something that went poorly in your last team, and what will you do in the future on your next team to ensure that this does not happen again in the future?
Smack: Oh God, Oh God, I didn’t study for this! Um….uh….Two-Pointer Technique!! Hashmap!

I find it kind of amusing that I spent an entire weekend studying LeetCode, only to realize that the interview was behavioral. It got me thinking about a few things.

  • If your interview is strictly behavioral, how do you filter out people who lie or embellish the truth? They could say that they improved their profits by 200%, or they were the heart of the team, and it would be difficult to verify. It reminds me of a previous coworker who listed on his resume that he was a team lead — what he had neglected to mention was that he was the ONLY person on said team
  • If your interview is coding only, how much time and money will you spend having your interviewers study the same algorithms/data structures questions they assign?
  • If your interview is take-home, how will you prevent cheating?

This comment recently came in on our evil sister blog, Kurt Shiba Inu, and I wanted to clap for it…but I also felt that I couldn’t, since I’m the one who criticizes coding interviews so frequently:

Coding Interviews

This is…kind of what a billion-and-one blog posts are already about. Grind75 is all the preparation your heart will desire, unless you are one of those insane people writing on LeetCode discuss about solving all 7000 LeetCode questions so you can become a Pokemon master.

Now, regarding the argument above: Is coding competency important? Sure. They should be able to solve FizzBuzz. They should be able to use data structures, write functions, and maybe do some semi-tricky things with strings…meaning that string compression problem I had bombed was fair.

I think the argument against coding interviews has more to do with companies that ask questions like this. Some people say that the vast majority of programmers cannot even solve FizzBuzz, which I think is annoying and condescending and elitist…but many interviewers seem to agree. Regardless of whether this statistic is true, let’s paint this hypothetical scenario: You know you are going to get a coding interview, you receive an email with preparatory materials that lists 12 bullet points in a study guide, each more vague than the last, and then you notice on GlassDoor that every single person mentions that the coding question this company asks is All Paths From Source To Target, available on LeetCode Free Edition and solvable with a BFS. Do you use their study guide, or do you memorize one problem?

Obviously this is an exaggeration, but I agree with those who call this a race to the bottom. You know who DOESN’T complain? This guy and this woman, so if you are preparing for a coding interview you should probably listen to them and not me.

Take-Home Challenge

The absolute BEST response I ever got to my article was the video below:

It’s an hour-long podcast, but my favorite part was this: They tell the story of how they tried assigning a take-home challenge instead, so someone put up their challenge and offered to pay someone else to do it for him. They had no choice but to win the bid themselves, because if they did not do this then they would not be able to trust any submission.

Take-home challenges are time-consuming and susceptible to cheating. The obvious upside is they tend to be much more relevant and, in the absence of cheating, fair.

One take-home challenge I received was chronicled here, in the interview section. I am still convinced the problem was impossible.

I was also once asked to write a frontend application with SWAPI. That was interesting.

Behavioral

In my experience, this really is not radically different from behavioral interviews in other fields, in which they encourage you to simply Google common behavioral interview questions.

I found a YouTube channel that’s very behavioral-interview focused. This kind of content really rubs me the wrong way…this is the same guy who made a video called “How To Ace Your Facebook Interview,” and there is nothing to indicate he knows anything about Facebook…but here it is:

Maybe there will always be a place for this kind of thing. Confidence. Charisma. The ability to really sell yourself. But it still kind of baffles me: Would you hire someone who gives you a five-minute passionate speech about how your company is going to disrupt healthcare and make a billion dollars and diagnose patients with a single drop of blood, or the one who gives you a five-hour speech on why the idea won’t work?

System Design Interview

Just check these out:

Technical/Non-Coding

Here is a GitHub of every company that does not do whiteboard interviews.

Some various questions I have received:

Here’s where it gets interesting: You can start with something like a behavioral interview, asking about a particularly difficult challenge you have faced. Then they can really drill down, attempting to see if you can articulate how things worked, use terms correctly, etc.

Interesting Other Interviews

  • There was one called a “case study,” where they gave me code and asked me to explain it to them. Everyone on GlassDoor complained that they gave us an email prep guide showing us a video on how to optimally price ice cream, which was definitely not what the interview was. I didn’t mind myself…I was actually very interested in how to optimally price ice cream
  • I had an entire interview via text. It was surreal. Technically I also received an offer on it, I think? After it was over they texted: You are part of the team now. Congratulations! like they were taking me hostage and I had no say
  • Coding assessments for days
  • Multiple choice exams
  • Coding interviews that aren’t quite like LeetCode…sometimes they just ask the candidate to write simple functions, or sometimes they ARE complicated programs but the candidate does not have a choice of programming language like they would on LeetCode

Closing Thoughts

--

--

Curt Corginia

Founder, CEO, CTO, COO, and janitor at a company I made up called CORGICorporation