Cracking the Technical InterviewCracking the Technical InterviewGayle LaakmannFounder / CEO, CareerCup.com
My BackgroundPenn BSE / MSE ‘05 in CSEx-Engineer at Google, Microsoft and Apple		+ Offers from Amazon, IBM and others3 Years on Google Hiring CommitteeInterviewed 120+ candidates
CareerCupFounded 2005Largest source for technical interview questions (3000+ FREE questions)Services:BookVideoMock 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 ClosingSometimes “blind” interview
Evaluation (What They Say)
Big Company Evaluation (Actual)Experience
Big Company Eval = No Red Flags“Better to lose a good candidate than to hire a bad one.”“Better to lose a good candidate than to hire a bad one.”
Smaller CompaniesInterview process variesCare more about experience / personalityMight ask to see “portfolio”
What do companies look for?Applying
What do companies look for?Project experience!Course workOpen sourceIndependent studiesWeiss Tech HouseKnow C++ or Java wellSkills PassionWork Ethic
Resume Advice:One Page. Seriously.3 Sections: Education, Employment, ProjectsList languages with experience levelPet 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 questions:Genuine QuestionsThings you really want to knowInsightful QuestionsTechnical questions that show your CS knowledgePassion QuestionsQuestions that show your tech passionSoft 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 ChatBeginning + End of InterviewWhat? Resume questions (hardest bug, etc)General questionsOpportunity for you to ask questionsWhy? Get to know your personality / interestsRELAXES you
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.
Question TypesStandard Coding and Algorithms“Reverse a linked list”Object Oriented Design“Design a parking lot”Large System Design“Design a program to crawl the web”Trivia“What does a “vtable” refer to in C++”
Standard Coding and AlgorithmsQuestion Type #1
5 Steps#1Standard Coding and Algorithms
Asking QuestionsWhat are the data types?How much data?What assumptions do you need?Who is the user?NOTE: Especially important at Microsoft.#1Standard Coding and Algorithms
Algorithm Generation#1Standard Coding and AlgorithmsOMG!  I have no idea how to solve this problem!
Algorithm GenerationPattern MatchingWhat problem is this similar to?Simplify / GeneralizeWhat if the data was a different type?Base Case & BuildCan you do this just for element 1? 1 and 2? …Data Structure BrainstormGo through all data structures – can they help?#1Standard Coding and Algorithms
Algorithm GenerationPattern MatchingWrite code to reverse the order of words in a sentence.	Example:		input: “iPad is an awful name”		output: “name awful an is iPad”#1Standard Coding and Algorithms
Algorithm GenerationSimplify / GeneralizeWrite a program to remove the duplicate characters in a string without using any additional buffers.#1Standard Coding and Algorithms
Algorithm GenerationBase Case & BuildDesign an algorithm to print all valid combinations of n pairs of parentheses.	Example:		input: n = 3		output: ( )( )( ), ( ) ( () ), ( () )(), ((()))#1Standard Coding and Algorithms
Algorithm GenerationData Structures BrainstormDesign an algorithm to figure out if someone has won a game of tic-tac-toe.  Make it as fast as possible.#1Standard Coding and Algorithms
Poking HolesWhat’s 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?#1Standard Coding and Algorithms
Pseudo Code & CodePseudo code first – but say that!Use 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#1Standard Coding and Algorithms
TestingTest your code!Extreme casesCheck for user errorTest general casesCAREFULLY FIX MISTAKES#1Standard Coding and Algorithms
Object Oriented DesignQuestion Type #2
OOD Steps#2Object Oriented DesignClarifying QuestionsWhat are the core objects?What is the interaction (eg, methods)?Walk through uses.  Have you missed anything? Are there any algorithms you need?
OOD Example#2Object Oriented DesignDesign the data structures for a restaurant
Restaurant OOD#2Object Oriented Design1. Clarifying QuestionsHow many guests?Buffet or entrees?What meals does it serve?
Restaurant OOD#2Object Oriented Design2. Core ObjectsGuestPartyServerTableMealOrder
Restaurant OOD#2Object Oriented Design3. InteractionServer assigned to Table by HostGuests order Meal from Menu via ServerOops! Forgot menu!
Restaurant OOD#2Object Oriented Design4. Walk Through UsesParty enters with Guest(s). Assigned to Table.  Order items.
Restaurant OOD#2Object Oriented Design5. AlgorithmsHow do you find a free table?How do you remove out-of-stock item from menu?
Large ScaleSystem DesignQuestion Type #3
Large Scale Steps#3Large Scale System DesignSimplifyDevelop algorithm for simple caseGeneralizeWhat problems do you hit?Can you solve them?
TriviaQuestion Type #4
Trivia#4TriviaHopefully you know the answer!Practice more Else…Admit that you don’t knowTry to derive the answer
(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)
The OfferIt’s always negotiableHelps if you have competing offerDon’t lie – companies know what competitors offerIs it really what you want?Money, career options, etc
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
Take Aways – Getting ReadyGet Project ExperienceShow project experience on resumeS. A. R. (Situation Action Result)Prepare Project / Behavioral Grids
Technical Interview PrepThings to know (data structures, algorithms, concepts)Simple  Know ImplementationComplex  Know ConceptsPractice interview questions!
At The Interview	Be niceInterviews are supposed to be hardApproachesPattern MatchingSimplify / GeneralizeBase Case & BuildData Structure Brainstorm
Other ResourcesE-BookVideoMock InterviewsSlides posted at CareerCup.com/slideswww.CareerCup.com20% discount with code:[removed from online posting – email me 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 UPENN email address to get the code.

Cracking The Technical Interview

  • 1.
    Cracking the TechnicalInterviewCracking the Technical InterviewGayle LaakmannFounder / CEO, CareerCup.com
  • 2.
    My BackgroundPenn BSE/ MSE ‘05 in CSEx-Engineer at Google, Microsoft and Apple + Offers from Amazon, IBM and others3 Years on Google Hiring CommitteeInterviewed 120+ candidates
  • 3.
    CareerCupFounded 2005Largest sourcefor technical interview questions (3000+ FREE questions)Services:BookVideoMock 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 ClosingSometimes “blind” interview
  • 7.
  • 8.
    Big Company Evaluation(Actual)Experience
  • 9.
    Big Company Eval= No Red Flags“Better to lose a good candidate than to hire a bad one.”“Better to lose a good candidate than to hire a bad one.”
  • 10.
    Smaller CompaniesInterview processvariesCare more about experience / personalityMight ask to see “portfolio”
  • 11.
    What do companieslook for?Applying
  • 12.
    What do companieslook for?Project experience!Course workOpen sourceIndependent studiesWeiss Tech HouseKnow C++ or Java wellSkills PassionWork Ethic
  • 13.
    Resume Advice:One Page.Seriously.3 Sections: Education, Employment, ProjectsList languages with experience levelPet Peeve: Save file with your name
  • 14.
    Why do youwant to work here? What was your favorite project?Interview prep – SOFT SKILLS
  • 15.
    Research the company/ teamPrepare questions:Genuine QuestionsThings you really want to knowInsightful QuestionsTechnical questions that show your CS knowledgePassion QuestionsQuestions that show your tech passionSoft Prep – The Company / Team
  • 16.
    Create Preparation Gridfor Projects+ (maybe) Behavioral GridSoft Prep – Yourself
  • 17.
    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
  • 18.
    How do youprep for coding questions?What do you prep?Interview prep – Tech SKILLS
  • 19.
  • 20.
    How to implementWhento use (pros / cons)Data Structures
  • 21.
    ImplementationSpace vs TimeComplexityAlgorithms
  • 22.
    ConceptsNot just aconcept – know how to code!
  • 23.
  • 24.
    What do companieslook for?Interview – soft SKILLS
  • 25.
    The Interview: ChitChatBeginning + End of InterviewWhat? Resume questions (hardest bug, etc)General questionsOpportunity for you to ask questionsWhy? Get to know your personality / interestsRELAXES you
  • 26.
    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!
  • 27.
    ituationctionesponseThe Interview: ChitChat - TipsSstructure your responsesAR
  • 28.
    How do youtackle hard tech questions?Interview – tech SKILLS
  • 29.
    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.
  • 30.
    Question TypesStandard Codingand Algorithms“Reverse a linked list”Object Oriented Design“Design a parking lot”Large System Design“Design a program to crawl the web”Trivia“What does a “vtable” refer to in C++”
  • 31.
    Standard Coding andAlgorithmsQuestion Type #1
  • 32.
  • 33.
    Asking QuestionsWhat arethe data types?How much data?What assumptions do you need?Who is the user?NOTE: Especially important at Microsoft.#1Standard Coding and Algorithms
  • 34.
    Algorithm Generation#1Standard Codingand AlgorithmsOMG! I have no idea how to solve this problem!
  • 35.
    Algorithm GenerationPattern MatchingWhatproblem is this similar to?Simplify / GeneralizeWhat if the data was a different type?Base Case & BuildCan you do this just for element 1? 1 and 2? …Data Structure BrainstormGo through all data structures – can they help?#1Standard Coding and Algorithms
  • 36.
    Algorithm GenerationPattern MatchingWritecode to reverse the order of words in a sentence. Example: input: “iPad is an awful name” output: “name awful an is iPad”#1Standard Coding and Algorithms
  • 37.
    Algorithm GenerationSimplify /GeneralizeWrite a program to remove the duplicate characters in a string without using any additional buffers.#1Standard Coding and Algorithms
  • 38.
    Algorithm GenerationBase Case& BuildDesign an algorithm to print all valid combinations of n pairs of parentheses. Example: input: n = 3 output: ( )( )( ), ( ) ( () ), ( () )(), ((()))#1Standard Coding and Algorithms
  • 39.
    Algorithm GenerationData StructuresBrainstormDesign an algorithm to figure out if someone has won a game of tic-tac-toe. Make it as fast as possible.#1Standard Coding and Algorithms
  • 40.
    Poking HolesWhat’s 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?#1Standard Coding and Algorithms
  • 41.
    Pseudo Code &CodePseudo code first – but say that!Use 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#1Standard Coding and Algorithms
  • 42.
    TestingTest your code!ExtremecasesCheck for user errorTest general casesCAREFULLY FIX MISTAKES#1Standard Coding and Algorithms
  • 43.
  • 44.
    OOD Steps#2Object OrientedDesignClarifying QuestionsWhat are the core objects?What is the interaction (eg, methods)?Walk through uses. Have you missed anything? Are there any algorithms you need?
  • 45.
    OOD Example#2Object OrientedDesignDesign the data structures for a restaurant
  • 46.
    Restaurant OOD#2Object OrientedDesign1. Clarifying QuestionsHow many guests?Buffet or entrees?What meals does it serve?
  • 47.
    Restaurant OOD#2Object OrientedDesign2. Core ObjectsGuestPartyServerTableMealOrder
  • 48.
    Restaurant OOD#2Object OrientedDesign3. InteractionServer assigned to Table by HostGuests order Meal from Menu via ServerOops! Forgot menu!
  • 49.
    Restaurant OOD#2Object OrientedDesign4. Walk Through UsesParty enters with Guest(s). Assigned to Table. Order items.
  • 50.
    Restaurant OOD#2Object OrientedDesign5. AlgorithmsHow do you find a free table?How do you remove out-of-stock item from menu?
  • 51.
  • 52.
    Large Scale Steps#3LargeScale System DesignSimplifyDevelop algorithm for simple caseGeneralizeWhat problems do you hit?Can you solve them?
  • 53.
  • 54.
    Trivia#4TriviaHopefully you knowthe answer!Practice more Else…Admit that you don’t knowTry to derive the answer
  • 55.
    (eg, things thatwouldn’t fit in elsewhere)FINAL THOUGHTS
  • 56.
    The Interview: EndingItSmile, be positiveIf you think you bombed, don’t worryFollow up with your recruiters (sometimes they forget)
  • 57.
    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
  • 58.
    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
  • 59.
    Take Aways –Getting ReadyGet Project ExperienceShow project experience on resumeS. A. R. (Situation Action Result)Prepare Project / Behavioral Grids
  • 60.
    Technical Interview PrepThingsto know (data structures, algorithms, concepts)Simple  Know ImplementationComplex  Know ConceptsPractice interview questions!
  • 61.
    At The Interview BeniceInterviews are supposed to be hardApproachesPattern MatchingSimplify / GeneralizeBase Case & BuildData Structure Brainstorm
  • 62.
    Other ResourcesE-BookVideoMock InterviewsSlidesposted at CareerCup.com/slideswww.CareerCup.com20% discount with code:[removed from online posting – email me 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 UPENN email address to get the code.

Editor's Notes

  • #16 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?
  • #21 Hashtables – super important!!!
  • #23 Bit manipulation – super important!Recursion: how does recursion impact space and time?Practice converting from iterative into recursion