Slide 1

Slide 1 text

Technical Interviews rj zaworski · @rjzaworski · github.com/rjz

Slide 2

Slide 2 text

Write a program to shuffle a deck of cards.

Slide 3

Slide 3 text

How did you do?

Slide 4

Slide 4 text

Ineffective interviewing ★ Vague, open-ended questions ★ No introduction or context

Slide 5

Slide 5 text

Ineffective interviewing ★ Vague, open-ended questions ★ No introduction or context ★ No communication!

Slide 6

Slide 6 text

Before we begin 1. Software is collaborative 2. Teams aren’t just tech 3. Interviews are conversations

Slide 7

Slide 7 text

Before we begin ★ Every team is different ★ Every company is different ★ Every hiring process is different

Slide 8

Slide 8 text

Before we begin ★ Every team is different ★ Every company is different ★ Every hiring process is different ★ Your mileage may vary

Slide 9

Slide 9 text

Setting the stage First impressions matter!

Slide 10

Slide 10 text

Setting the stage ★ Get to know the company ★ Introduce yourself

Slide 11

Slide 11 text

Setting the stage ★ Get to know the company ○ Industry? ○ Major products or projects? ○ Team / management structure? ○ Technologies? ★ Introduce yourself

Slide 12

Slide 12 text

Setting the stage ★ Get to know the company ★ Introduce yourself ○ Cover letter ○ Current github ○ Focus technologies / projects for role ○ Demos?

Slide 13

Slide 13 text

Show up Technical interviews are still interviews

Slide 14

Slide 14 text

Show up ★ Get a good night’s sleep ★ Arrive early (but not too early) ★ Dress one notch above ★ Bring what you need

Slide 15

Slide 15 text

Show up Q: What to expect? What to bring? A: Ask recruiter / hiring manager in advance!

Slide 16

Slide 16 text

Whiteboarding ★ Knowledge, thinking, and communication ★ Text editor ~ physical whiteboard ★ Format may vary ○ pair programming ○ take-home ○ one thing about spec work..

Slide 17

Slide 17 text

Whiteboarding 1. Write the spec 2. Propose a naive solution 3. Implement it 4. Validate against the spec

Slide 18

Slide 18 text

Whiteboarding In other words, “TDD”

Slide 19

Slide 19 text

Whiteboarding 1. Write the spec a. Clarify problem, assumptions b. “Given a deck of cards, expect the same cards in a pseudo-random order, assuming cards are a string array” 2. Propose a naive solution 3. Implement it 4. Validate against the spec

Slide 20

Slide 20 text

Whiteboarding 1. Write the spec 2. Propose a naive solution a. Talk through your approach b. Revise assumptions 3. Implement it 4. Validate against the spec

Slide 21

Slide 21 text

Whiteboarding 1. Write the spec 2. Propose a naive solution 3. Implement it a. Functions clarify input / output b. Define placeholders (e.g. Rand() => Number ) if needed c. Don’t worry about optimizing (yet!) 4. Validate against the spec

Slide 22

Slide 22 text

Whiteboarding 1. Write the spec 2. Propose a naive solution 3. Implement it 4. Validate against the spec a. Step through function, check result to spec b. It failed? Correct errors and repeat. c. Or it passed! What’s next?

Slide 23

Slide 23 text

Whiteboarding Remember: it’s a communication exercise!

Slide 24

Slide 24 text

Any questions?

Slide 25

Slide 25 text

Wrapping up ★ Ask company / team questions in person ★ Thank interviewers for their time ★ Follow up afterwards

Slide 26

Slide 26 text

Wrapping up ★ Ask company / team questions in person ○ Technical interviewers have ‘been there!’ ○ Get scoop on tech stack, teams, and roadmap ○ Inquire about next steps! ★ Thank interviewers for their time ★ Follow up afterwards

Slide 27

Slide 27 text

Follow up ★ Ask company / team questions in person ★ Thank interviewers for their time ★ Follow up afterwards

Slide 28

Slide 28 text

Follow up ★ Ask company / team questions in person ★ Thank interviewers for their time ★ Follow up afterwards ○ Build relationships with simple thank-yous ○ Keep in touch of status changes (other offers, etc)

Slide 29

Slide 29 text

Further Reading ★ Grad’s guide to team coding (Atlassian) ★ Practice problems (Codewars) ★ Even more practice problems (Hackerrank) ★ The whiteboarding exercise

Slide 30

Slide 30 text

Thank you! rj zaworski · @rjzaworski · github.com/rjz