Introduction
Staff Engineer skills are built under 3 pillars
- Big-Picture Thinking
- Project Execution
- Leveling Up All of which are built on a foundation of solid technical skills
Big-Picture Thinking
Think in terms of multiple projects and multiple years
What Would You Say You Do Here?
Recap
- Staff engineering roles are ambiguous by definition. It’s up to you to discover and decide what your role is and what it means for you.
- You’re probably not a manager, but you’re in a leadership role.
- You’re also in a role that requires technical judgement and solid technical experience.
- Be clear about your scope: your area of responsibility and influence.
- Your time is finite. Be deliberate about choosing a primary focus that’s important and that isn’t wasting your skills.
- Align with your management chain. Discuss what you think your job is, see what your manager thinks it is, understand what’s valued and what’s actually useful, and set expectations explicitly. Not all companies need all shapes of staff engineers.
- Your job will be a weird shape sometimes, and that’s OK.
The Three Maps
The Locator Map: Getting Perspective
Your place in the wider organization and company - Org Chart
The Topographical Map: Navigating the Terrain
Shoes how we navigate across the organization. Where are areas of friction between groups. Where does good collaboration and communication exist? Where and Who makes decisions?
The Treasure Map: Remind Me Where We’re Going?
Gives us a compelling story of where we’re going and why we want to get there
Recap
- Practice the skills of intentionally looking for a bigger picture and seeing what’s happening.
- Understanding your work in context: know your customers, talk with peers outside your group, understand your success metrics, and be clear on what’s actually important.
- Know how your organization works and how decisions get made within it.
- Build or discover paths to allow information you need to come to you.
- Be clear about what goals everyone is aiming for
- Think about your own work and what your journey is
Creating the Big Picture
Recap
- A technical vision describes a future state. A technical strategy describes a plan of action.
- A document like this is usually a group effort. Although the core group creating it will usually be small, you’ll want information, opinions, and general goodwill from a wider group.
- Have a plan up front for how to make the document become real. That usually means having an executive as a sponsor.
- Be deliberate about agreeing on a document type and a scope for the work.
- Writing the document will involve many iterations of talking to other people, refining your ideas, making decisions, writing, and realigning. It will take time.
- Your vision or strategy is only as good as the story you can tell about it.
Project Execution
Projects you take on will be more difficult and ambiguous. Your ability to navigate human factors will dictate your success or failure
Finite Time
Everything you commit to has an opportunity cost. By choosing to do one thing you’re implicitly choosing not to do another.
Put non-meetings in the calendar too. specific, deliberate items
Resource Constraints
- Energy
- Understand what kinds of work are expensive for you, and what kinds will leave you with some “smartbrain” at the end of the day
- Credibility
- You can build credibility by solving hard problems, being visibily competent, and consistently showing good technical judgement.
- You will build credibility as a professional every time you take on a chaotic situation and make it easier for everyone else to understand
- If you’re polite (even to annoying people), communicate clearly, and stay calm in stressful situations, other people will trust you to be the adult in the room
- avoid absolutism: if you’re a fan of some technology and advocate for it in every single situation, people will stop believing you know what you’re talking about
- “the Giant Maybe Unsolvable Problem will be easier after you’ve shown you can get things done.” - Carla Geisser in “Impact for the Impatient” article
- Quality of life
- if you enjoy the kind of work you’re doing and the people you’re working with, that will be a boost to your quality of life every day
- Skills
- it’s always slowly decreasing, you have to keep up with the rate of decrease
- Increase in 3 main ways
- Take a class, buy a book, or hack on a toy project
- working closely with someone who is really skilled
- learn by doing. Take on projects that need that skill
- Social Capital
- reflects whether someone else wants to help you do something
- mix of trust, friendship, and that feeling of owing someone a favor or of believing they’ll remember that they owe you one
- stay on good terms with people in your reporting chain and build a track record of helping them achieve their goals
- spend it deliberately
Questions to ask yourself about projects
- Energy: How many things are you already doing?
- Energy: Does this kind of work give or take energy?
- Energy: Are you procrastinating?
- Be wary of spending too much time doing low-impact, low-effort work (snacking)
- Energy: Is this fight worth it?
- Quality of Life: Do you enjoy this work?
- Quality of Life: How do you feel about the project’s goals?
- Quality of Life: Does this project use your technical skills?
- Credibility: Does this project show your leadership skills?
- Social Capital: Is this the kind of work that your company and your manager expects at your level?
- Social Capital: Will this work be respected?
- Social Capital: Are you squandering the capital you’ve built?
- Skills: Will this project teach you something you want to learn?
- Skills: Will the people around you raise your game?
What if it’s the wrong project?
- Do it anyway?
- Compensate for the project
- Let others lead
- Resize the project
- Just don’t do it
Recap
- By the time you reach the staff+ level, you will be largely (but probably not entirely) responsible for choosing your own work. This includes deciding on the extent and duration of your involvement with any given project. You can’t do everything, so you’ll need to choose your battles.
- You are responsible for choosing work that aligns with your life and career needs as well as advancing the company’s goals.
- You are responsible for managing your energy.
- Some projects will make you happier than others, or improve your quality of life more.
- Your social capital and peer credibility are “bank accounts” that you can pay into and spend from. You can lend credibility and social capital to other people, but be conscious of whom you’re lending to.
- Skills come from taking on projects and from deliberately learning. Make sure you’re building the skills you want to have.
- Free up your resources by giving other people opportunities to grow, including starting projects and handing them off.
- Focus means sometimes saying no. Learn how.
Leading Big Projects
Recap
- Staff Engineers can take on problems that seem intractable and make them tractable
- It’s normal to feel overwhelmed by a huge project. The project is difficult. That’s why it needs someone like you on it.
- Set up the structures that will reduce ambiguity and make it easy to share context.
- Be clear on what success on the project will look like and how you’ll measure it.
- Leading a project means deliberately driving it, not just letting things happen.
- Smooth your path by building relationships and deliberately setting out to build trust.
- Write things down. Be clear and opinionated, Wrong gets correct vague sticks around.
- There will always be trade-offs. Be clear what you’re optimizing for when you make decisions.
- Communicate frequently with your audience in mind.
- Expect problems to arise. Make plans that assume there will be changes in direction, people quitting, and unavailable dependencies
Why Have We Stopped?
Recap
- As the project lead, you are responsible for understanding why your project has stopped and getting it started again.
- As a leader in your organization, you can help restart other people’s projects too.
- You can unblock projects by explaining what needs to happen, reducing what other people need to do, clarifying the organizational support, escalating, or making alternative plans.
- You can bring clarity to a project that’s adrift by defining your destination, agreeing on roles, and asking for help when you need it.
- Don’t declare victory unless the project is truly complete. Code completeness is just on milestone.
- Whether you’re ready or not, sometimes it’s time for the project to end. Celebrate, retrospect, and clean up.
Leveling Up
You’re a role model now (sorry)
Recap
- Your words and actions carry more weight now. Be deliberate.
- Invest the time to build knowledge and expertise. Competence comes from experience.
- Be self-aware about what you know and what you don’t.
- Strive to be consistent, reliable, and trustworthy.
- Get comfortable taking charge when nobody else is, including during a crisis or an ambiguous project.
- When someone needs to say something, say something.
- Create calm. Make problems smaller, not bigger.
- Be aware of your business, budgets, user needs, and the capabilities of your team.
- Help your future self by planning ahead and keeping your tools sharp.
- Write things done, even when they’re “obvious”
- Expect failure and be ready for it
- Design software that’s easy to decommission
- The metric for success is whether other people want to work with you
Good Influence at Scale
Scaling your good influence
Individual | Group | Catalyst | |
---|---|---|---|
Advice | Mentoring, Sharing Knowledge, Feedback | Tech Talks, Documentation, Articles | Mentorship Program, Tech Talk Events |
Teaching | Code Review, Design Review, Coaching, Pairing, Shadowing | Classes, Codelabs | Onboarding curriculum, teaching people to teach |
Guardrails | Code review, change review, design review | Processes, linters, style guides | Frameworks, culture change |
Opportunity | Delegating, sponsorship, cheerleading, ongoing support | Sharing the spotlight, empowering your team | Creating a culture of opportunity, watching with pride as your superstar junior colleagues change the world |
Five Metrics of Job Health
Monthly check of Job Health to shield from recenty bias
Signals | Scale |
---|---|
Are you learning? Are you growing? | 0: stagnant 5: rocketship growth |
Are you learning transferable skills or just how to cope with your org’s dysfunction? | 0: learning to cope in this org 5: learning transferable skills |
How do you feel about recruiting friends to your company? | 0: morally conflicted 5: wildly enthusiastic |
How’s your confidence and how capable do you feel? | 0: confidence being eroded 5: confidence growing |
Is your job physically good for you? | 0: stress, stress, stress 5: feeling healthy |
Recap
- You can help colleague by providing advice, teaching, guardrails, or opportunities. Understand what’s most helpful for the specific situation.
- Think about whether you want to help one-on-one, level up your team, or influence further.
- Offer your experience and advice, but make sure it’s welcome. Writing and public speaking can send your message further.
- Teach through pairing, shadowing, review, and coaching. Teaching classes or writing codelabs can scale your teaching time.
- Guardrails can let people work autonomously. Offer review, or be a project guardrail for your colleagues. Codify guardrails using processes, automation, or culture change.
- Opportunities can be much more valuable than advice. Think about who you’re sponsoring and delegating to. Share the spotlight in your team.
- Plan to give away your job.