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


