What I Learned: The Effective Engineer by Edmond Lau
I read “The Effective Engineer” by Edmond Lau recently and it really changed my approach to working as a software engineer. I’ve summarized some of my favorite key points and takeways from the first two chapters in this blog post. I also have a copy of the book available and will ship it for free to anyone interested in reading the full thing, just reach out to me on Twitter @ebonyhargro :)
Chapter One: Focus on High-Leverage Activities
Leverage = impact produced / time invested
Engineers should focus on tasks that produce the most value
How to increase leverage:
Reduce the time to complete tasks
Increase the output of a particular activity
Shift to higher-leverage tasks
Questions to ask when working on tasks:
1) How can I complete this in a shorter amount of time?
2) How can I increase the value of this activity?
3) What else could I spend my time on that would produce more value?
Note: High leverage activities aren’t always easy wins
Chapter Two: Optimize for Learning
Optimize for experiences where you learn rather than experiences where you effortlessly succeed
Learning follows an exponential growth curve, so the easier you optimize learning, the more time your learning has to compound
When we spend our days on boring tasks, we pay a huge opportunity cost in terms of future learning and growth
When companies pay you for cushy and unchallenging work, they pay you to accept a lower intellectual growth rate
Strive to grow your skills by 1% every day
Things to Look For in a Team
Growth - how quickly have the strongest team members grown into leadership roles?
Training - is there a formalized way of onboarding new engineers?
Openness - do employees know what other teams are working on? Do teams reflect on whether product changes + launches were worth the effort? Does the team conduct post-mortems?
Pace - what tools does the team use to increase iteration speed?
People - are teamwork and cooperation common? Are people smarter, more curious, passionate, and motivated than you?
Autonomy - Can people choose what projects they work on? What breadth of the codebase can engineers expect to work on over the course of a year?
Strategies to Increase Learning
Study core abstractions written by the best engineers in your org
Shift time away from non-coding activities
Master the languages that you use
Request code reviews from the harshest critics and optimize for getting thoughtful feedback rather than lowering the barrier to PR merge
Enroll in classes for areas you want to improve in
Work on a diversity of projects
Do any of his suggestions resonate with you? Let me know your thoughts in the comments!
More on his book: https://www.effectiveengineer.com/