3. HOW TO BE MORE EFFECTIVE AS AN ENGINEER?
• Adopt the right mindsets
• Focus on high-leverage activities
• Optimize for learning
• Prioritize regularly
• Execution
• Improve the iteration speed
• Measure what you want to improve
• Validate your ideas early and often
• Improve project estimation skills
• Build long-term value
• Balance quality with pragmatism
• Minimize operational burden
• Invest in the team’s growth
4. FOCUS ON HIGH-LEVERAGE ACTIVITIES
𝑳𝒆𝒗𝒆𝒓𝒂𝒈𝒆 =
𝑰𝒎𝒑𝒂𝒄𝒕 𝑷𝒓𝒐𝒅𝒖𝒄𝒆𝒅
𝑻𝒊𝒎𝒆 𝑰𝒏𝒗𝒆𝒔𝒕𝒆𝒅
• Reduce the time to complete a certain activity
• Increase the output of a particular activity
• Shift to higher-leverage activities
6. OPTIMIZE FOR LEARNING
• Seek work environments which are conducive for learning
• Dedicate the time on the work for learning
7. PRIORITIZE REGULARLY
• Track To-Dos list in a single easily accessible list
How do you keep track of To-Dos?
• Which activities to prioritize
Urgent Not Urgent
Important Crisis
Pressing issues
Deadlines
Planning and prevention
Building relationships
New opportunities
Personal Development
Not Important Interruptions
Most meetings
Most emails and calls
Time wasting
8. PRIORITIZE REGULARLY
• Limit Work-In-Progress Tasks
• Depends on person but generally 1 or 2
• Protect maker’s time
9. IMPROVE ITERATION SPEED
• Invest in time-saving tools
• Shorten the debugging and validation loops
• Master your programming environment
• Get familiar with your IDE
• Learn a scripting language
• Get familiar with Unix Shell commands
• Automate your workflows
• Make unit tests fast
• Tackle non-engineering bottlenecks
• Manager’s approval
• Communication with other teams
10. MEASURE WHAT YOU WANT TO IMPROVE
• Pick the right metrics
Bug fixed vs Bug Outstanding?
Short Click-through rates vs long click-through rates?
• Instrument everything
• Healthcare.gov launch disaster
• Ensure data integrity (Do you measure correctly?)
• The only thing worse than having no data is the illusion of having the right
data.
11. VALIDATE YOUR IDEAS EARLY AND OFTEN
• Find the cheapest way to validate your idea
• Prototype
• Mock-up
• A/B testing
• Get feedback early and often
• Commit code early and often
• Code reviews
12. IMPROVE PROJECT ESTIMATION SKILLS
• Estimate based on small tasks
• Think of estimation as probability distribution not as best-case
scenario
• Beware of anchoring bias
• Validate estimates based on historical data
• Let the person who do the tasks estimate
• Allow others to challenge the estimate
• Define specific goals and measurable milestones
• Tackle the riskiest task first
• Be caution of rewrite projects
• Don’t sprint in the middle of marathon
13. BALANCE QUALITY WITH PRAGMATISM
• Standard code convention, styles?
• Establish code review process
• Catching bugs early
• Increase accountability
• Sharing good practices
• Sharing knowledge of codebase
• Increase long-term value
• Good abstraction can significantly improve output
• MapReduce
• Automated testing (unit test, integration test)
14. MINIMIZE OPERATIONAL BURDEN
• Embrace Operational simplicity
• Choose the simplest technologies for the task (Instagram)
• A New Feature, A New Tool = Potentially introduce complexity
• Build System to Fail Fast
• When a problem occur, it should fail immediately and visibly
15. MINIMIZE OPERATIONAL BURDEN
• Automate Mechanical Task
Why don’t we want to automate?
• No time
• Lack of familiarity with automation tools
• Underestimate the future frequency of the task
• Tragedy of the commons
16. RESPONSE AND RECOVER QUICKLY
• Anticipate failures and hone ability to recover
• Ask what if
• Self-healing?
17. INVEST IN THE TEAM’S GROWTH
• Make hiring a priority
• Build a good boarding process
• Ramp up new engineers as fast as possible
• Impart the team’s cultures and values
• Socially integrate new engineers onto the new team
Codelabs? BootCamp?Mentorship? Talks?
• Share ownership of the code
- Mentoring and pairing
- Rotate types of tasks across the team
- Document complex workflows, designs,..
18. INVEST IN TEAM’S GROWTH
• Build collective wisdoms through post-mortems
• Build a great engineering culture
Notas do Editor
Obama’s Campaign: What email subject lines attract the most number of replies?
Cuil’s big bang launch
Story of Instagram: scale to serve 40 million users with 13 engineers acquired by Facebook in 2012
Example: MemCached Expiration Time
Netflix build Chaos Monkey which randomly kills services in their infrastructure