Preparing for a Technical Coding Phone Interview
Ashik Raj ManandharLead Mobile Engineer, Pocket Gems
• Graduated Berkeley EECS 2008 in Robotics
• Awarded Berkeley EECS 2009 Warren Dere Award for
Best Senior Engineering Design
• Worked on computer vision and media streaming
software for unmanned aerial vehicles for the defense
industry
• Joined Pockets Gems as Engineer #3
• Lead the engineering on Tap Pet Hotel – #4 Top Grossing
App of 2011
• Lead Platform at Pocket Gems
• Working on an exciting new title
• Relax.
• Know your fundamentals
• Have a good breadth of knowledge
• Know when to use each of your CS tools
Get a LOT of sleep. Don’t cram!
• Find a location for your phone interviews that
• Has good WiFi
• Has good reception
• Is quiet
• Listen
• Breathe
• Explain your thought process
• Ask a lot of informed questions
• Recruiters are your friend
• Quickly judge if you’re a good fit• How well do you know your fundamentals?
• What’s your thought process like?
• What’s your personality like?
• Any red flags?
• Typically ~1 hour• 5 minutes for administrivia
• 10 minutes for you to ask us questions
• Leaves ~45 minutes for us to ask you questions
• We could ask you super in-depth technical questions• We’d spend at least 20 min giving you the question
• You’d only have 20 min to answer the question
• We’ll focus on fundamentals• Things all software people should know
• Things we know you know
• Less time spent asking the question
• More time for you to show us how you think
• Your programming language
• Your bread and butter
• Make sure you can answer fizzbuzz
• Commonly used elements – strings, arrays, basic syntax and data types
• Know how they work
• Know how to implement them
• Know when to use them
• Know when not to use them
• Example Question – Reverse a singly-linked linked list in place
• Example Question – Print out a tree by level
• Example Question – Given a node in a graph, traverse the graph to find a specific node
• Example Question – Use a stack to reverse a linked list
• Example Question – Use a linked list to implement a queue
• Example Question – Implement a hash table
• Algorithmic complexity analysis
• DFS and BFS
• BSTs
• Object oriented programming
• Inheritance, interfaces, subclassing, polymorphism
• OO Design Patterns
• Singleton, Observer, Factory, etc.
• Multithreading
• Threads, processes, semaphores, concurrency
• Compiled vs. interpreted
• Pros and Cons
• Know your fundamentals
• Know when it’s the right time to use each of your tools
• Think out loud
• Ask questions on the level of detail required
• Think of test cases, and verbally walk through them before saying you’re done
• Front load your programming classes
• Write code • in Stypi and/or Google Docs
• on paper
• on a whiteboard
• Have a non-technical friend ask you programming questions• Answer the question on paper
• Explain what you’re doing as you’re doing it
• Review your Data Structures books and class notes
• Review the Head First book for your programming language http://shop.oreilly.com/category/series/head-first.do
• Review Algorithms and Operating Systems books and class notes
• Review your project classes
• Think through your projects
• Think through each of your design decisions
• Interview books
• Programming Interviews Exposed http://www.piexposed.com/
• Cracking The Coding Interview http://www.crackingthecodinginterview.com/
• Review websites
• TopCoder Algorithms Tutorials http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=S
tatic
• Sequoia backed startup making games
• Building the world’s best mobile engineering team
• Becoming the global leader in mobile entertainment
• #1 and #4 Top Grossing apps of 2011
• 2 of the Top Grossing apps of 2013
• Over 150 million installs
• iOS and Android
• Most people join with little to no knowledge in Objective-C and other languages we use
• Looking for people with solid fundamentals
• Learn from experienced engineers at Pocket Gems
• Competitive salary
• Brilliant people
• Challenging and meaningful work
• Delicious food
• $5000 external referral bonus (per referral!)
• Email us at [email protected]