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/

Next
Next

Getting Promoted as a Self-Taught Developer