Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
33 views

Coding For Technical Interviews in MS

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Coding For Technical Interviews in MS

Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Tathastu Insights Session 7

enabled by TwoWaits

Getting the Dream Software


Developer Job
By Shubham Saxena
Software Engineer II, Microsoft India
Ex - Expedia, PayU, HBTI Kanpur Alumni 2016
About Me

Shubham Saxena

- B. Tech (Computer - Working as Software - 4+ years of Industry


Engineer II at Microsoft. Experience in Software
Science), HBTI Kanpur, 2016
Development
The Playbook: Getting the Dream Software Developer Job

- Step 1: The Mindset


- Step 2: The Skill set
- Step 2.1: The Coding Skills
- Step 2.2: The System Design Skills
- Step 2.3: The Behavioural Skills
- Step 2.4: The Interviewing Skills
- Step 3: The Game plan
- Step 3.1: Building strong CV
- Step 3.2: Getting Interview opportunities
Step 1: The Mindset
● I believe, this should be the first step for any big endeavour of our
lives and not just for getting a dream job. You must believe first !!
● We have to have a clear reason WHY we want to do/achieve what
we want to do/achieve. Because, Cracking job interviews at big
companies is a game of patience and skill set. If you don’t have a
reason(purpose) why you wanna do it, then at some point in your
journey to acquire the required skill set, you’re going to want to
quit. At this point, you have to remember why you started !!
How to achieve Step 1: The Mindset ?
- Be Focused. Don’t be in focus !!

- You are the average of 5 persons you surround


yourself with !!

- Have a mentor, a source that motivates you(a book, a


youtube video, a podcast, a song maybe)
Step 2 : The Skill Set
● Based on your experience level figure out what skill sets you need and
start honing these skills and give it time !!
● For example, An Entry level candidate(0-2 yoe) may require ‘great’
coding skills, ‘ok’ System design skills and ‘good’ behavioural skills.
● A mid level candidate(3-5 yoe) may require ‘great’ coding skills,
‘good’ System design skills and ‘good’ behavioural skills.
● A senior level candidate may require ‘good’ Coding skills, ‘great’
System design skills and ‘great’ behavioural skills.
Step 2.1 The Coding Skills
- It’s required because a software developer solves real world problems using computer
programming i.e, data structures and algorithms.
- Competitive programming is an excellent tool to achieve great coding skills.
- Practice Websites: Codechef, spoj, A2oj, Hackerrank*, Hackerearth,
CodingNinja*, Codeforces etc.
- Structured Courses: GeeksForGeeks*, CodingNinja* etc

- A structured self-learning DS/Algo program is an excellent way to achieve great


coding skills.
- Books: Cracking the coding interview*, DS/Algo Made Easy(Question bank)
- Practice Websites: GeeksForGeeks*, Leetcode*, interviewBit* etc
- Structured courses: udemy, coursera, GeeksForGeeks*, Hackerrank,
youtube channels etc
Step 2.2 The System Design Skills(HLD and LLD)
● It’s required because a software developer needs to take decision in his day to
day life to build high performant, scalable, reliable and robust software solutions.
● Industry experience and building different types of projects is the ultimate way to
develop great low level(LLD) and high level(HLD) system design skills.
● A structures self learning system design program is an excellent way to develop
system design skills.
■ Books: Head First Design Patterns* (LLD)
■ Practice Websites: Highscalability.com(HLD), GeeksForGeeks(LLD) etc.
■ Structured courses: Grokking the system design Interview(HLD)* and
Grokking the Object Oriented Design Interview(LLD)(Educative.io)*,
Udemy, Coursera, youtube channels* etc.
Step 2.3 The Behavioural Skills
- It’s required because a software developer needs to work in a team and deal with difficult
people, situations, managers etc.

- Industry experience teaches you a good deal of behavioural skills.

- A structured self-Learning program is an excellent way to achieve great behavioural skills.


- A lot of youtube videos and articles are available to get an understanding of
how to approach a behavioural interview.
- A big collection of possible behavioural interview questions and pre-prepared
answers for these questions using S.T.A.R methodology is the ultimate way to
prepare for behavioural interviews.
- A lot of these questions revolve around the core values of the company and it
differs from company to company.
Step 2.4: The Interviewing Skills
● It’s required because being able to solve a problem is just one part of the equation in a coding interview.
● The interviewer is more interested in your thought process than in your final solution.
● He is judging you on your ability to express your thought process, your speed, your accuracy and your
ability to understand hints and move forward.
● Mock interviews and appearing for as many coding interviews as possible is the ultimate and the only
way to develop interviewing skills as this skill comes with practice and practice alone.
○ Online Mock interview platforms: InterviewBit, Pramp.com etc.
○ Things to consider in an interview:
○ Understand the problem and ask clarifying questions
○ Come up with a brute force solution and then work towards and optimised solution. Don’t
start writing code yet.
○ Once you have a solution, convert it into code and add base conditions.
○ Dry run your code with random and base test cases.
Step 3: The Game Plan
- Now that, you have the right mindset and the required skill set to get
your dream job, you need a game plan to get more and more
Interviewing opportunities.

- However, The problem is that, the recruiter does not know yet, that
you have the right mindset and required skill set for the job. And, the
only way to tell the recruiter that your application is not “just another
job application” is through your CV.
Step 3.1: Building Strong CV and LinkedIn profile
● A strong CV has two characteristics:
○ The aesthetics and the conciseness:
● It should be a one pager and should have consistent usage of fonts and indentation.
○ The content
● It should be grammatically correct.
● It should portray you as an achiever rather than a doer.
● The more achievements / skill sets you have the better.
● Contribute to open source projects, build an app and build your Github profile.
● Competitive programming rank on hackerrank, codechef, spoj.
● Grow your profile, for e.g, Stackoverflow

○ Use the same philosophy to build a strong LinkedIn profile.


○ A sample template can be found here:
○ https://www.overleaf.com/latex/templates/deedy-cv/bjryvfsjdyxz
Step 3.2: Getting the Interview Opportunities
- Now you have all the required weapons in your arsenal. And all you need is an
opportunity.
- Create a List of all the companies that you want to interview with. Categorise the
list into 3 parts:
- Safe Companies(Easy to crack)
- Moderate Companies
- Ambitious Companies( E.g, The Big Four: Google, Microsoft, Apple, Amazon)
- Start your interviews with the safe companies and gradually move towards
Ambitious ones.
- Go to the career website of the company and apply directly.
- Try to connect with the recruiter of that company through linkedIn and
express interest.
- Try to find a referral using your connections and LinkedIn.
If you follow these three steps with sincerity, honesty, determination
and perseverance, then it’s not a matter of ‘IF’ you are going to get
your Dream job. It’s a matter of ‘WHEN’ you are going to get your
Dream Job !!
Q&A
Let’s hear what you guys have to say or
Email us at achintya@twowaits.com

You might also like