Intro



Class Rules
- Please mute yourself in class
- During the class, I'll pause for Q&A. You can type in chat or unmute for your questions.
- Please change your name in go to meeting.
- Please check your drive for slides



Who am I?
- Work in FAANG
- 10+ years of engineering experience
- Participated more than 100+ interviews (coding, design, behavior...)



Who are you?
- Undergraudate
- Graduate
- Junior engineers (<2yrs)
- Experienced engineers (> 2 yrs)
- 转专业



Hiring Process
- JD Post
- Resume screening
- Recruiter reach-out and phone interview
- Technical phone screening (1 ~ 2)
- sometimes replaced by OA
- On-site Interviews (4-6)
- Offer
- HM sell and offer signing



General Hiring vs Team Hiring
General hiring
- Interviewers can be from unrelated teams
- Looking for candidates with excellent skills
- Team match after offer
- e.g. Google, Meta/FB
Team hiring
- Interviewers are from the team you will be joining
- Hiring manager interview
- Looking for candidates that fit
- e.g. Amazon, Apple



Job Application
- Refine your resume
- Write cover letter
- Seek Internal Referral
- referral needs to be submitted before you apply for the job
- friends, colleagues, alumni...
- tradeoff: referral vs apply earlier
- Don't stick to a particular position



Resume Tips
- Adjust your resume
- specific to the company
- specific to the position
- Be concise and specific
- Less is more
- Be authentic



Q&A



OA



- Do not copy paste!
Recruiter Phone Interview
- Self introduction
- Avoid to be too technical, assuming recruiter does not understand technical details
- Give them opportunities to ask questions
- Past experience, projects etc.
- Sometimes, recruiter can ask screening questions
- Fundamental Questions about Computer Science
- "what's the runtime complexity for quick sort?..."
- Behavior questions
- "can you tell me a time... "
- Fundamental Questions about Computer Science



Basic CS Questions
Programing
- Algorithm: Time/Space Complexity, Sorting, Searching, DP...
- Data structure: HashMap, Stack, Queue...
Operating System
-
Processes/threads management, Scheduling and Concurrency
-
Virtual Memory, mutex, Semaphore
-
Networking, Distributed System
-
...
Database
- ACID
- SQL vs NoSQL



Technical Phone Screen Interview
- Self Introduction
- Project experience, fundamental CS questions
- Online coding questions (2-3)
- Opportunity to ask interviewer questions



Some Coding Tips
- Clarify questions
- Language Choice
- Unless specified, use the language you are mostly familiar with
- For BE positions, commonly used: Java, C++, Python
- Practice typing / coding speed
- Use simple variable / function names
- Write test cases






Some Coding Tips
- Be idiomatic
ls = list()
for element in range(10):
if not(element % 2):
ls.append(element)
# We may also employ a lambda function
ls = list(filter(lambda element: not(element % 2), range(10)))What's a better way to write this in Python?



Some Coding Tips
- Be idiomatic
ls = list()
for element in range(10):
if not(element % 2):
ls.append(element)
# We may also employ a lambda function
ls = list(filter(lambda element: not(element % 2), range(10)))ls = [element for element in range(10) if not(element % 2)]



Some Coding Tips
- Be concise and straightforward
- we will be using Java in this class
List<Person> filtered = new ArrayList<>();
for (Person p : people) {
if (p.age() < 19) {
filtered.add(p);
}
}
return filteredWhat's a better way to write this?



Some Coding Tips
- Be concise and straightforward
- we will be using Java in this class
List<Person> filtered = new ArrayList<>();
for (Person p : people) {
if (p.age() < 19) {
filtered.add(p);
}
}
return filteredreturn people.filter(p -> p.age() < 19).collect(toList());


How to get familiar with languages?
- Read
- Write
- Don't stop at a working solution



Coding Prep




Coding Prep




Q&A
On-Site Interview
- Coding / algorithms (Whiteboard)
- System design
- Technical communication / behavior
- Hiring manager interview



System Design
-
Cheatsheet: https://gist.github.com/vasanthk/485d1c25737e8e72759f




System design tips
- Think interviewer as your colleague and you are working out a problem together
- Clarify - understand the question
- Callback
- Start with high-level, then dive into details
- Learn how to draw architecture diagrams
- Key differentiator: communication!



Interview Prep
- Mock interview
- Pair up
- 以赛代练



Q&A



Behavior
- Understand company culture
- e.g. https://jobs.netflix.com/culture
- https://www.amazon.jobs/content/en/our-workplace/leadership-principles
- prepare 1-2 examples each



Communication
- Understand what interviewer is looking for
- Be clear
- Be concise
- Don't be chatty
- Think out loud
- Use examples



面试心态




复盘 & 总结



复盘最好在面试结束后的当晚完成,整理每一轮的面试细节,找 出自己的不足,并且找到最优答案
- 知识点查缺补漏
- 心态调整
Interview Results
Do follow up with recruiters after the interview, but don't be too often. It usually takes 1-2 weeks to deliver results.
- Offer
- Review
- Negotiate
- May meet hiring manager
- Reject
- If you don't hear anything after 2+ weeks...
- Ask for feedback (most companies do not share)
- Follow up with recruiters to see if there are any other opportunities
- Move on



Q&A



Syllabus
- Introduction
- Recursion
- BFS & DFS
- DP
- Tree, Trie
- Stack, Queue
- Heap



- Hashmap
- Sorting
- Graph
- Union Find
- Bit Manipulation
- Design
- Final
直通硅谷
- Resume Suggestion
- Mock Interview
- Project Suggestion
- Tech Company Interview Tips
- Career Path Suggestion
- Internal Referral



What students should do
- Classes
- Homework
- Shouldn't memorize solutions, try to categorize



Class Schedule
- Every Friday/Saturday 18:30 - 20:30 PST



How to contact us
- Class Teacher:tom.liu@zhitongguigu.com
- Teaching Assistant:mick.ouyang@zhitongguigu.com



【直通硅谷】01 Introduction
By ZhiTongGuiGu
【直通硅谷】01 Introduction
Introduction to Zhitongguigu
- 104