Devashish Thakur
Devashish Thakur

Devashish Thakur

Interview Preparation Guide for Software Engineers

Interview Preparation Guide for Software Engineers

Devashish Thakur's photo
Devashish Thakur
·Jun 16, 2022·

6 min read

Subscribe to my newsletter and never miss my upcoming articles

I recently joined Adobe as a Software Engineer in Test and also had offers to join other product companies like PayTm, Airtel, Samsung, Sprinklr, Nutanix & Practo.

I appeared for more than 50 interview rounds. Each one of them taught me something new. With that experience, I am sharing everything you need to be ready for Interviews, So let's get started.

Don't just apply for any company.

Prepare a list of companies that you want to work for first. Depending upon what you want, there are a lot of great places to work.

Decide if you want Work-life balance, Growth, a Higher position, a Higher salary, and what type of company you want.

Next, do some market research about companies that you find fit.

ℹ️ I used Glassdoor to understand any company's culture, work-life balance, etc., and AmbitionBox for salary estimates.

Prepare an Awesome Introduction

The first impression is Important. You will provide a direction to your interview depending on how you answer this question.

Consider these points

  • The interviewer may not have looked into your resume - The interviewer is probably busy with his tasks and may not have had time to review your resume.

Depending on your experience level, your introduction will be different.

If you have 1-5 Years of experience then you can go for something like -

Hi, I am Name, I have Years of Experience working for Company Name. We were building Project name where I was primarily responsible for Your Responsibilities but sometimes also Any more responsibility I have worked with Tools you have used.

Let me give you an example.

Hi, I am Devashish Thakur. I have two years of experience working for Publicis Sapient. We were building Ayco Wellness for Goldman Sachs, where I was primarily responsible for Web UI, API, and Analytics testing but sometimes also involved with Salesforce testing. I have worked with Java, Selenium, Appium, Charles Proxy, and Postman.

Some Tips & Warnings

  • ℹ️ If you are a Fresher, You can talk about your college and projects.
  • ℹ️ If you have worked for more than one organization, you can include them too. but talk mostly about your previous company if the work was similar.
  • ⚠️ Don't introduce yourself for more than 2-3 minutes

It's just a template. Don't focus too much on the perfect introduction. You just need to communicate your past experiences and expertise to the interviewer.

How to get Interview Calls

Do you also feel, Since none of your friends are working for Google, Amazon, Microsoft, or Adobe... You can't get a referral for these companies? If yes, then you can't be more wrong.

If someone refers you and you join the company, then they get a referral bonus. So it's not like people don't want to help.

Here is how you do it.

  • Get to the point - Don't start with just "Hi..How are you". This line will instantly push away most people as they are not on LinkedIn to have small talk with strangers.
  • Share a Job ID - Don't just say that you need a Software Development job as there are probably 100s of job posts for that same profile in that company. If you provide a Job ID, Your chances of getting a reply will increase significantly.
  • Mention why you are the right person - If you list down your skills and say that you have experience working on these things mentioned in the job requirement, It would be easier for that person to help you.

Example.

Hey Sachin, I saw a job post from Adobe, adobe.com/job-id. I have more than two years of experience working with Java & Automation testing at Publicis Sapient.

I fulfill most of the requirements mentioned in the job post. Can you please help me by referring me to this job? Thanks

Some Tips

  • ℹ️ If a person is not your connection on LinkedIn, then you can try to send a connection request with a message instead of just sending a simple connection request.
  • ℹ️ I generally copied the same message to 5 different people. Chances are one of them will help.

How to handle coding questions

It's the most important part of any technical interview. You need to explain answers such that your knowledge about that topic is conveyed clearly to the Interviewer.

These are a few things that you can do to improve your performance

  • Ask Questions - You can ask questions that will help you understand how to approach the solution.
  • Think about the solution for a minute - You can ask for 1-2 minutes to think about the solution before coming up with an approach
  • Think out loud - Don't just solve the answer, explain your approach also.
  • Don't start with the best solution - You should always discuss the worst case and average case solution first, then solve the problem in the average case and optimize that solution by making changes.

For example, Let's assume that the interviewer has asked you to reverse a string.

You can first start by asking questions like, Are there whitespaces also in the string? Can I use any data structure to solve this?

Then you can discuss the solutions. The first solution can be that you will create a new string, then iterate over the old string from the back to update the new one.

Then once you have solved this, You can say that we can further optimize it by not creating any extra string. Instead, we can iterate to length/2 and keep swapping the values at index and length-index.

Money time - How to negotiate the best offer

Most people don't discuss this in the interview preparation guide but I believe it's probably the most important part of your interview.

I got a ~300% increase from my previous salary because of these simple negotiation strategies.

Let's set up some rules for us.

  • Don't waste the recruiter's time - Don't wait for the last week of your notice period before letting them know that you will not be able to join.
  • Never hold more than three offers - There is nothing wrong with holding multiple offers. But, I don't understand the point of holding 5-10 job offers at a time. If you get a better offer, Then you should let other companies know that you have another offer and are no longer considering them.
  • Don't resign before you get your expected salary - This may be an unpopular opinion but don't resign before you have got your salary as per your expectation.
  • Multiple offers - Recruiters may call this unethical but everyone knows that you will apply for other companies. For that reason, your initial offer is always low.
  • Don't hesitate when talking about money - You have the right to get paid what you deserve, don't hesitate while negotiating.

Once selected by any company, the Recruiter will call you to ask about your current and expected salary.

You can tell them your current salary and your expectation. But, Chances are that you will be offered less salary than your expectation.

You don't need to accept the offer right away. There is always scope for negotiation.

Depending on what kind of company that is, your compensation will include Base Salary, Benefits, Bonus (Sometimes), and Stocks (Sometimes). Some companies don't let you negotiate your base salary. But, you can negotiate your bonus and stocks.

ℹ️ If you don't have any offer, or if you feel like the amount you are getting is higher than your current offer, Then you should accept that offer and keep searching for better one.

I hope, This article has helped you in some way, You can reach out to me on LinkedIn or add a comment here in case of some doubt.

Thanks for reading

 
Share this