Slide 1

Slide 1 text

The Code-Free Developer Interview Pete Holiday @toomuchpete

Slide 2

Slide 2 text

The Code-Free Developer Interview @toomuchpete

Slide 3

Slide 3 text

The Code-Free Developer Interview @toomuchpete My Goal For This Session: ERADICATE CODING INTERVIEWS

Slide 4

Slide 4 text

The Code-Free Developer Interview @toomuchpete What is a “Coding Interview” • Reviewing Code Samples or GitHub Profiles • Code Tests (Codility, etc) • Code Challenges • Live Coding or Pair Programming

Slide 5

Slide 5 text

The Code-Free Developer Interview @toomuchpete Disfavored Interview Techniques • Whiteboarding • “Clever” Riddles • Language Trivia

Slide 6

Slide 6 text

The Code-Free Developer Interview @toomuchpete Why Interview with Code?

Slide 7

Slide 7 text

The Code-Free Developer Interview @toomuchpete The big lie of coding interviews is that they don’t replicate real work.

Slide 8

Slide 8 text

The Code-Free Developer Interview @toomuchpete The Problem With Coding Interviews • Disadvantage people without a lot of free time • Live coding and pairing are stressful • They’re difficult to develop and maintain • Many passive candidates just won’t do take home tests

Slide 9

Slide 9 text

The Code-Free Developer Interview @toomuchpete What Should We Do Instead? Talk to the candidates

Slide 10

Slide 10 text

The Code-Free Developer Interview @toomuchpete General Interviewing Tips • Define what you’re looking for ahead of time • Ask all candidates a consistent set of questions • Interviewers should write down their thoughts before discussing them • Interviewing is a skill that must be developed and practiced

Slide 11

Slide 11 text

The Code-Free Developer Interview @toomuchpete Dig Into Their Experience

Slide 12

Slide 12 text

The Code-Free Developer Interview @toomuchpete Dig Into Their Experience • “What was your role on this project?” • “How does that system/feature work?” • “Where’s the worst technical debt in this project?” “How would you fix it?” “Why hasn’t the team fixed it yet?” • “Has it had any bugs our outages in production?” “What happened?” “How did the team fix it?”

Slide 13

Slide 13 text

The Code-Free Developer Interview @toomuchpete Have Them do Review Code

Slide 14

Slide 14 text

The Code-Free Developer Interview @toomuchpete Selecting Code to Review • Avoid production code • Actively reduce complexity • Include realistic bugs, but don’t emphasize Bug Hunts • Best Options: • Completely contrived (maybe your old code challenge?) • Open Source Repo with a contrived Pull Request

Slide 15

Slide 15 text

The Code-Free Developer Interview @toomuchpete Evaluating a Code Review • Bad Pull Request or Commit Habits • Non-idiomatic Code • Overly Complex code (things that need refactors) • Bad/confusing naming of variables or methods • Overly architected classes / YAGNI • Actual Bugs (Bonus Points Only)

Slide 16

Slide 16 text

The Code-Free Developer Interview @toomuchpete Collaborative System Design

Slide 17

Slide 17 text

The Code-Free Developer Interview @toomuchpete What is “Collaborative System Design”? • Hypothetically Build a Tool, Platform, or Project • No Code or Pseudocode • Work With The Candidate • Usually Pretty Quick

Slide 18

Slide 18 text

The Code-Free Developer Interview @toomuchpete How To Pick A CSD Project • Should be easy to understand • Excellent if your company’s software has an obvious use case • Related to the skills you’re hiring for; Rails is very different from Angular • When in doubt, pick something generally well-known

Slide 19

Slide 19 text

The Code-Free Developer Interview @toomuchpete General Tips for Running CSD • Time-box the exercise; tell them they won’t “finish” the design • Pre-populate boring, boilerplate sections () • Let the candidate lead • If the candidate is moving fast or seems comfortable, increase complexity

Slide 20

Slide 20 text

The Code-Free Developer Interview @toomuchpete Case Study:
 Let’s Build Facebook!

Slide 21

Slide 21 text

The Code-Free Developer Interview @toomuchpete Build Facebook: The MVP • Get Rid of Boilerplate: We Have Users and Auth Already • What’s Included in a Facebook Clone MVP? • Friending • Status Updates / Feed • Caution: Likes, Comments • “Where would we start to build out this MVP?”

Slide 22

Slide 22 text

The Code-Free Developer Interview @toomuchpete Build Facebook: Status Updates • “How do we implement status updates?” • Go Deeper: How do we implement basic privacy controls? • Even Deeper: What about granular privacy controls? • Keep Digging: How do we solve the obvious performance problem?

Slide 23

Slide 23 text

The Code-Free Developer Interview @toomuchpete Build Facebook: Friending • “How do we implement friendship status?” • What do we do about the bi-directional nature? • How do we implement requests? • How do we add blocking?

Slide 24

Slide 24 text

The Code-Free Developer Interview @toomuchpete Should You Ever Resort to a Coding Interview?

Slide 25

Slide 25 text

The Code-Free Developer Interview @toomuchpete When To Use Coding Interviews • Weak interviewer skills; this should be temporary • Determining whether entry-level candidates can program at all • When a very specific programming skill might determine seniority • Your organization mandates Pair Programming • When you’re transitioning to code-free (❄)

Slide 26

Slide 26 text

The Code-Free Developer Interview @toomuchpete I believe we’ll come to see coding interviews as an anti-pattern.

Slide 27

Slide 27 text

The Code-Free Developer Interview @toomuchpete THANK YOU!

Slide 28

Slide 28 text

No content