TechInterviewPro Flashcards
What does this course provide?
Tips and tricks to pass the technical interview
Coding, system design, algorithms, behavioral interview, negotiation
Step by step process to switch into full fledge tech career
What is this process?
Something that can be learned.
You have to have mindset that this can be practiced
You need to practice for it
It’s a game that can be learned
Could land $200k (6 figures) out of college!
You want to play and win at this game!
Who are the authors?
Joma - earning $300k/year working in tech, ex-Facebook engineer, interned at Microsoft, LinkedInn
Patrick (TechLead) - ex-Google tech lead, runs own company, multi-millionaire, app developer, worked at top Silicon Valley firms, at Google conducted 100+ interviews including phone, onsite (coding, data structures, system design, algorithms, behavior)
What is the end result?
You get a job in tech in Silicon Valley
“We don’t believe in shortcuts to success, but if there is a shortcut this is absolutely it. We have helped multiple friends and family land jobs in tech, and are proud to be able to extend our help to you too now. This will still require a lot of work and effort on your part; we can show you the way, but you need to be the one to walk it. You will get more out of this program the more you put yourself into it. These are real, true & tried tips – you can trust in them.”
What are the various stages in the interview process?
- Homework (coding practice) - features to build, coding problems to solve
2. Phone interview - 25% pass to onsite, initial screening
3. onsite - 10% pass to recieve offers, whiteboard challenge, interviews
- offer - often time senstive, leverage and negotation
Who is actually making the decision to bring you on-site or hire you?
Not the interviewer.
All the interviewer is doing is recording information.
Creating a file on you.
Code is copied into a report.
Hiring manager will look at scores of candidate, decide to bring in for a role that may or may not match
Why shouldn’t you be disheartened if you don’t get the role you’re applying for?
Maybe there just isn’t enough headcount for the role
Example:
limited OS engineer spots
maybe more Android engineer spots
What is the first axis to interviewing?
Can write clean high quality code?
naming (methods, Classes, variables)
OOP (interfaces, design patterns, abstraction, encapsulation)
What is the second axis to interviewing?
Do you understand data structures and algorithms?
Can you solve problems using appropriate data structures and algorithms?
provide big-o analysis of algorithms
algorithms (search, sort, string manipulation)
linear data structure (arrays, hashmaps, linked lists, queues, stacks)
non linear data structures (trees, heaps, tries, graphs, AVLtrees)
Big O analysis, reverse linked list, etc.
What is the third axis to interviewing?
System Design
Can you design a system and provide analysis (tradeoffs, time complexities)?
System Design is a big one and shows your analysis skills.
Time-space analysis & alternative approaches.
You must show your ability to analyze a solution, regardless of whether you get it right or not.
What is the fourth axis to interviewing?
Communication
talk fluidly
technical clarity of communication
explain complicated idea in middle ground
Software Engineering is a team sport, and the ability to communicate clearly and friendly is essential.
The keyword here is “clear.”
In this field it is too easy to start overloading on jargon in an effort to “impress.”
Be human in your conversations, as if you’re talking to your mom.
Just because the interviewer works in “tech,” doesn’t mean they have any clue what you’re talking about (nor does it mean they’re necessarily smart or knowledgeable about your field).
What is the fifth axis?
Speed matters!
What took years to understand is that efficiency is important.
This is about your time management.
Abstract away edge cases, avoid chit chat
solve the problem efficiently
This theme will be re-iterated, but proper time management is the key to success.
What should we focus on during the take-home project?
Writing clean, production quality code
They want to see quality of code
Does this look like good clean, production quality code?
Example:
Netflix gave TechLead a weekend long assignment, Yelp gave TechLead a feature to design
Joma got link to coding excercises (1 hour to solve coding problems)
Advice:
Treat this as part of your job, take it seriously.
Allocate proper time and quiet space.
Do the work.
look up information on internet, use resources
Demonstrate clean production quality code.
What is advice for the phone interview?
They can be challenging.
Be prepared with a computer, good phone reception, good headphones, good internet
Speak confidently, project relaxed sense of self, talk freely, be in a social mood
Show you have some competency and could possibly pass an on-site interview
Maybe typing actual code
Real engineer sometimes
They have a few key questions to see how far you can get
Don’t skip steps
Talk about Big-O, ask clarifying questions, solve problem
If you seem competent, they’ll bring you onsite
domain specific questions - OS related or ML engineer related
What are the two types of phone screens?
1 - Recruiter trying to smoke you.
Asking behavioral questions.
What you’re looking for? Do you fit role? Seem pleasant?
List of yes/no software engineering questions given by an engineer.
Just have to answer them.
What should we be prepared with for our phone interview (screen)?
Be prepared with:
a computer (w/ good internet)
good phone reception (w/ good headphones)
What type of questions do interviewers ask on phone screening?
Niche, domain specific questions
Advice?
Know your tech stack, role applying or domain well
Look up the top questions related to your tech stack, language or role
Top questions for JavaScript
Top questions for React or Node
What questions should you be prepared to answer on the phone-screen?
Prepare for common questions:
Why do you want to work here?
What projects have you done?
What is your visa status?
Why did you leave your last job?
What are you looking for?
Do you want full-time or part-time?
What type of role do you want?
What are key tips for the phone interview?
Know your Resume - Do not under-estimate the phone-screen. While sometimes it is conducted by a non-technical recruiter, at companies like Google it is conducted by the same engineers who may be conducting the on-sites (and while expectations are lower, they may still ask the same tough questions as an on-site!). Be sure to be able to impress quickly.
One big piece of advice here is to show confidence. Many candidates aren’t prepared, can’t talk smoothly, are stuttering or too shy. Especially on the phone, it is hard to gauge whether the candidate is even still there or listening, or whether they’re shy & quivering. Let your enthusiasm show!
Keep time-management in-mind. Phone interviews generally have a time limit, so keep the chit-chat minimal (unless it’s with a recruiter). This is still an interview, where time-management is essential.
Pick 1-2 projects that you’ll be able to explain strongly. The more current, the better. If they ask “So how are you, what have you been up to? Tell me where you’re at now…“ Prepare an answer for this.
Research the Company - Even though you are early in your job hunt, to the interviewer they don’t feel that this is early at all. So, you need to be as prepared as if you were going in to the on-site. Research the company and know the role well.
Prepare for smoke screens - Depending on your chosen field, prepare for smoke-screen questions. These are often quick “yes/no” type of questions on common tricks. In Javascript, it would be questions like “What is a closure?” while in iOS it is “What is a memory cycle?” or “How is a block different from a delegate?”
Prepare for common questions
Why do you want to work here?
What projects have you done?
What is your visa status?
Why did you leave your last job?
What are you looking for?
Do you want full-time or part-time?
What type of role do you want?
Be near a computer - Usually you will need to code on a site like coderpad.io. Familiarize yourself with this.
Audio - Have your phone ready for to use in speaker mode. Even better, plug in some earphones. Usually, the earphones that come with a phone have a better microphone and will let you use the phone hands-free. The earphones can also help if the interviewer has a thick accent, which they occasionally do. You’ll want to make the best of any situation. Set aside a quiet time & location that you can take the call seriously.
Stay enthusiastic - I know that sometimes you can feel down about your job hunt. No matter what, stay enthusiastic. This is all part of “playing the game.” Let a bit of humor show. Most candidates are scared stiff, since the phone-screen weeds out probably 90% of people. Think of it from the perspective of the interviewer – “Oh, great, another candidate who is super nervous to get a call from . Probably unqualified…” So, show a bit of humor, suave & confidence so they don’t bucket you into that group.
Take notes - During the phone screen, you’ll be able to take notes. It’s great to keep notes on the interviewer’s name & role, so you can later ask questions about their position. I like to keep a pen and notepad handy.
Speak clearly and concisely - Since the interviewer can’t see you, pay extra attention to speaking fluidly.
You only need to show potential - Don’t sweat it if you can’t ace everything. Usually for the phone-screen, expectations are lower and if you can show you have potential, that may be sufficient. Focus on demonstrating your analytical ability (as well as a cordial personality) - there is more leeway here on your code not looking its greatest over the phone.
About looking up answers - I’ve heard stories about some candidates who will “secretly” be typing up the answer to a phone quiz, while stalling for time. Interviewers can sometimes hear your keyboard clacking away… If you don’t know, it may be better to just say“I think I’ve heard about this one a while ago, but I can’t recall right now… This is an area I’m really eager to learn more about though, most recently I’ve been putting more time into learning about X.” Remember, the goal is not to evaluate whether you know the answer to some pop quiz question– it is to evaluate whether you are good at learning, whether you are able to work with the team.
Preparation is the key to success. The phone interview is one that catches a lot of people off-guard since it is so early in the process, but if you just invest in over-preparing a bit here, you will already be well-ahead of other candidates.
OS What is the onsite-process?
Bring you in on a weekday (they work on weekdays)
Bring you for the whole day 9am - 5pm
at least 5 x interviews, one hour each
What should we be prepared to talk about during the onsite, phone screen, etc.?
2-3 technical projects you can talk about concisely.
Identify key points you’ve done (not what your team did).
Big-O analysis
alternative versions
thought process, rational, details of system design
What are some tips for preparing for an on-site interview?
Prepare a strong response to “So, tell me about yourself. What brings you here?”
- Have a cordial, concise, and friendly self-introduction that piques curiosity. Avoid arrogance! Many interviewers will dive straight into a coding problem – this is OK, but if you can pique their curiosity enough to have them ask you more about some project you’ve done, you will start off stronger.
2-3 technical projects you can talk about concisely. Identify key points you’ve done (not what your team did).
- some interesting stories you can talk about that show technical challenge.
- alternative versions analysis
- time and space complexity analysis
- system design thinking on your project
- component design on your project (database schema, scaleability, reliability)
Be prepared to talk about the top 2-3 points on your resume. Re-arrange your resume a bit if you need to, or add projects to them so you can point to them.
How many interviews do you have in one day?
Typical 4-6 interviews
One interview is lunch interview (sometimes evaluated)
A mix of topics:
Junior Level:
large coding focus (coding brainteasers, designing algorithms, datastructure)
Senior Level:
Systems design, behavioral (leadership, communication)
OS What are the coding questions interviews?
designed by the engineer - not passed by a recruitor or a standard question bank
Engineer thinks it might be interesting, throws a question at you.
Typically, 45 minutes.
15 minutes introduction
10-15 minutes solve question - time space analysis, be on your game, time management is key
10 minutes - followup problems (at least two)
5 minutes - wrap up
What are the types of things discussed in the 10-15 minute part of one of the coding interview?
What projects they’ve done?
How deep can you talk about the projects technically?
Time space analysis details of your project?
Alternative versions of your projects?
How deeply they can go into each project?
What their interest level is?
What matters a lot?
the first 5 minutes and last 5 minutes matter. A lot!
These are your first & last impressions. Everyone says they’re “passionate about coding,” but if you can show that passion by explaining about a project you’ve done that will be ideal.
What kind of questions do interviewers tend to ask?
Whatever they want -
There’s no “indoctrination” of interviewers, people just ask whatever they want.
People are free to ask whatever they want, although many people will tend to just ask some standard question that they’ve heard about before.
they develop 2-3 questions, and just repeatedly ask those over and over again.
key is to show how you solve it and dig deeper into the problem.
How do you want to come off in your onsite interview?
as someone who is collaborative, eager to learn, and humble
Key traits:
- Eager to learn
- friendly and collaborative
- technically curious
- able to learn from mistakes
- willing to accept feedback and improve oneself
- get-it-done attitude
- results-oriented
OS What should you think about during the onsite interview?
type of role you are applying for
There are many different types of engineers, who work with different technologies, depending on varying organization size
What type of people do startups tend to want?
People who can hit the ground running, already having some experience in technologies like Javascript, web development, iOS, Android, etc.,
What will larger tech companies prefer about you?
Larger tech companies may prefer that you learn their proprietary tech stacks.
Must demonstrate willingness, eagerness to learn!
What are the key questions to master for the behavioral interview?
- A situation where there was a challenging failure and how you recovered from that through learning (learning from failure).
- How you were able to accept feedback and change behavior based on that (accept feedback).
- Technical curiousity, enthusiasm and drive to learn (learning curiosity).
- How do you deal with people you can’t agree with and how to build consensus. (conflict management)
- A project you are proud of or some recent work (technically interesting project).
- Why do you want to work at this company? Make it person to you, specific company mission. (What is your motivation)
- Take on personal projects, show to work on initiative (Initiative and leadership)
- How were you able to tackle a situation with no clear answer? How did you tackle the ambiguity and bring direction to the scenario? (Tackling ambiguous situations)
What is a complete narrative in the behavioral interview?
Start, Challenge
Next, what you did as an individual (action)
Finally, what is the result of the action (result)
What is the key to success?
Preparation
well rested, stories clear and concise, coding interview
What is STAR acryonym stand for?
Situation, task, action, result
Use this to prepare stories
What does it mean to “show” don’t tell on the behavioral interview?
It means give real, concrete stories people can dig into!
give sufficient detail
don’t handwave this!
Prepare before hand and hit key points!
Conflict resolution, building consensus, taking feedback
What is a highly valued trait everybody is looking for?
The ability to take feedback
To improve because of feedback
Most people to jerks, arrogant, don’t admit to shortcoming!
What is the second key trait for the behavioral interview?
The ability to recover from failure.
Many times you’ll build something you got it wrong.
Conflict, things didn’t go your way.
A system crash, how did you recover?
How can you learn from the failure and prevent it?
Tell me about a time where you failed?
Come up with a few stories.
Will dig more.
What were your motives.
What is the third key trait for the behavior interview?
The ability to gain consensus.
Teams disagreeing on things such as prioritization.
How did you build consensus?
What was the process for gaining consensus?
Getting people together.
Leading a discussion.
Document where people could voice opinions.
Stearing people toward a direction.
What do we want to make sure we have for preparation in the behavioral interview?
That we have good stories, good actions, good results
That match the company philosphy (culture).
What is a key trait for junior engineers to demonstrate in the behavioral interview?
Eagerness to learn.
Junior engineer’s immediate priority is to learn quickly
vs.
cross team leadership, etc.
Pretend you care and be curious!
Show your curiousity.
What will it be like to work with you?
Hiring managers want to know!
Go into an interview collaboratively.
Smile, lean forward, positive energy.
Build rapport.
Feel like you belong there.
You can hangout there.
They can treat you as a normal employee.
Get them to like you, treat you like a friend.
Don’t need people to teach you, look out for you.
When does the interview begin?
With a first impression.
Get them to like you, treat you like a friend.
Smile, lean forward, positive energy.
Can you learn?
The ability to learn is essential
Can you learn from mistakes, failures
Facebook, Netflix, Amazon, Google - using proprietary tech stack, learn quickly.
Struggle a little bit, work through together, accept feedback.
What is at fault with a failure?
A process or system, not the employee
find ways to fix the process or system.
learn from failure
Do you take initiative?
Do something out of your own curiosity, initiative, interest!
Junior and Senior engineers must have this!
Show initiative through:
side projects, open source contributions, pet projects, new programming languages learned
G What is a top tip for your interview?
Time management
Make sure you are on track, cut chit chat, save time
give you time to talk of projects, get through white boarding questions
How should you end your interview?
End on a good note
Ask a good final question
First and Last impressions matter!
The way you talk, dress sends first impression
Good questions:
What new technology is the company exploring?
What is the hot new technology?
What are your thoughts on design patterns?
What other recent developments?
How should you act during the interview?
Confident
You are an expert at your craft
You are expected to have competency
collaborative, fairly confident tone
What is a time management trick during the coding interview?
Abstract away the edge cases
Abstract away code to manage your time
How fast can you do it, solving the problem
What should you prepare?
A strong introduction (30 seconds about you)
Discuss:
Talk about recent work, summarize who you are
Most people read resume first time in front of you!
They didn’t study about you prior to meeting you.