Work on hard problems1, with smart people. Build, and grow a highly effective2 and impactful3 product engineering organisation.
- 1 Hard problems - Technically challenging problems that require novel/creative solutions
- 2 Effective - shipping product predictably and reliably
- 3 Impactful - adds business or customer value, or solves meaningful problems
- Identifying points of leverage that lead to outsized wins
- Diving deep on hard things
- Connecting with customers (internal and external), and learning how we can build better product together.
- Building delightful, engaging products that our customers love.
- Working with energy multipliers.
- Developer experience that's deeply integrated and and intuitive.
Why - Start with why. Understand context to solve the right problem. Always be curious.
Trust - Align what you say with what you do. Communicate intent. Assume positive intent. Be vulnerable. Trust by default. Trust but verify.
Resilience - Growth under pressure. Learn from failures. Do the right thing, even under pressure.
Feedback - Feedback helps us grow and improve. Feedback is a gift, to be given and to receive. Be gracious in receiving feedback, and kind in giving.
Autonomy - Make impactful decisions. Ability to unblock yourself. Be the engine of your own journey. Autonomy requires alignment. Autonomy requires accountability.
Mastery - Constant learner. Deliberate practice. Root-cause analysis. Learn through teaching.
Purpose - Goal oriented. Clear definition of done. Make effective decisions. Deep work.
Taking risks - Outsized wins or learning comes with risks. Take risks pragmatically. Know your risk tolerance.
Always be shipping - Shipping products to customers is value, no matter how small. Consistently shipping incremental units of value trumps inconsistently shipping large units of value.
Software is a tool. It's not the goal. The right application of software unlocks potential. Use software to multiply effort.
I lean on mental models to help understand my surroundings and make decisions.
I strongly believe in disciplined thinking that is clear, rational, open-minded, and informed by evidence.
I believe that understanding systems from first principles helps shape solutions that are consistent, correct, and built for the long term.
Decisions are a bet made with an expected outcome, using the best information we have available. Outcomes should be evaluated not in hindsight, but as inputs for the next decision.
Decisions produce outcomes. Outcomes drive decisions. Identifying the factors and interactions in systems is critical in being able to effectively manage outcomes.
Humble - Be curious. Provide rationale for feedback. Be open to push-back. Listen to understand.
Helpful - I want to help. I don't have all the answers. I want to know what help looks like.
Immediate - Give feedback as soon as possible, while the topic is still relevant and details are fresh.
In-person - Prefer synchronous feedback, in-person instead of remote (video/voice chat over Slack/email). Praise in public, criticize in private.
Don't make it personal - Give feedback about the work or outcome, not about the person. Focus on specifics not generalisations.
Listen for content - focus on what's actually being said, instead of what is being interpreted as.
Listen for meaning and intent - discern the underlying meaning of what's being said, and the intention of the speaker (is the speaker informing the listener? attempting to influence? building a relationship?)
Listen for feelings and values - what is the speaker feeling while communicating? what values are they demonstrating?
High trust. High bandwidth. High velocity. I trust by default, and believe that we have a mutually trusting relationship. We build trust by communicating our intentions and following through. Over time, our trust will grow as our communication bandwidth grows. Building trust leads to more effective and efficient outcomes.
I will hold you accountable, and I expect to be held accountable. Accountability is a big part of trust. Let's set expectations up front, and work together to meet and exceed those expectations.
I like to have clearly defined expected outcomes. We can be exploring to learn. We can be building for customers. We can be building to set ourselves up for the future. Let's be specific about our intentions.
I have strong opinions. I'm open to change. I may often have a hypothesis when making decisions. I'm open to challenging and updating my hypothesis by acquiring new information.
I'm easily excitable. I'm a cheerleader. I'm always up to try things - as long as it's within my values.
I don't have an off switch. If there's a will, there's a way. It's also okay to not be willing. Let me know up front.
- First principles
- Second-order thinking
- Systems thinking
- Power law (Pareto principle)
- Cost-benefit analysis
- Divergent thinking
- Leverage
- Paradigm shift
- Scientific method
- Opportunity cost
- Sunk cost
- Aligned incentives
- Growth mindset
- Reversible vs. Irreversible decisions
- Core competency
- Strategic vs. Tactical
- Compound interest
- Diminishing returns
- high trust
- high bandwidth
- default to open
- growth mindset
- team player
- competency + proficiency alignment
- predictable
- repeatable
- reliable
- low-overhead
- open to change
- believe in the vision
- bought in
- measureable
Hire for values, ability and skills. Look for multipliers.
Build the organisation around goals, not tasks. Don't build the organisation to fit the people.
Automated processes are leverage. Systematise principles with tools.
Buy almost always beats build. Avoid build if you can, unless it's your core competency.
Simple always wins. Things will always break.
Use boring technology. Make boring plans. Boring doesn't mean don't innovate.
The long-term costs of keeping a system working reliably vastly exceed any inconveniences you encounter while building it.