The document provides tips for software engineering interviews, including how to prepare resumes and projects that highlight skills, how to approach technical questions by thinking through examples and optimizations, and common behavioral and design questions that assess how applicants approach problems. The presenter emphasizes practicing communication and problem-solving skills over rote memorization and knowing exact answers.
Gayle Laakmann McDowell5gayle in/gaylemcdgayle
How to Get an Interview
Your Background
Education
Work Experience
Projects
Github/ OnlineProfile
Make a great resume
McDowell | CareerCup.com
gayle in/gaylemcdgayle 7GayleLaakmann McDowell
How We
Review
Resumes
1. Pull resume out of giant stack
2. Spot-check:
companies, projects, etc.
3. Skim bullets to see if you’ve written real
code.
4. Go tonextresume & whine abouthowmany
moreyouhaveleft.
InterviewReject
“Glancedat,”not
read.
15seconds
8.
How CS ResumeShouldLook
Short
(1– 2 line bullets)
3 – 4 Projects
Courses & independent
Finished or unfinished
List of Technical Skills
Short! Cut the “fluff.”
GPA if at least 3.0
max (in-major, overall)
One Page Only!
Unless > 10 years exp.
A Real Resume Format
with organized columns
Focus on Accomplishments
not responsibilities
Observe: No Objective!
Objectives / summaries
are almost always useless.
9.
gayle in/gaylemcdgayle 9GayleLaakmann McDowell
Talking
to
Recruiters
Show:
What you’vedone(mobileapp?Show
it!)
What you’reexcitedabout
Have a “pitch” ready
Weird is okay
(arrogantisnot)
McDowell | CareerCup.com
Gayle Laakmann McDowell12gayle in/gaylemcdgayle
Your Past Work
1 – 2 Hard Projects
Hard/ cool
Youwerecentral
Technical depth
All Past Work
Challenges,architecture,
tradeoffs,mistakes,successes,
motivations
Whatdid YOU do?
gayle in/gaylemcdgayle 14GayleLaakmann McDowell
How
You’re
Judged
How did you do RELATIVE
to other candidates on
the SAME question?
… it’s about how quickly
you solved it relative to
other candidates.
It’s not about how
quickly you solved
the problem…
gayle in/gaylemcdgayle 22
z
GayleLaakmann McDowell
How
To
Approach
① Scope the Problem
Askquestions
Make appropriateassumptions
② Define Key Components
Can besomewhatnaïve
③ Identify Issues
Bottlenecks,tradeoffs
④ Repair & Redesign
DiscussTop->Down
23.
Gayle Laakmann McDowell23gayle in/gaylemcdgayle
How to Act
DRIVE
Leadtheprocess
Be openaboutissues
TEAMWORK
Beopentofeedback
Tweak asnecessary
24.
gayle in/gaylemcdgayle 24
z
GayleLaakmann McDowell
How
To
Prepare
Read about design of major
companies
Twitter,Facebook,Quora,Google,etc.
ThinkaboutWHY they’redesigned
thatway
Learn/review key concepts
Taskqueues,databases,sharding,etc.
Practice questions
gayle in/gaylemcdgayle 30
z
GayleLaakmann McDowell
What
is NOT
expected
To know the answers
To solve immediately
To code perfectly
(It’snice.Itjustdoesn’t
happen*.)
*Okayfine.Ithappenedonce,in2000+hiringpackets.
31.
gayle in/gaylemcdgayle 31
z
GayleLaakmann McDowell
What
IS
expected
Be excitedabout hard problems
More thanjust “correct”
Drive!
Keeptrying when stuck
Write real code
Showmehowyouthink!
Gayle Laakmann McDowell40gayle in/gaylemcdgayle
Techniques to Develop Algorithms
Optimize
A. BUD
B. Space/time
C. Doityourself
Solve
D. Recursion
E. Solve “incorrectly”
F. Other data structures
Pushyourself!
41.
Gayle Laakmann McDowell41gayle in/gaylemcdgayle
(A) Look for BUD
Bottlenecks
Unnecessary work
Duplicated work
Gayle Laakmann McDowell54gayle in/gaylemcdgayle
(C)Do it yourself
Findpermutationsof swithinb
s = abbc
b = babcabbacaabcbabcacbb
Findthem!
… now how didyou actuallydoit?
55.
Gayle Laakmann McDowell55gayle in/gaylemcdgayle
Techniques to Develop Algorithms
Optimize
A. BUD
B. Space/time
C. Doityourself
Solve
D. Recursion
E. Solve “incorrectly”
F. Other data structures
Pushyourself!
56.
Gayle Laakmann McDowell56gayle in/gaylemcdgayle
(D) Recursion/ Base Case & Build
Subsets of a set
{} {}
{a} {}, {a}
{a, b} {}, {a}, {b}, {a, b}
{a, b, c} …
Subsets of {S1…Sn-1} + Sn to each
• Careful!“This sounds recursive” is 50%
accurate
• Bottom-up approach, top-down
implementation
57.
Gayle Laakmann McDowell57gayle in/gaylemcdgayle
(E) Solve “incorrectly”
① Develop incorrectsolution
② Identifywhy preciselyit’s incorrect
③ Repair
④ (& Repeat)
58.
Gayle Laakmann McDowell58gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try: flipcoin
Coin=Heads
Branch Left
Coin=Tails
Branch Right
59.
Gayle Laakmann McDowell59gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try: random number in {0, 1, 2}
R=0
Branch Left
R=2
Branch Right
R=1
Return root
60.
Gayle Laakmann McDowell60gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try:
Return rootwith1/n probability
Then flipcoin(heads left,tails->right)
61.
Gayle Laakmann McDowell61gayle in/gaylemcdgayle
(E)Solve “incorrectly”
Random node in BST
Try: pick random # 0 throughn-1
R=0
Return root
R>left.size
Branch right
1<=R<=left.size
Branch left