Share
Embed
Interview Workshop - Technical Questions
Interview workshop passed at appsflyer. The technical questions part
Ran Tavory
October 16, 2018
Transcript
19 slides
-
Competencies • Team player • Persistence • Fast learner /
adopter • Autodidact • Takes ownership • Integrity • Self-Driven • Focus • Proactive • Flexibility • Persuasive • Creative • Assertive • Organized • Service oriented • Interpersonal skills • Thoroughness • Execution focused / Task-oriented -
In high level ✓ Knowledge ✓ Skills ✓ Motivation ✓
Cultural fit -
Question Types 1. Coding 2. System Design 3. Past Project
4. How shit works 5. Personal Style -
Coding Question • Invent one or pick one from a
database • Solve it yourself first! • Example: ◦ Sort an array of 0s, 1s and 2s. • DOs ◦ Define the question precisely. Preferably in writing. ◦ Use a laptop, possibly an IDE (but notepad/vim is enough) ◦ Calibrate. -
Coding Question • Look into: ◦ Correctness (was the problem
solved) ◦ SW eng principles: ▪ Cohesion (single responsibility and separation of concerns) ▪ Correct abstraction ▪ DRY ▪ Consistency ▪ ... ◦ Unit Tests ◦ Edge cases and error handling (off by 1s etc) ◦ Time and Space Complexity -
Coding Question • What can you learn: ◦ Skill ▪
coding ◦ Thinking process ▪ Search the web ▪ Punctuation, Thoroughness ▪ The code communications her thinking -
System Design Question • Invent one or pick one from
a database • Solve it yourself first! • Example: ◦ Design an index for a key-value database • DOs ◦ Define the question imprecisely. ◦ Evolve the question. Start simple and add constraints later. -
System Design Question • What can you learn: ◦ Skills
▪ Technical Skills and experience ▪ Communication Skills ◦ Thinking Process ▪ Making tradeoffs ▪ Working with uncertainty -
Personal Project Question • Example: ◦ Tell me about a
recent project you were deeply involved in • DOs ◦ For newgrads allow academic project ◦ For experienced devs, make sure the scope is large enough ◦ If you don’t know the domain - say that you don’t know it ◦ Ask: What were your mistakes? ◦ Ask: What if you had to start all over again today? ◦ Ask: What if requirement X was different? -
Personal Project Question • What to look for: ◦ You
understand, even if it isn’t your domain ◦ Personal involvement ◦ Project scope ◦ Deep understanding of how it works ◦ Tradeoffs and alternatives had been considered ◦ Retaliates well to the “what if” questions ◦ Business understanding (why is this project important to your employer) ◦ What were your personal initiatives in the project? -
Personal Project Question • What can you learn: ◦ Skills
▪ Technical Skills ▪ Communication Skills ◦ Culture ▪ Team Work ▪ Humble ▪ Ownership -
How X Works Question • Examples: ◦ How DNS works?
◦ How Garbage Collection works? ◦ How Redux works? ◦ How Database Indexes work? • DOs: ◦ Dig into the details. ◦ Dig more and more until they say “I don’t know” -
How X Works Question • What can you learn: ◦
Skills: ▪ Technical ▪ Experience ▪ Communication ◦ Culture ▪ Autodidact ▪ Deep-diver ▪ humble -
Personal Style Question • Example: ◦ Where would you use
Python v/s Go? ◦ What are your favorite CSS features? ◦ What do you look for in Code Review? ◦ What’s your take on TDD? • DOs: ◦ Always follow up with questions. -
Personal Style Question • What can you learn: ◦ Skills:
▪ Communication ◦ Culture ▪ Honest ▪ Autodidact ◦ Thinking Process ▪ Evaluates tradeoffs -
The Matrix Tech Skills Communication Culture Think Process Coding ✔
✔ Design ✔ ✔ ✔ Project ✔ ✔ ✔ How shit works ✔ ✔ ✔ Style ✔ ✔ ✔ -
Choosing the right question • Read CV and adjust ◦
Project ◦ Personal Style ◦ Coding question (by experience) • Follow the flow of the interview ◦ Try to evolve from one question to the next -
Exercise • Split to rooms 5.3 (this room), 5.5 (Curiosity)
and 5.7 (Nemesis) • Work in tuples of 3 • 20 minutes interview. Single question: ◦ Personal project • And then switch for another 15 minutes • 3rd person: feedback • Come back and share your learnings and feedback