Top Banner
How to hire and keep engineers happy Wharton School of Business, San Francisco March 16 th , 2013
31

How to hire and keep engineers happy public

Jan 27, 2015

Download

Business

Piaw Na

My talk on March 16th at the Wharton Business School in San Francisco.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: How to hire and keep engineers happy public

How to hire and keep engineers happy

Wharton School of Business, San Francisco

March 16th, 2013

Page 2: How to hire and keep engineers happy public

Why is it so hard to find young and hungry programmers?

David "Pardo" Keppel: "There's no shortage of smart hardworking engineers. There's a shortage of smart hardworking engineers willing to work for very little money."

• http://tinyurl.com/cc2jgth

Page 3: How to hire and keep engineers happy public

Corollary

• There are smart hardworking engineers willing to work for relatively little money, but you have to make it up in other ways

Page 4: How to hire and keep engineers happy public

Hiring

• Your first few hires are critical• If you’re non-technical, find someone else to

do your engineering interview. • Important qualities:– Technically sound– Able to translate requirements into code– Able to transcend the immediate problems to find

generalized solutions– Passionate about building tools and automation

Page 5: How to hire and keep engineers happy public

Find a Technical Co-founder

• Case studies:– AirBnB– Intuit– Apple

• Learn to Code– It’s easy to learn to code– It’s hard to code well

Page 6: How to hire and keep engineers happy public

Hiring mistakes

1. Low technical bar“I can’t see myself working at a company where the toughest question is, ‘what’s the difference between a linked list and an array’” --- engineer who turned down a startup

2. No decision making by engineer “A mere matter of programming”

“The co-founders go home and talk and announce decisions the next day.”

3. Poor engineering environment“They were too cheap to buy us phones to test our mobile software on.”

Page 7: How to hire and keep engineers happy public

Reaching out to engineers

• Best engineers usually have jobs or aren’t otherwise looking

• LinkedIn• StackOverflow• Technical mailing lists

Page 8: How to hire and keep engineers happy public

Writing Job Descriptions

• Don’t make job descriptions sound like they’re written by HR

• Big booboos:– Asking for N years of experience in X– Asking for N years of experience in X when X has

been around for n < N– Over-emphasis on degrees and technical

credentials (especially certifications)

Page 9: How to hire and keep engineers happy public

What can your startup offer that Google can’t?

• Individual mentoring• Chance to own a big piece of code• A chance to move up quickly

Page 10: How to hire and keep engineers happy public

“Moneyball” as applied to Engineering

• In big organizations, big titles correspond to political skill

• Better to hire quality engineers who’ve proven themselves poor at politics

Page 11: How to hire and keep engineers happy public

Things to do

• Hire experienced engineers with management experience

• Challenge engineers during interview• Be realistic about what an engineer will accept

Page 12: How to hire and keep engineers happy public

Managing Engineers

• Engineers are creative people, give them lots of freedom, right?

• Yes and No• Unlike art, in engineering, process matters– Brittle solutions versus resilient solutions– 10X engineers make a huge difference– Context matters

Page 13: How to hire and keep engineers happy public

Creating Feasible Projects

• MBAs, take a programming class!– Learn to program python– Learn to program Excel/Visual Basic

• Important to understand– What’s easily done within current technology– What requires developing new technology– What’s not easily done with technology (at all!)

Page 14: How to hire and keep engineers happy public

Compensation is hard, let’s go shopping

• The pay for performance myth• Creativity is decreased by incentives• Best solutions come from intrinsic motivation

Page 15: How to hire and keep engineers happy public

Engineering is a process

• Specifications• Design• Implementation• Testing• User feedbackKeeping this cycle as short as possible is important!

Page 16: How to hire and keep engineers happy public

Recurring Engineering Screwups

• Incompetent Engineers– “fail whale”– Low scalability (crashing in under 1000qps)– Trying to solve in software what’s easily done in

hardware• Poor management– Incurring technical debt without paying it down– Focus on new features rather than clean code– Failing to spend on adequate hardware– Poor engineering culture

Page 17: How to hire and keep engineers happy public

Engineering Tools

• Used to be able to judge the soundness of a technical team by the tools they used:– Visual Source Safe – incompetent and stupid– RCS/CVS – cheap but barely competent– Perforce – competent and technically smart

• Now much harder:– Git is fashionable and free– Plenty of good alternatives

Page 18: How to hire and keep engineers happy public

Engineering Tools

• Code Review Tools:– Essential and worth the investment

• Continuous Build/Integration– Roll your own or use something prebuilt

• Bug Tracking– History suggests that every company eventually

builds their own if they last long enough• If your team does not use/build these tools,

you have a problem!

Page 19: How to hire and keep engineers happy public

Never solve in software what you can do in hardware

• High scalability is now easily resolved with modern hardware– Apply SSDs to MySQL– High performance machines are cheap

• Do back of envelop calculations– Intel X-25M: 8600 IOPS ($300)– Fusion IO: 135,000 IOPS ($3000)– Texas Memory Systems RAM SAN: 400,000 4K

Random IOPS ($100,000)

Page 20: How to hire and keep engineers happy public

Dynamic Languages

• Ruby/Rails• Python/Django• Lisp• Erlang• Easy to launch, might prove difficult to scale• Static type checking is a “safety net” most

programmers need but refuse to admit to needing

Page 21: How to hire and keep engineers happy public

Technical Debt

• Incurred every time you change a specification• Switch platforms• Add an unplanned feature• Push engineers to “just get it done”

Technical debt is like credit card debt: if you only pay the minimum, you’ll never get out from under it, and it depletes capital/engineering effort better spent elsewhere.

Page 22: How to hire and keep engineers happy public

Buy your engineers good hardware

• SSD: $300• Typical engineering salary: $100,000 ($50/hr)• Each compile saves 30s• 50 compiles/day• ROI: 3 weeks! (Each month saves you an 8

hour day!)

Page 23: How to hire and keep engineers happy public

Engineering Culture

• Develop a culture of excellence• “No assholes”• Promote from within• Culture is:– Who you promote– Who gets the big bonuses– Whether you get recognized for doing the grungy

painful work nobody else wants to do

Page 24: How to hire and keep engineers happy public

Strong Engineering Culture

• Counter-intuitively, created by tough interviewing culture

• Interviewing considered important, highly valued and respected engineers do not shirk interviewing

• High standards->Esprit de corps• Hiring mistakes are quickly corrected• Caterine Fake: “Never stronger than your first

few engineers.”

Page 25: How to hire and keep engineers happy public

Management

• Most critical decisions: who gets put into management

• Yishan Wong’s Theory: if you don’t promote from within early enough, and you don’t prepare a “deep bench” internally, you are doomed to always hire managers from outside.

Page 26: How to hire and keep engineers happy public

Compensation

• Informal compensation– Praise/recognition– Comp time– Better hardware– Work from home privileges

• Formal compensation– Stock– Salary– Bonus

Page 27: How to hire and keep engineers happy public

Compensation

• Praise/Recognition by far most under-utilized!– Engineers/Engineering managers don’t like to

“stroke” people• Do not conflate hardware requirements with

perks!• Important to recognize: different people have

different requirements

Page 28: How to hire and keep engineers happy public

Engineering Ladder

• Considered HARMFUL! Avoid for as long as possible. (Most startups only introduce this at 100 engineers. Google waited until well past Dunbar’s number—300 engineers before introducing engineering ladder)

• Once you have one, you have to think hard about how you promote and who you promote. Most engineering ladder job descriptions are laughable.

Page 29: How to hire and keep engineers happy public

Managing by Objectives

• Intel process: employees set goals, then grade themselves. Adopted by Google and several other technology firms.

• Engineering leaders/managers should guide objective setting. Grading should be done by engineering managers in conjunction with engineers.

• Don’t go crazy with objectives. Most important consideration:“Feedback should be constant. If you’re surprised by your annual performance review, then your manager screwed up!”

Page 30: How to hire and keep engineers happy public

Summary

• Think of your organization (especially engineering) as a product

• Your customers are the engineers• Consider what sort of problems you need to

solve and build your product accordingly)

Page 31: How to hire and keep engineers happy public

Q&A

• http://piaw.blogspot.com• http://books.piaw.net