spring 2020 software engineering interviewing and wrap up ...rjust/courses/2020spring/cse403… ·...
TRANSCRIPT
![Page 1: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/1.jpg)
CSE 403Software Engineering
Spring 2020
Interviewing and Wrap up
June 05, 2020
![Page 2: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/2.jpg)
● Interviewing● Code-interview examples● Wrapping up the quarter
Today
![Page 3: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/3.jpg)
Interviewing
![Page 4: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/4.jpg)
● If you have done this before, reflect on your experienceand think about what you would add.
● If you have not, you are likely going to be doing this soon!
Overview
![Page 5: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/5.jpg)
1. Recruiter/resume screen2. Preliminary interview(s)
● Non-technical and/or technical phone screening● 1-2 technical phone interviews● 1-2 online programming challenges
3. On-site interview day(s)● About 3-6 in-person technical interviews
4. Follow-up technical phone/video interview(s)
Timeline: 3 weeks to 3 months
The process
![Page 6: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/6.jpg)
● Practice result-first and situation-action-result pitch.○ By how much did you lower costs or increase profits, and how?
● Focus on recent experience and prepare for typical questions.○ Tell me about a project you’ve worked on.○ Tell me about a recent programming challenge you faced.○ Tell me about a recent conflict with a teammate.○ Why do you want to work here?
Studying for non-technical questions
![Page 7: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/7.jpg)
● Practice result-first and situation-action-result pitch.○ By how much did you lower costs or increase profits, and how?
● Focus on recent experience and prepare for typical questions.○ Tell me about a project you’ve worked on.○ Tell me about a recent programming challenge you faced.○ Tell me about a recent conflict with a teammate.○ Why do you want to work here?
Keep in mind your “basic” job description.
Studying for non-technical questions
![Page 8: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/8.jpg)
● Practice result-first and situation-action-result pitch.○ By how much did you lower costs or increase profits, and how?
● Focus on recent experience and prepare for typical questions.○ Tell me about a project you’ve worked on.○ Tell me about a recent programming challenge you faced.○ Tell me about a recent conflict with a teammate.○ Why do you want to work here?
Your CSE 403 reflection is a great starting point.
Studying for non-technical questions
![Page 9: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/9.jpg)
● DO pick a good language and know it well!○ Use language features that make things easy (e.g., list slices in Python)
● DO know the obvious topics○ Depth-first and breadth-first traversals.○ Implementation/operations/traversals/running times for hash tables, binary
(search) trees, arrays, singly-linked lists, and heaps.○ Quicksort, merge sort, ...○ Non-traditional uses of hash tables.○ Dynamic programming.
Studying for technical questions
![Page 10: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/10.jpg)
● DO practice real questions○ Strongly prefer breadth of knowledge to depth.○ Work through the questions, don’t just read the answers.○ Read interview books and websites (interviewers look here too).○ Share with friends (but consider NDAs).
● DO use paper or a whiteboard, not a computer.● DO switch roles with a friend being “interviewer”
and “interviewee”.
Studying for technical questions
![Page 11: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/11.jpg)
● DON’T (re)learn complex data structures in detail○ Your interviewers haven’t written an AVL tree since college, if ever.○ Most questions feature traversals of arrays/strings, linked lists, grids
(two-dimensional arrays), and DAGs.
● DON’T rely on the recruiter to tell you about questionsand topics to expect○ Each interviewer selects their own questions.○ Interviewers are likely from different teams.
Studying for technical questions
![Page 12: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/12.jpg)
1. Write the problem on the whiteboard. Ask clarification questions.
2. Talk through an algorithm. No code yet!
3. Write code at a moderate pace.
4. Step through at least one non-trivial test case. Fix bugs carefully and methodically.
Tackling a technical question: outline
![Page 13: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/13.jpg)
1. Write the problem on the whiteboard. Ask clarification questions.● Guarantees that you understand the question/problem.
● If you’ve done this exact problem, say so and outline a solution(be prepared to describe the solution in detail).
● Discuss simplifying assumptions and clarify the spec:○ What about symbolic links in file systems?○ Does this maze have more than one exit?○ Is the input size bounded (is space complexity an issue)?
Tackling a technical question
![Page 14: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/14.jpg)
1. Write the problem on the whiteboard. Ask clarification questions.
2. Talk through an algorithm. No code yet!● Always mention obvious-but-inefficient solutions. They’re great
fallbacks, and show that you can solve the problem.
● You’re never totally stuck. You can always decompose and solve at least part of the problem, so focus on that!
● Stay positive.
Tackling a technical question
![Page 15: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/15.jpg)
1. Write the problem on the whiteboard. Ask clarification questions.
2. Talk through an algorithm. No code yet!
3. Write code at a moderate pace.● This will feel slow!
● It’s okay to forget some syntax or an API, just say so.
● Use good decomposition: “I really wish I had a function that …” (don’t implement any helpers unless asked to).
● And btw, stay positive :)
Tackling a technical question
![Page 16: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/16.jpg)
1. Write the problem on the whiteboard. Ask clarification questions.
2. Talk through an algorithm. No code yet!
3. Write code at a moderate pace.
4. Step through at least one non-trivial test case. Fix bugs carefully and methodically.● Don’t be careless or fast-paced.
● Make sure to diagnose the root cause before fixing a problem.
● And yes, stay positive :)
Tackling a technical question
![Page 17: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/17.jpg)
Examples
![Page 18: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/18.jpg)
Two code-interview examples
Breakout rooms● Pairs, 2x8 minutes
1. Student 1: interviewer; student 2: interviewee2. Student 2: interviewer; student 1: interviewee
● Coding problems:1. Given a set of n-1 numbers
○ Numbers enumerated from a to b (n numbers)○ One number is missing○ Find the missing number
2. Determine whether a player has won in Tic Tac Toe
![Page 19: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/19.jpg)
● You have to be competent and make the interviewers like you.
● Some interviewers pick a question they know you can’t solvejust to see how far you get and how you handle the stress.
● Postpone important interviews until after you’ve had practicewith other companies.
Other aspects: psychology
![Page 20: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/20.jpg)
● You are also evaluated on the questions you ask.● Demonstrate insights, passion, and critical thinking
○ I’m interested in learning X. Did you come to this company with a background in X already, or are there opportunities to learn it?
○ How do you overcome problem Y given your environment(scale, distributed systems, tools, deployment, etc.)?
Other aspects: your turn to ask questions
![Page 21: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/21.jpg)
● You are also evaluated on the questions you ask.● Demonstrate insights, passion, and critical thinking
○ I’m interested in learning X. Did you come to this company with a background in X already, or are there opportunities to learn it?
○ How do you overcome problem Y given your environment(scale, distributed systems, tools, deployment, etc.)?
● Do you want to work there?○ Can you imagine getting along with your interviewers?○ Questions to ask:
■ Is there opportunity for advancement and movement between projects?■ How much time do you spend in meetings per week, coding per day, etc.? ■ What is the ratio of developers to testers to product managers?
Other aspects: your turn to ask questions
![Page 22: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/22.jpg)
● You got the job, yay!○ Negotiate, it’s expected.○ Make reasonable and justified demands.○ Remember: a lot of money to you is peanuts to them.
● Or you didn’t○ Don’t take it personally, the false-negative rate is really high.○ Reflect on the experience and prepare for the next interview.○ Companies encourage you to “try again and again”.
Did you get the job?
![Page 23: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/23.jpg)
● Cracking the Coding Interview (Gayle Laakmann)● Programming Interviews Exposed (Mongan, Giguere, and Kindler)● Elements of Programming Interviews (Aziz, Prakash, and Lee)● Don’t Call Yourself a Programmer (Blog post, Patrick McKenzie).● How to Get a Job at Google (NYT, Thomas L. Friedman).● UW CSE Recruiting Policy for Employers (UW CSE).
Resources
![Page 24: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/24.jpg)
● Technical questions do not test the most import software engineering skills, but they show up on interviews anyway. Why?
● What are advantages of coding interviews?
● What are disadvantages of coding interviews?
Discussion
![Page 25: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/25.jpg)
Wrapping up a challenging quarter
![Page 26: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/26.jpg)
● Compare your skills today to a quarter ago…○ Bottom line: Your project would be (much) easier for you.○ This is a measure of how much you have learned.
● Your next project can be more ambitious○ Building interesting systems is never easy (like all worthwhile endeavors).○ Practice is a good teacher.○ Requires thoughtful introspection -- don’t learn only by trial and error!
What you have learned in CSE 403
![Page 27: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/27.jpg)
Please complete the course evaluation form online:https://uw.iasystem.org/survey/225417
● Useful to future students● Useful to course staff● Useful to the department
Course evaluation
![Page 28: Spring 2020 Software Engineering Interviewing and Wrap up ...rjust/courses/2020Spring/CSE403… · 1. Recruiter/resume screen 2. Preliminary interview(s) Non-technical and/or technical](https://reader036.vdocuments.us/reader036/viewer/2022071005/5fc306de60e0e83cc5642763/html5/thumbnails/28.jpg)
● System building is fun○ It’s even more fun when building them successfully.
● Be an engineer and solve problems○ Don’t call yourself a programmer.○ Don’t be defined by a technology stack.
● Continue to learn○ Use the techniques and tools of CSE 403 effectively.○ Build, reflect, refine, and repeat.
Go forth and conquer