Technical Leadership
General¶
Reaching Staff-plus Roles¶
| Link | Notes |
|---|---|
| StaffEng Tutorials | Guides for reaching and succeeding at Staff-plus roles |
| Engineering IC Leadership | GitLab's view on Technical Leadership |
| Finding the steps on the individual contributor ladder | Some experiences, learnings and questions to help people decide if the individual contributor (IC) route is for them |
Definitions¶
| Link | Notes |
|---|---|
| Pat Kua The Definition of a Tech Lead | Titles like Architect, Tech Lead, Team Lead and Engineering Manager provide endless confusion. This article explores the definition of the Tech Lead role |
| Pat Kua The Well Rounded Architect | Acting as a Leader, Being a developer, Having a systems focus, Thinking like an entrepreneur, Balancing strategic with tactical thinking, Communicating well |
| Architects, Anti-Patterns, And Organizational Fuckery | The architect role tends to be the locus of a whole mess of antipatterns and organizational fuckery |
| Gergely Orosz What is a Staff+ Engineer? | What the Staff+ role is, expectations and the rewarding and frustrating parts of the job |
How Tos¶
Attributes¶
| Link | Notes |
|---|---|
| An incomplete list of skills senior engineers need, beyond coding | For varying levels of seniority, from senior, to staff, and beyond |
| 10 Admirable Attributes of a Great Technical Lead | There is no single formula to be a great tech lead. It's a demanding position. It requires both sides of one's capability: the heart, and the mind |
| Time management for makers |
|
| How Do You Spend Your Time? |
|
| Thriving on the Technical Leadership Path | So what does the more strategic work of a very senior engineer look like? |
| Drivers vs. Fixers | The dual way to approach a problem |
| Simple Rules of (InfoSec) Career Success |
|
| The Case for Caring Less | Caring deeply is a career asset early on, but over-attachment to outcomes causes burnout and poor decision-making. Senior operators learn to place care deliberately, distinguishing noise from strategic importance, focusing on controllable actions over specific outcomes |
Project Management¶
| Link | Notes |
|---|---|
| Gergely Orosz Resources for Engineering Managers and Software Engineers |
|
| Gergely Orosz Software Engineers Leading Projects | |
| Gergely Orosz How to Lead a Project - as a Software Engineer | Companion blog post for the "Tech Lead Expectations for Engineering Projects (Gergely Orosz @Uber)" document |
| Tech Lead Expectations for Engineering Projects | Gergely Orosz's framework:
|
| How I’ve run major projects | A project DRI starter kit
|
| How to Drive Meaningful Change - Handling objections to your proposal | Be prepared to handle the various responses you will receive when you propose a change. ![]() |
| How to deliver bad news when it's not your fault |
|
| Protecting your time from predators in large tech companies |
|
| Delegating Complex Tasks | Two proven methods for delegating complex tasks: Exponential training, Suboptimal Standardization |
Handling Objections
| Category | Objection | Mitigation |
|---|---|---|
| Disagreement on Outcome | Rejecting | Ask for specific reasons and address them. |
| Denying | Paint a picture of the problem, get feedback from those affected, reduce cost and energy for the stakeholder. | |
| Diminishing | Illustrate the magnitude, paint the long-term picture, compare to other addressed problems, ask for their problem threshold. | |
| Nitpicking | Reorient on primary problem, address the root cause (e.g., disagreement on outcome, lack of perspective, personal relationship issues). | |
| Obstructing | Do the tasks, point out the lack of purpose, build trust, address personal relationship issues, or understand horse trading. | |
| Disagreement on Mechanism | Rejecting | Ask for specific reasons and address them. |
| Criticizing | Accept, reject, or address the criticisms. | |
| Optioning | Be open to alternatives if the outcome is the same, discuss pros and cons if the form of the solution is important. | |
| Compromising | Merge ideas, focus on the goal, and be willing to trade-off parts of the solution. | |
| Agreement and Alignment | Accepting | No mitigation needed; proceed with implementation. |
| Reinforcing | Get agreement on the outcome and general solution, then incorporate feedback while avoiding scope creep. | |
| Testing | Agree on test parameters and expectations, manage timing and scale of expectations, follow the test, and report results accurately. | |
| De-risking | Incorporate appropriate guardrails, argue out of busy-work if necessary, or propose other mechanisms to address perceived risks. |
Communication¶
Templates
Consider including the following sections:
- Metadata
- Report title
- Author
- Date of report
- Any additional metadata (e.g. tags, categories, reference number, etc.)
- State (e.g. draft, in review, final)
- An executive summary highlighting the main points
- A table of contents
- Introduction
- Body
- Progress - What happened since the last status report?
- Plans - What are the next planned activities/outcomes?
- Problems - What are the issues you encountered?
- Problems split as issues (those you currently face/faced) and risks (those you might potentially face), their impact and any mitigating actions or decisions to be made.
- Other
- References to other useful documents, websites, or further detail
- Contact point for questions or further information
- Conclusion
- Appendix
As you write a technical report, follow the ORID framework:
- Objective - Start with data
- Reflective - Describe how people feel or react to the data
- Interpretive - Focus on the meaning or implications of the data
- Decisive - Any specific recommendations, actions or decisions to be made.
Draw on the Pyramid Principle by:
- Starting with the decision/outcome
- Present supporting arguments (up to 3)
- Prepare to have at least 3 supporting detail for each argument, but only when it is necessary.
Be especially clear about your "ask", which is typically one of:
- Input
- Decision
- Support
- Organize the initiatives based purely on urgency (Less Urgent <-> More Urgent)
- Enforce a "curve" and stick them to a distribution (Whenever, Soon, and ASAP)
- Proceed to value: shift everything down to the BOTTOM of a 2x2
- Distribute the initiatives based on value (Game Changer, Optimizer, and Tweak).
- The only move available is the VERTICAL movement
- Urgency can't be shifted
- Define duration
- Turn into a 9-box and divide each cell into three columns: 1-3mo, 1-3q, and 1-3y.
- Place the initiatives in one of the three columns FOR THE CURRENT CELL

| Link | Notes |
|---|---|
| Marco Lancini Weekly Digests to Increase Visibility and Transparency | My own methodology to create and share weekly digests, both for individuals and teams |
| Gergely Orosz Becoming a Better Writer |
|
| Gergely OroszBecoming a Better Writer as a Software Engineer | |
| Some tactics for writing in public |
|
| A Practical Guide to Executive Presence |
|
| A Practical Guide to Executive Presence: Earning Respect |
|
| Why you should work asynchronously | Asynchronous work allows for remote work that's enjoyable and that actually works. Async increases inclusivity, produces better outcomes faster, encourages discoverability and permanence of context, creates space for learning, shifts knowledge workers to higher value work, improves work-life balance, empowers distributed teams, and enables parallelization and flow |
| Making the case to decision makers: the presentation format to follow | A tested template to follow when presenting to executive leadership teams. |
| Filtering your language as an engineering leader |
|
| Have Concerns And Commit | More often than not, you shouldn't be disagreeing at all, but instead having concerns about decisions |
| Ask for Advice, Not Permission | Instead of “Hey, I was thinking about doing X, would you be on board with that?” ask for advice: “Hey, I was thinking about doing X, what advice would you give me on that?” |
| Phil Venables A Security Professionals Guide to Dealing with Disagreement |
|
| Tone and words: Use accurate language |
|
| **How to Say "No" Well | Security's push to avoid being the 'Department of No' has overcorrected. In our eagerness to enable, we've lost sight of the value of a thoughtful, strategic 'No.' |
| Say "but yes", not "yes but" | If you’re in the “yes, but” habit, it can feel to you like you’re endorsing, but to others like you’re only reluctantly agreeing |
Progressing¶
| Link | Notes |
|---|---|
| Gergely Orosz Ways Staff and Principal Engineers get Stuck (and how to get Unstuck) | Common reasons why experienced engineers get stuck, how to prevent this from happening and how to get unstuck. |
| How do Individual Contributors Get Stuck? | A Primer by Camille Fournier |
| The Biggest Mistake I See Engineers Make |
|
| Becoming an Organizational Leader | Progressing from a team leader to an organizational leader as an individual contributor |
| Gergely Orosz Internal Politics for Software Engineers and Managers | "Politics" has a bad reputation in tech companies. What is it, why is it important, and how can you get good at the "right" type of politics? |
| Senior Engineer Fatigue | Senior fatigue is, perhaps paradoxically, a sign of maturity in engineering. It's an indicator that you're transitioning from doing everything to ensuring that everything that needs to be done gets done in the most effective way |
| Keys to Career Success |
|
Overlap with Management¶
| Link | Notes |
|---|---|
| The Engineer/Manager Pendulum | Management is not a promotion, management is a change of profession |
| Phil Venables The Art of Influencing |
|
| Lyft High Output Management for (Non-managing) Tech Leads | How to increase the sphere of influence |
| Staff Software Engineer Responsibilities – Align With Authority |
|
| How to Influence Without Authority | Understand first, influence later |
| Leading without managing | What does it mean to lead when you don't have coercive power to get your way? |
| Getting buy-in to get things done | When you are working in any sort of leadership role, you'll have to get people to work toward initiatives that you're leading or make changes you're proposing |
| Gergely Orosz Developers mentoring other developers: practices I've seen work well |
|
| Your CTO Should Actually Be Technical | Why engineering leaders also need to be great engineers |
