How to prep for a software engineering interview

As a software engineer with 10+ years of industry experience, I’ve come to learn that being well prepared for engineering interviews is critical in this industry.

The truth is, no matter how good you are at your day job, we don’t end up using all the data structures and algorithms. However, we need to be prepared on everything programming related before we step into an engineering interview. We can complain about the interviewing process but the fact is, most leading technology companies prefer to compare candidates to their existing intelligence/skills bar. Its not perfect but its real and you can’t run away from it.

If you are preparing to give a software engineering interview, I sincerely hope this helps you in the process. As always, please share your feedback. Good luck folks!

First make a list of potential employers, rank them 1–15. Apply to your least favorite first, work upwards and save your favorite company/role to last if you can.

Once you feel well prepared, schedule interviews

  • Interviews on M,W,F
  • Use Tu, Thu to review and schedule
  • Sat, Sun — take breaks and learn new content

Good read on how to ace phone interviews

http://www.pce.uw.edu/career-insights/acing-the-phone-interview/

How to prep for on-site interview loop

1. Prepare to solve problems for 4–5hrs straight

Prep for both technical and behavioral

Technical — Learn different Data Structures (linkedList, Queues, Heaps/Stacks, Trees, Graphs, Sorting, Searches, ArrayList, HashMap/Dictionary), Popular Algorithms, Big O (efficiency), Databases, Design Patterns, Testing.

Do this https://www.hackerrank.com/domains/tutorials/cracking-the-coding-interview

Behavioral — Rehearse 4–5 stories from your past work/project experiences to highlight these behaviors

Also prep for

  1. Why this job?
  2. Why this company?
  3. What questions do you have for the interviewers?
  4. Ask them thoughtful questions based on what you learnt by talking and research about the company.

2. Practice on whiteboards or writing the solution (as opposed to coding in IDE)

3. Research on the company

a. Know the CEO’s name

b. Understand the job description and the team you are interviewing with

c. Google the company and read up on their latest news — product launches, stock growth, competitors, and challenges

Negotiating your salary

Requesting for additional time if the offer doesn’t meet your expectations

  • Show interest and commitment in the team and role
  • Need time to talk to a couple other teams about the role and the work I’ll do. Have a few interviews lined up for the next two weeks.
  • The deciding point will be the kind of work I do
  • Say “This is a big decision and I want to stick around for a while wherever I go so I want to be sure.”

Negotiating the compensation package

[Don’t remember where I got the information below from but I must’ve tweaked it a bit and you should do the same depending on your situation.]

  • I’m really excited to work here, and I know that I will bring a lot of value. I appreciate the offer at $_____, but was really expecting it to be in the $____ — $ ____ range based on my current experience, drive, and performance history.
  • I understand where you’re coming from, and just want to reiterate my enthusiasm for the position and working with this team. I think my skills are perfectly suited for this position, and are worth $_____
  • RESPONSE “We’ll get back to you”
  • REPLY with a simple — Great, I appreciate that.

Recommended books for interview prep:

1. Cracking the coding interview

2. Programming interviews exposed

Recommended websites to practise for interviews:

  1. Hackerrank.com
  2. Interviewing.io

Other good sites

Recommended blog posts for interview prep: