Cracking the Technical InterviewCracking the Technical InterviewGayle LaakmannFounder / CEO, CareerCup.com
My BackgroundUPenn BSE / MSE ‘05 in CSEx-Engineer at Google, Microsoft and Apple		+ Offers from Amazon, IBM and others3 Years on Google Hiring CommitteeInterviewed 120+ candidatesPreviously taught 2 courses at UW(Now MBA Student at Wharton / UPenn)
CareerCupFounded 2005Largest source for technical interview questions (3000+ FREE questions)Services:Book (E-Book and Paper)VideoMock interviews
How are interviews structured?How are you evaluated?Process
Technical Interview ProcessInitial Screen (Phone / Campus)4 - 5 on site interviews10 min General40 min Technical10 min Closing
What do companies look for?Are you smart?Algorithmic skillsCan you code?OOO, Cleanness, bug free (sort of), etcWhat are you like?Communication, friendliness, etcWhat have you done?Relevant experience, passion, etc
What do companies look for?Applying
Resume SelectionProject experience!Course workOpen sourceIndependent studiesMaster C++ or JavaSkills PassionWork Ethic
Resume Advice:One Page. (Seriously.)3 Sections: Education, Employment, ProjectsPet Peeve: Save file with your name
Why do you want to work here? What was your favorite project?Interview prep – SOFT SKILLS
Research the company / teamPrepare 10 – 15 questions:Genuine QuestionsHow much time do you spend coding each day?Insightful QuestionsI noticed that Google uses Standard X.  How do you solve problem Y?Passion QuestionsWhat are the opportunities to learn about scalability at Google?Soft Prep – The Company / Team
Create Preparation Grid for Projects+ (maybe) Behavioral GridSoft Prep – Yourself
Strengths vs. WeaknessesMediocre answer: “it was hard because I had to learn new languages / technologies”Not just answering Q’s – show who you are!Soft Prep – Yourself
How do you prep for coding questions?What do you prep?Interview prep – Tech SKILLS
Data structuresAlgorithmsConceptsWhat to study
How to implementWhen to use (pros / cons)Data Structures
ImplementationSpace vs Time ComplexityAlgorithms
ConceptsNot just a concept – know how to code!
Don’t practice on computer!
What do companies look for?Interview – soft SKILLS
The Interview: Chit Chat - TipsBe specific – not arrogant     “Yeah, I did all the hard work for the team”     “I implemented the file system, which was             considered one of the hardest components.”Limited details (else too hard to follow)Ask good questions!
ituationctionesponseThe Interview: Chit Chat - TipsSstructure your responsesAR
How do you tackle hard tech questions?Interview – tech SKILLS
General Advice for Technical QuestionsTalk out loud – show us how you think!Good interviews = hard questionsDon’t be nervous if you can’t solve something!You’re not done untilthey say you’re done.
The Coding Interview: 5 Steps
Asking QuestionsWhat are the data types?How much data?What assumptions do you need?Who is the user?NOTE: Especially important at Microsoft.
OMG!  I have no idea how to solve this problem!Algorithm Discovery Approaches
Algorithm Discovery ApproachesPattern Matching
What problem is this similar to?
Simplify / Generalize
What if the data was a different type?
Base Case & Build
Can you do this just for element 1? 1 and 2? …
Data Structure Brainstorm
Go through all data structures – can they help?Algorithm Discovery ApproachesPattern MatchingA sorted array has been rotated, so that the elements might appear in the order 3 4 5 1 2.  How would you find the minimum element?
Algorithm Discovery ApproachesSimplify / GeneralizeA ransom note can be formed by cutting words out of a magazine to form a new sentence.  How would you figure out if a ransom note (string) can be formed from a given magazine (string)?
Algorithm Discovery ApproachesBase Case & BuildDesign an algorithm to print all subsets of a set.
Algorithm Discovery ApproachesData Structures BrainstormNumbers are randomly generated and sorted into an (expanding) array.  How would you keep track of the median?
Find Problems with Your AlgorithmWhat’s the space / time complexity?What if there’s lots of data?Does your design cause other issues?If there are other issues, did you make the right trade offs?
Pseudo Code & CodePseudo code first – but tell your interviewerUse data structures generouslyWhat are the right ones?Define your own = shows good styleDon’t crowd your codingStart in the upper left corner of board, not bottom
TestingTest your code!Extreme casesCheck for user errorTest general casesCAREFULLY FIX MISTAKES
What about non-algorithm problems?System DesignDesign for small system, then scale.Object Oriented DesignWhat are the major objects?How do they interact?Trace It!
(eg, things that wouldn’t fit in elsewhere)FINAL THOUGHTS
The Interview: Ending ItSmile, be positiveIf you think you bombed, don’t worryFollow up with your recruiters (sometimes they forget)

Cracking The Technical Interview Uw

  • 1.
    Cracking the TechnicalInterviewCracking the Technical InterviewGayle LaakmannFounder / CEO, CareerCup.com
  • 2.
    My BackgroundUPenn BSE/ MSE ‘05 in CSEx-Engineer at Google, Microsoft and Apple + Offers from Amazon, IBM and others3 Years on Google Hiring CommitteeInterviewed 120+ candidatesPreviously taught 2 courses at UW(Now MBA Student at Wharton / UPenn)
  • 3.
    CareerCupFounded 2005Largest sourcefor technical interview questions (3000+ FREE questions)Services:Book (E-Book and Paper)VideoMock interviews
  • 5.
    How are interviewsstructured?How are you evaluated?Process
  • 6.
    Technical Interview ProcessInitialScreen (Phone / Campus)4 - 5 on site interviews10 min General40 min Technical10 min Closing
  • 7.
    What do companieslook for?Are you smart?Algorithmic skillsCan you code?OOO, Cleanness, bug free (sort of), etcWhat are you like?Communication, friendliness, etcWhat have you done?Relevant experience, passion, etc
  • 8.
    What do companieslook for?Applying
  • 9.
    Resume SelectionProject experience!CourseworkOpen sourceIndependent studiesMaster C++ or JavaSkills PassionWork Ethic
  • 10.
    Resume Advice:One Page.(Seriously.)3 Sections: Education, Employment, ProjectsPet Peeve: Save file with your name
  • 11.
    Why do youwant to work here? What was your favorite project?Interview prep – SOFT SKILLS
  • 12.
    Research the company/ teamPrepare 10 – 15 questions:Genuine QuestionsHow much time do you spend coding each day?Insightful QuestionsI noticed that Google uses Standard X. How do you solve problem Y?Passion QuestionsWhat are the opportunities to learn about scalability at Google?Soft Prep – The Company / Team
  • 13.
    Create Preparation Gridfor Projects+ (maybe) Behavioral GridSoft Prep – Yourself
  • 14.
    Strengths vs. WeaknessesMediocreanswer: “it was hard because I had to learn new languages / technologies”Not just answering Q’s – show who you are!Soft Prep – Yourself
  • 15.
    How do youprep for coding questions?What do you prep?Interview prep – Tech SKILLS
  • 16.
  • 17.
    How to implementWhento use (pros / cons)Data Structures
  • 18.
    ImplementationSpace vs TimeComplexityAlgorithms
  • 19.
    ConceptsNot just aconcept – know how to code!
  • 20.
  • 21.
    What do companieslook for?Interview – soft SKILLS
  • 22.
    The Interview: ChitChat - TipsBe specific – not arrogant “Yeah, I did all the hard work for the team” “I implemented the file system, which was considered one of the hardest components.”Limited details (else too hard to follow)Ask good questions!
  • 23.
    ituationctionesponseThe Interview: ChitChat - TipsSstructure your responsesAR
  • 24.
    How do youtackle hard tech questions?Interview – tech SKILLS
  • 25.
    General Advice forTechnical QuestionsTalk out loud – show us how you think!Good interviews = hard questionsDon’t be nervous if you can’t solve something!You’re not done untilthey say you’re done.
  • 26.
  • 27.
    Asking QuestionsWhat arethe data types?How much data?What assumptions do you need?Who is the user?NOTE: Especially important at Microsoft.
  • 28.
    OMG! Ihave no idea how to solve this problem!Algorithm Discovery Approaches
  • 29.
  • 30.
    What problem isthis similar to?
  • 31.
  • 32.
    What if thedata was a different type?
  • 33.
  • 34.
    Can you dothis just for element 1? 1 and 2? …
  • 35.
  • 36.
    Go through alldata structures – can they help?Algorithm Discovery ApproachesPattern MatchingA sorted array has been rotated, so that the elements might appear in the order 3 4 5 1 2. How would you find the minimum element?
  • 37.
    Algorithm Discovery ApproachesSimplify/ GeneralizeA ransom note can be formed by cutting words out of a magazine to form a new sentence. How would you figure out if a ransom note (string) can be formed from a given magazine (string)?
  • 38.
    Algorithm Discovery ApproachesBaseCase & BuildDesign an algorithm to print all subsets of a set.
  • 39.
    Algorithm Discovery ApproachesDataStructures BrainstormNumbers are randomly generated and sorted into an (expanding) array. How would you keep track of the median?
  • 40.
    Find Problems withYour AlgorithmWhat’s the space / time complexity?What if there’s lots of data?Does your design cause other issues?If there are other issues, did you make the right trade offs?
  • 41.
    Pseudo Code &CodePseudo code first – but tell your interviewerUse data structures generouslyWhat are the right ones?Define your own = shows good styleDon’t crowd your codingStart in the upper left corner of board, not bottom
  • 42.
    TestingTest your code!ExtremecasesCheck for user errorTest general casesCAREFULLY FIX MISTAKES
  • 43.
    What about non-algorithmproblems?System DesignDesign for small system, then scale.Object Oriented DesignWhat are the major objects?How do they interact?Trace It!
  • 44.
    (eg, things thatwouldn’t fit in elsewhere)FINAL THOUGHTS
  • 45.
    The Interview: EndingItSmile, be positiveIf you think you bombed, don’t worryFollow up with your recruiters (sometimes they forget)
  • 46.
    The OfferIt’s alwaysnegotiableHelps if you have competing offerDon’t lie – companies know what competitors offerIs it really what you want?Money, career options, etc
  • 47.
    My Red Flags:People who…… wrote code and didn’t test it… found mistakes and would make random fixes… jammed things messily into an existing data structure… didn’t consider the impact of their algorithms… were scared to try
  • 48.
    Take Aways –Getting ReadyGet Project ExperienceShow project experience on resumeS. A. R. (Situation Action Result)Prepare Project / Behavioral Grids
  • 49.
    Technical Interview PrepThingsto know (data structures, algorithms, concepts)Simple  Know ImplementationComplex  Know ConceptsPractice interview questions!
  • 50.
    At The Interview BeniceInterviews are supposed to be hardApproachesPattern matchingSimplify / GeneralizeBase Case & BuildData Structure Brainstorm
  • 51.
    Other ResourcesE-BookVideoPaperMock InterviewsSlidesposted at CareerCup.com/lectures20% Discount Code:[removed from online posting – email support@careercup.com to get it]I have removed the discount code from online posting because, well, things are Google-able and the code is intended for penn students. Please email gayle@careercup.com from your UW email address to get the code.

Editor's Notes

  • #13 What you want to know:How much time do you spend coding per day? In meetings?How does code get shipped?Insightful QuestionsI noticed that Google Talk uses the XMPP standard, and …Passion QuestionsI love learning about scalable systems. What are opportunities at Google?
  • #18 Hashtables – super important!!!
  • #20 Bit manipulation – super important!Recursion: how does recursion impact space and time?Practice converting from iterative into recursion