Slide 1

Slide 1 text

Technical Questions Interview Workshop - Ran Tavory

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

In high level ✓ Knowledge ✓ Skills ✓ Motivation ✓ Cultural fit

Slide 4

Slide 4 text

Question Types 1. Coding 2. System Design 3. Past Project 4. How shit works 5. Personal Style

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Coding Question ● What can you learn: ○ Skill ■ coding ○ Thinking process ■ Search the web ■ Punctuation, Thoroughness ■ The code communications her thinking

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

System Design Question ● What can you learn: ○ Skills ■ Technical Skills and experience ■ Communication Skills ○ Thinking Process ■ Making tradeoffs ■ Working with uncertainty

Slide 10

Slide 10 text

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?

Slide 11

Slide 11 text

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?

Slide 12

Slide 12 text

Personal Project Question ● What can you learn: ○ Skills ■ Technical Skills ■ Communication Skills ○ Culture ■ Team Work ■ Humble ■ Ownership

Slide 13

Slide 13 text

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”

Slide 14

Slide 14 text

How X Works Question ● What can you learn: ○ Skills: ■ Technical ■ Experience ■ Communication ○ Culture ■ Autodidact ■ Deep-diver ■ humble

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

Personal Style Question ● What can you learn: ○ Skills: ■ Communication ○ Culture ■ Honest ■ Autodidact ○ Thinking Process ■ Evaluates tradeoffs

Slide 17

Slide 17 text

The Matrix Tech Skills Communication Culture Think Process Coding ✔ ✔ Design ✔ ✔ ✔ Project ✔ ✔ ✔ How shit works ✔ ✔ ✔ Style ✔ ✔ ✔

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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