my start-to-finish interview process for a software developer internship at a top tech company

my-stuff
6 min readMar 4, 2023

If you want to know what the interview process for a top tech company is like, this is for you!

This past summer I interned as a full-stack software development engineer (SDE) with a big tech company. This company was ranked by Business Insider in the top 15 highest paying tech company internships.

So what was the process like?

Step 1: The Application.

This is the first step, and a very important one. not to be dramatic, but this is the step that can end it all before it even starts. because of this, I highly recommend curating your resume for success. If you want more pointers on this, feel free to check out my more detailed guide in this story

Step 2: The Coding Test.

I’m including this step because I know it is a common one for many tech companies, although this wasn’t a requirement for my company. I have taken taken several of these before, so have some advice.

  • They are usually broken up into multiple small coding questions. For each of these questions you’re goal is to pass all the ‘test cases’
  • Do not attempt to hard code the answers to these test cases. You probably won’t have time. And there’s usually several ‘hidden’ test cases anyways
  • Don’t get caught up trying to solve one perfectly. trust me, it’s really easy to run out of time. Having 7/10 test cases pass is something you can come back to if you have extra time. It’s better to have attempted all the problems, than just get 10/10 on one of them.
  • Typically you’re given a due date, but can choose anytime you want to take it. Block out the time for when you’re going to take the test and treat it like a real test because they are all timed, and some of the prompts can be very lengthy. Distractions that take away from your time will not help you.

Step 3: Interview Day.

I’m not going to lie, my interview process was long. very long. the entire process took almost 4 hours. For those who are interested, this was the structure:

  • 30min initial character interview.
  • 15 min break
  • 45 min live coding problem
  • 15 min break
  • 45 min live coding problem
  • 15 min
  • 45 min live coding problem

Here’s the breakdown of each section:

Initial Interview: Character / Personality / General interview.

  • This is where they ask you questions about you. example questions are: “tell me about a time you were in a group and disagreed with someone. how did you go about it?” or “what are your biggest strengths? weaknesses?
  • These questions can be stressful. especially when it comes time to brag about yourself. but you gotta suck it up and do it, because everyone else is.
  • However it is 100% possible to brag about yourself, but still come off as a modest person. Answering “nothing” to “what are some of your weaknesses?” doesn’t look good.
  • At the end of the day the people interviewing you are looking for people they think would fit in well at the company and work well with others. so make sure you express your teamwork and communication skills.

The Next 3 Live Coding Interviews:

  • The next 3 sections of the interview were all the same, but with different interviewers and different questions.
  • What I mean by “live coding” is that during these interviews I would join a call, the interviewer would read me a problem, and then over a shared screen I had to code the solution while explaining why I was coding every single line as i did it.

The Breakdown of the Live Coding Problem Interviews:

  • First 30 min: time to code
  • Last 15 min: follow up questions

(I finished the first two questions early so we spent a longer time on the follow up questions. The third I finished just in time. But I was told completed or not, after 30 minutes we would have moved on)

These interviews were by far the hardest and most stressful part. But hopefully these tips can make the experience a little easier for you.

Live Coding tips:

  • Have a notepad and pen ready to go!

As i said earlier, they READ the problem to you. So it’s extremely important to remember all the parts and requirements. You do not want to have to ask them to repeat the question multiple times.

  • It’s okay to debug and add sanity checks!!

If your like me, when I’m solving a coding problem sometimes Ilike to add unnecessary print statement to debug, or random lines for sanity checks. This is okay! I personally felt like having to explain my every move to someone meant every move had to be perfect. but that’s not true. They obviously want to see your abilities, but almost more importantly, they want to see that you can problem solve.

  • Ask them ahead of time what coding languages you can use!!

If you know ahead of time that live coding is part of the interview, ask what languages are available! When I took mine, I had to find out on the spot that my preferred language at the time, c++, wasn’t an option in their live coding platform, and I had to quickly try to remember as much python as possible. Knowing that a certain language won’t be available ahead of time gives you time to refresh on one this is going to be available.

(Important: just because the role you apply to says ‘uses c++’, do NOT mean their interview coding platform will have it! If you’re interviewing with a massive tech company, odds are some of the people interviewing you don’t even know what specific role you’re going for. They’re just there to facilitate that step).

  • KNOW YOUR (basic) ALGORITHMS!

Although there’s no way to know the questions ahead of time.. ALL of my questions were algorithms and data structures based.

The most helpful advice for these questions I can give is to review some algorithms course content. I kid you not, TWO of the THREE questions I was asked were identical to questions I’d seen on my Algorithms midterm at school.

A lot of these questions can also be studied here: https://www.geeksforgeeks.org/top-10-algorithms-in-interview-questions/ I’d recommend the ‘sorting and searching’ and ‘string/array’ problems.

Follow-up question tips:

  • These are usually optimization questions.

what is the big O time complexity of what you just coded?

how could you make this more efficient?’

what is the best case time complexity you could make this?

So make sure you have a strong understanding of time complexity and know how to calculate it quickly.

Also, for the ‘how could you make this more efficient?’ question.. when in doubt: HASHMAP

I’ve actually laughed with some friends about this. Because nobody ever really implements hash maps. But it’s one of the most common ways to achieve the best complexity for many of these types of problems. It’s really the ‘golden ticket’ answer to be correct and instantly impress the interviewer. So it’s funny that we all throw out ‘hash-map’ but in reality nobody actually knows how to implement it.

The Last Step:

After this is complete, the last step is the waiting. If all goes well, you’ll have one last meeting with a recruiter to go over your offer. Then depending on the timing, you’ll receive an offer letter within the next few weeks!

--

--