The other side of patience · A reminder that patience should be much beyond enduring challgenges. In practical terms, patience is about engaging with time and finding joy in the present.
Navigating the transition to management · My take on a change that can feel like 'a fork in the road': going from a software engineering role to a software engineering management role.
Trust is antifragile · After reading about 'anti-fragility', I wrote a brief reflection on how relationships built on trust can get better through unavoidable volatility, randomness, disorder and stressors.
Consolidation into a platform team · Engineering teams frequently duplicate each other's work. When it becomes a pain point, a commonly used pattern is setting up a platform team, to consolidate scattered capabilities.
Out of bounds · While good software engineering is universal across disciplines, managing teams where you lack technical depth can be challenging. In this article I talk a bit about what has worked for me.
Performance enablement · Performance management is the means to plan, review, and reward people for their contributions. My take is that achieveng strong performance and results is more about enablement rather than control.
Alignment across organisations · Finding alignment across orgs with different priorities can be hard. It's also an invaluable skill for senior leaders. Here are a few ways to get to a shared understanding to ship your product.
Three simple principles for delegation · Delegation is a cornerstone in leadership, and fundamental to scale yourself as a leader. I've tried to synthesise what I believe to be good delegation into three simple principles.
Composition for teams · Similarly to software, teams can benefit from composition. A common org design pattern is defining a platform team and leveraging it through many application teams.
System Design: Capacity Planning basics · Capacity planning is an underemphasized subject in system design. Approaching it as part of the design process can be tremendously helpful. Here are some of the basics.
Reorganising teams through experimentation · Engineering teams can grow in unexpected ways like systems do. Utilising experimentation concepts can help find the right design before you fully commit to longer-term change.
Calibrations for software engineering interviews · Assessing candidates for a role is not a straightforward task, and sometimes there are conflicting interests. Here's my take on how to the process more consistent.
Posture in system design interviews · System Design interviews are my favourite interview type, given beyond the technical parts there is a large behavioural component. Here are ideas on how to o well in the more subjective bits.
Review: The Making of a Manager · Just before joining Facebook I read "The Making of a Manager" by Julie Zhuo, who joined the team as an intern and grew into a VP Design role. I summarised my favourite parts of the book in this article.
Language as a tool for engineering teams · A take on how to overcome problems engineering and product development teams face with stakeholders, goals and metrics through an universal, yet very powerful tool: language.
Review: Radical Candor · Three reflections I made after reading Kim Scott's "Radical Candor", which I consider to be one of the best books for managers and leaders, regardless of their craft and experience level.