Principles for engineers
Focus on delivering value to customers, communicate proactively, encourage critique, take initiative, debug scientifically, and practice habits.
Jun 6, 2021
2 min read
Principles
Focus on delivering value to customers
- Ask about the “Why?”. How does what you’re building help your customers make progress?
 - If you understand this well, you can make better decisions while building.
 - Iterate quickly in short cycles. This means small Pull Requests rapidly merged into main branch.
 
Communicate proactively
- Ask questions in meetings, especially to understand the “Why?”.
 - Use threads in open channels (in Slack, for example) to communicate and bring people into the conversation as needed.
 - Avoid relying solely on direct messages and sub-group conversations.
 
Encourage critique
- Learn to give thoughtful critiques of technical plans (see Design Docs). Focus criticism on the plan, not the person.
 - Ask others for critiques of your technical plans, as early as possible.
 - Thoughtful critiques, early in the planning process, help make technical plans stronger and ultimately save you time, because there will be less rework.
 
Take initiative
- Never accept being blocked. Communicate clearly if things are in your way, or are slowing you down.
 - Don’t wait to be told what to do.
 - Think of ways to improve the product and your team’s processes.
 
- Write down your hypothesis.
 - Ask, how do I disprove this hypothesis?
 - Test it to disprove it, and eliminate that hypothesis.
 - Rinse and repeat to make progress towards understanding the root cause.
 
Practice habits
- Read at least 1 book on habits: Atomic Habits and/or The Power of Habit.
 - Be intentional with your habits for:
- Learning
 - Reading and audiobooks
 - Sleep
 - Nutrition
 - Exercise
 - Meditation
 - Caffeine
 - Social Media
 
 - Set monthly goals for both good and bad habits.
 
Resources
Read more posts like this in the
Software Engineering Toolbox collection.