The effective engineer – Conclusion

I started reading this book “The Effective Engineer” by Edmond Lau. I noted down these points while reading so that it can be kind of cheat-sheet for myself and others too. I strongly recommend buying the book and reading it at-least once.

The book is divided into 3 parts and my idea here is to write 3 blog posts one for each. So here is the second part of the series. You can read the Part-I here and Part-II here.

For Part-III, there are 3 parts. You can get a summary of first chapter and second chapter and third chapter of Part-III here.

This is concluding post of this series listing best books and blogs that can be helpful for effective engineers

10 Books Every Effective Engineer Should Read

  1. Peopleware: Productive Projects and Teams by software consultants Tom DeMarco and Timothy Lister
  2. Team Geek: A Software Developer’s Guide to Working Well with Others by Brian W. Fitzpatrick and Ben Collins-Sussman.
  3. High Output Management by Andrew S. Grove. Grove, the former CEO of Intel
  4. Getting Things Done: The Art of Stress-Free Productivity by David Allen
  5. The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich by Timothy Ferriss
  6. The 7 Habits of Highly Effective People: Powerful Lessons in Personal Change by Stephen R. Covey
  7. Conscious Business: How to Build Value Through Values by Fred Kofman
  8. Your Brain at Work: Strategies for Overcoming Distraction, Regaining Focus, and Working Smarter All Day Long by David Rock
  9. Flow: The Psychology of Optimal Experience by Mihály Csíkszentmihályi. In this book, Csíkszentmihályi
  10. Succeed: How We Can Reach Our Goals by Heidi Grant Halvorson

Recommended Blogs To Follow

A huge thanks to Edmond Lau for this book and all the recommendations. I urge all my readers to buy this book and read it without missing any points.

The effective engineer – (Part-IIIc)

Again I started reading this book “The Effective Engineer” by Edmond Lau. I noted down these points while reading so that it can be kind of cheat-sheet for myself and others too. I strongly recommend buying the book and reading it at-least once.

The book is divided into 3 parts and my idea here is to write 3 blog posts one for each. So here is the second part of the series. You can read the Part-I here and Part-II here.

For Part-III, I am going to do a little different. The third part of this book is considerably a lengthy part especially the second chapter of this part. So I felt to break the final part into 3 sections each for a chapter in the book. You can get a summary of first chapter and second chapter of Part-III.

Continuing from where we left here’s the 3rd part on Building long-term values…

Invest in your team’s growth

“Sink or swim”

– Investing in onboarding is just one way to invest in your team’s growth.
– If you want to increase your effectiveness, it’s important to recognize that building a strong team and a positive culture has a considerable amount of leverage.
– The higher you climb up the engineering ladder, the more your effectiveness will be measured not by your individual contributions but by your impact on the people around you.
– Your career success depends largely on your company and team’s success, and the success of your company or team depends on more than just your individual contributions.
– You’ll accomplish much more if those around you are aligned with you rather than against you, and you can do that by investing in their success.

Make hiring everyone’s responsibility

– A good interview process achieves two goals.
– First, it screens for the type of people likely to do well on the team.
– Second, it gets candidates excited about the team, the mission, and the culture.
– Even if a candidate goes home without an offer, they still leave with a good impression of the team and refer their friends to interview
– As an interviewer, your goal is to optimize for questions with high signal-to-noise ratios
– questions that reveal a large amount of useful information (signal) about the candidate per minute spent
– with little irrelevant or useless data (noise).
– Good, well-executed questions let you confidently differentiate among candidates of varying abilities; bad, poorly managed questions leave you unsure whether to hire the candidate.

engineering candidates to answer algorithm and coding questions on a whiteboard. These textbook-style questions evaluate a candidate’s computer science knowledge, but they can often fall short in gauging whether an engineer actually gets things done in a work environment.

Shift toward interviews that include a hands-on programming component. Augment a suite of whiteboard interviews with a practical coding exercise on a laptop.

Examples:
– Problems included designing and implementing a small end-to-end system, squashing bugs in a popular open-source codebase, refactoring a poorly organized application, and pair programming on a self-contained project.
– Task candidates with implementing and demoing a functional Tetris game to test their ability to manage a project and trade off different technical choices under time constraints.
– Incorporate hands-on or even take-home programming exercises into their interviews.
These interview questions do require a larger upfront investment to design and calibrate, but their growing adoption indicates that many teams find the payoffs to be well worth it.

High leverage strategies to keep in mind:
– Discuss with your team to identify qualities of a potential team member
– Evaluate and refine your interview process periodically
– Design interview problems with multiple layers of difficulty
– Control the interview pace to maintain a high signal-to-noise ratio.
– Look for red flags by rapidly firing short answer questions
– Shadow or pair program
– Check for culture fit

Design a good Onboarding process

– Ramp up new engineers as quickly as possible
– Impart the team’s culture and values.
– What are the key things that every engineer should know?
– What valuable tips and tricks have you learned since joining the team?
– A key part of a good onboarding program is ensuring that everyone starts on a consistent, solid foundation.
– Socially integrate new engineers onto the team.

4 pillars of on-boarding program:
– Codelabs
– Onboarding talks
– Mentorship
– Starter tasks

Share ownership of the code – to avoid being bottleneck.

Here are some strategies:
– Avoid one-person teams
– Review each other’s code and software designs
– Rotate different types of tasks and responsibilities across the team
– Keep code readable and code quality high
– Present tech talks on software decisions and architecture
– Document your software, either through high-level design documents or in code-level comments
– Document the complex workflows or non-obvious workarounds necessary for you to get things done
– Invest time in teaching and mentoring other team members

Build collective wisdom by post-mortems

– Flight rules – write down every important event happened or decision taken and reason behind it
– Five why(s)
– Compile team lessons on honest (even though uncomfortable) conversations
– Be receptive
– Start instilling the culture with small projects in the organisation

Build a Great Engineering Culture
– Great engineering cultures:
– Optimize for iteration speed.
– Push relentlessly towards automation.
– Build the right software abstractions.
– Focus on high code quality by using code reviews.
– Maintain a respectful work environment.
– Build shared ownership of code.
– Invest in automated testing.
– Allot experimentation time, either through 20% time or hackathons.
– Foster a culture of learning and continuous improvement.
– Hire the best.

In the end, the author quotes:

“A great engineering culture isn’t built in a day; nor is it already in place when a company first starts. It begins with the values of the initial team members, and it’s a continual work-in-progress that every engineer helps to shape. It evolves over time with the decisions we make, the stories we tell, and the habits we adopt. It helps us make better decisions, adapt more quickly, and attract stronger talent. And when we focus on high-leverage activities, we not only become more effective engineers, we also lay the groundwork for a more effective engineering culture.”

There is one more post in the series where I will share what the author thinks are good books for an engineer and what blogs to follow.