The Last Time Someone Told You What to Do
Think about the last time someone handed you a well-defined task. "Implement this endpoint. Here are the specs. Here are the acceptance criteria. Here is the deadline." That kind of task — clean edges, clear definition of done, someone else already made the hard decisions.
You probably can't remember when that last happened, because at the principal level, it stopped happening a while ago.
This is the first thing to internalize about the role: nobody is going to tell you what to do. The ambiguous project lands in your lap precisely because it is too unformed for anyone to write a clear spec. Your job is to create the spec. Then make sure the right people execute against it. Then update the spec when reality changes. Then do this again for the next problem, and the one after that.
This is a different working mode than anything most engineers have experienced before. The entire path to principal — school, early career, mid-career — was structured around receiving well-defined problems and solving them. The better you were at that, the faster you got promoted. So you optimized for it. You got very, very good at solving problems that someone else had already defined.
And then, right when you are at your best at that skill, the job changes. What you are now paid for is not solving the assigned problem. It is figuring out which problem is worth solving, writing that problem down clearly enough that others can work on it, and making sure the work stays on track for months across teams you don't control.
Nobody tells you this explicitly when you get promoted. There's a congratulations email. Maybe a raise. Your title changes. The job description, if you look it up on your company's ladder document, probably says something about "technical leadership" and "cross-team influence" in somewhat vague language. What it doesn't say is: the skills that got you here will actively mislead you about what you should be doing now.
A senior engineer gets promoted to principal. They're handed a large, strategically important project — the kind of project that got them noticed. Their instinct is to do what has always worked: dive into the technical details, start writing code, produce something concrete. Within two weeks they have a working prototype.
Six months later, the project is struggling. The prototype they built solved a technical problem that turned out not to be the actual hard problem. Two other teams needed to change their systems to integrate with this project, and those conversations never happened. The stakeholders had different ideas about what "done" looked like, and nobody made those ideas explicit until the project was nearly finished.
The engineer did good technical work. But they started building before they understood the full problem. They moved fast on the wrong thing. This is not a failure of technical skill. It is a failure of the mindset required by the new role.
The transition requires more than learning new skills. It requires letting go of an identity: I am someone who builds things. And replacing it with one that feels less tangible at first: I am someone who makes the right things get built.
You Are a Force Multiplier — Not an Adder
Here is a useful mental model for thinking about principal-level impact. Think of your contribution to a project not as addition but as multiplication.
An engineer who writes code contributes their individual output. Call it 1x. They complete tasks, close tickets, move the project forward by the amount of work they personally produce.
A principal engineer who writes code and also defines the right architecture contributes their personal output plus a multiplier on everyone building on that foundation. A good architecture decision might make five other engineers twice as productive for six months. That's a 10x contribution from a single decision.
A principal engineer who catches the misalignment between two teams in week two of a project — rather than week sixteen — might save both teams three months of rework. That's a contribution measured in months of engineering time, from a two-hour conversation.
This is not hypothetical. It is the actual description of what the best principal engineers produce. And it requires a completely different mental model of what "doing your job" looks like.
The trap is that coding feels like progress in a way that other principal-level work doesn't. Writing code is concrete. The commit history is measurable. You can look at what you built and feel like you did something. Alignment meetings don't leave visible traces. Removing a risk that never materializes is invisible — you can't point to the disaster that didn't happen. Asking the question that reveals a six-week detour doesn't show up in any dashboard.
But the multiplier effect is real. And the sooner you internalize that your job is multiplication, not addition, the sooner you start operating at the level your title implies.
Addition Thinking (Senior Engineer)
- I should write this code because I'm the best person for it
- My contribution = my commits
- I'm done when my tickets are closed
- I go deep on my area; others own their areas
- I escalate blockers to my manager
Multiplication Thinking (Principal)
- Should I write this, or unblock three people who can?
- My contribution = outcomes the team produces
- I'm done when the project ships successfully
- I own the whole problem, including pieces in other areas
- I surface blockers and often remove them myself
One important caveat: don't stop coding. A principal engineer who never writes code slowly loses credibility with the team and loses touch with the real complexity of the system. The goal is not to write no code. The goal is to be deliberate about what you write and why. Write the piece on the critical path that would block everyone else. Write the code that demonstrates the pattern others should follow. Write the prototype that makes the abstract architecture concrete enough for the team to evaluate. But stop writing code just to feel productive.
Ownership Without Authority — The Central Paradox
Here is the central paradox of the principal engineer role, stated plainly: you are accountable for outcomes you do not control.
At lower levels, accountability and control are roughly aligned. You write the code, so you're responsible for it working. You own the ticket, so you're responsible for closing it. What you are accountable for is exactly what you have direct control over.
A principal engineer is accountable for a project that is built by people who don't report to them — often across multiple teams, multiple time zones, multiple managers with competing priorities. You cannot tell people what to do. You cannot write their performance reviews. You cannot move headcount between teams. You have none of the formal tools that management gives leaders to enforce outcomes.
What you have instead is influence. And influence is not a soft, vague thing. It has specific components that can be built deliberately.
The Tools of Influence
Credibility is your most valuable asset, and it is earned slowly. People follow your technical judgment because they have seen it be right. Not once — repeatedly. Credibility means that when you say "this approach will cause problems six months from now," the room takes it seriously rather than dismissing it. It means that when two teams are deadlocked on a technical decision, they ask you to weigh in rather than going to their respective managers.
Credibility is also destroyed quickly. Making confident assertions about things you don't know well. Advocating strongly for a direction that turns out to be wrong and not acknowledging it. Being right about the technical problem but wrong about the organizational one. Guard your credibility by being precise about the difference between "I know this" and "I believe this based on the following assumptions."
Clarity is your most powerful day-to-day tool. The principal engineer who can take a confused situation — five people with five different understandings of what the project is trying to do — and produce a document that makes everyone say "yes, that's it" has done something genuinely valuable. Not because the document is beautiful, but because it replaced five different mental models with one shared one.
When you are the person who makes confusing things legible, people orient around you. Not because you told them to, but because the clarity you produce is useful to them. This is influence without authority in its most practical form.
Relationships are the infrastructure of cross-team execution. The principal engineer who shows up only when they need something from another team has no relationship capital. The one who proactively reviews other teams' designs, catches their risks before they become incidents, and helps unblock their work builds the kind of trust that makes cross-team execution possible.
Relationships matter most in the moments of friction. When your project needs another team to deprioritize their work to help yours, having a relationship with their tech lead is the difference between "we can figure something out" and "you'll need to escalate to our VP." Build relationships when you don't need them so they exist when you do.
Judgment is the hardest to build and the most powerful when you have it. Judgment means your recommendations have a track record. It means that when you say "we should do X," people recall that the last time you said something like that, it turned out to be right. Judgment is credibility applied specifically to decisions under uncertainty — the situations where the data is ambiguous and someone has to make a call.
None of these four tools — credibility, clarity, relationships, judgment — can be demanded. All of them must be earned. And the earnings are asymmetric: you build them in small increments over months and years, and you can lose a large portion of them with a single highly visible mistake or a single moment of poor behavior.
This is why principals who are new to a team or a company often feel less effective than they did before, even if their skills are the same. They have not yet earned the influence capital in this new environment. The skills transferred. The trust has to be rebuilt.
Busy vs. Making Progress
Here is a question worth asking yourself every Friday afternoon: is this project less uncertain than it was last Monday?
Not: did you attend a lot of meetings? Not: did you send a lot of Slack messages? Not: did you write a lot of documents? The question is whether the project moved forward. Did you learn something that reduced a risk? Did you make a decision that had been avoided? Did you ship something that validated an assumption? Did you remove a blocker that had been sitting there?
This distinction — between activity and progress — is one of the sharpest dividing lines between junior and senior execution. And it is surprisingly easy to be very busy without making any progress at all.
Imagine a week where you attended eight alignment meetings, wrote dozens of Slack messages, reviewed three design documents, had twelve one-on-ones, and produced a lengthy status update. If you come out of that week without a single decision made, without a single risk reduced, and without a single blocker removed — that was a week of zero progress, regardless of how it felt.
Now imagine a week where you had two focused conversations that resolved the ambiguity on the critical path, wrote a one-pager that got five people aligned on scope, and identified a hidden dependency that would have bitten the team in month four. That's a high-progress week, even if it only took eight hours of active work.
The confusion happens because at earlier career levels, being busy genuinely correlated with making progress. If you wrote code all day, you made progress. The connection was direct and reliable. You shipped things. You closed tickets. The work was visible and measurable.
At the principal level, the connection breaks. You can be incredibly busy with entirely legitimate activities — important meetings, necessary reviews, valuable conversations — and the project can be standing still. In fact, a project that is truly stalled often generates more activity than one that is moving. When things are broken, everyone gets busy trying to figure out why and what to do about it. The busiest weeks on a troubled project are often the weeks when things are going worst.
The most insidious version of this trap is when the activity is genuinely necessary but wrong in priority. You are reviewing designs (important!) but the project needs you to resolve a three-way disagreement about direction. You are writing a detailed technical spec (valuable!) but the project needs you to have a conversation with the partner team that has been waiting for two weeks. Doing the right kind of work in the wrong priority order is activity masquerading as progress.
The discipline is to actively manage the distinction. Before attending a meeting, ask: what decision or insight will this produce that does not currently exist? Before writing a document, ask: what will be different after people read this? Before a conversation, ask: what specific ambiguity am I trying to resolve?
This is not about being ruthlessly efficient or refusing to do work that doesn't have an immediate payoff. Some of the most important work a principal does — building relationships, reviewing other teams' designs, mentoring — has payoffs that are diffuse and long-term. The question is not "does this have an immediate payoff?" The question is "am I doing this because it genuinely moves the project or the organization forward, or am I doing it because it feels productive?"
The Ambiguity Problem — Why Smart People Freeze
Ambiguity is when you don't know what you're supposed to do. Not because you lack the skills to do it, but because the problem is not yet well-defined enough to begin.
Most engineers have spent their entire career learning to solve problems, not to define them. School is almost entirely about solving pre-defined problems. Early career engineering is heavily ticket-driven — someone else has translated the business need into an engineering task, and your job is to implement the task. Even at the senior level, most of the ambiguity has been resolved by the time work reaches you. You are given a system to design, not a vague business problem and no constraints.
When that filter disappears and true ambiguity arrives, there are two failure modes. Both are understandable. Both are wrong.
The Freeze Pattern
A large, ambiguous project is handed to a principal engineer. They recognize, correctly, that they don't have enough information to make a plan. So they ask for more information. The information they receive is also ambiguous. They ask more questions. They schedule more meetings to gather more context. After three weeks, they have significantly more information but still no plan. The project has not moved. The stakeholders are beginning to ask what is happening. The engineer feels like they are doing the right thing — being careful, being thorough — but the project is standing still.
The freeze pattern comes from a real insight: you shouldn't plan something you don't understand. That's correct. The mistake is believing that you need to fully understand something before you can start moving at all. On a genuinely ambiguous project, full understanding may take months and may only be achievable through experimentation. Waiting for full clarity before moving means never moving.
The False Confidence Pattern
The opposite failure mode is equally common and often more damaging. A project lands, and within 48 hours the principal engineer has a complete architecture diagram and a six-month roadmap. They present it with confidence. It feels like decisive technical leadership.
It is actually premature closure — resolving ambiguity by pretending it doesn't exist. The plan will be wrong in important ways, because it was built without the information that would only become available through the process of executing. The architecture might solve a technically hard problem that turns out not to be the actual bottleneck. The roadmap might not account for the dependencies on two other teams. The scope might not match what three key stakeholders believe they are getting.
Because a plan exists and is confident and detailed, the team starts executing against it. The wrong assumptions get baked in. Every week of execution makes the wrong decisions more expensive to reverse. When the misalignments finally surface — usually during a review meeting or a milestone that doesn't land right — the cost of correction has compounded.
A technically strong engineer is asked to lead a platform migration — moving the company's payment system to a new provider. In week one, they produce a detailed plan: twelve weeks, five engineers, three phases, clear deliverables for each phase.
By week six, it becomes clear that the plan assumed the new payment provider's API worked a certain way. It doesn't. It also assumed the existing payment system's database schema was documented. It isn't. The plan is three weeks behind, and the revised estimate is "unclear."
Both of these unknowns were findable in week one. A spike — a short focused investigation — would have revealed the API discrepancy in two days and the schema situation in half a day. The confident plan was built without those investigations because investigations feel like slowing down. They aren't. They are the fastest path to a plan that actually works.
Structured Forward Motion Under Uncertainty
The right response to ambiguity is neither freezing nor false confidence. It is structured forward motion under uncertainty.
The phrase sounds complicated but the idea is simple. You sort everything on the project into three buckets:
- Things you can decide now — because you have enough information, the cost of reversing the decision is low, or waiting would be more expensive than deciding.
- Things you cannot decide yet — because you are genuinely missing information that is either not available or will only be learned by doing.
- Things you need to learn — specific investigations, spikes, or conversations that would move something from bucket two into bucket one.
Then you move. You make the decisions in bucket one. You explicitly label what's in bucket two and tell everyone — your team, your stakeholders — that those decisions will be made once you have the information. You immediately start the work in bucket three.
This is not a perfect system. You will make some decisions too early, and they will turn out to be wrong. That's fine. The point is not to be perfect. The point is to be moving in the right direction while being honest about what you know and don't know. Every week, bucket two should shrink. If it doesn't — if the list of things you can't decide keeps growing — something is structurally wrong and you need to figure out what.
A spike is a short, time-boxed investigation designed to answer one specific question. "Can the new API handle our write patterns? Find out in two days." "What does the current schema actually look like? Document it in a day." Spikes are the primary tool for converting unknown unknowns into known unknowns, and known unknowns into facts. The instinct to skip them because they feel like "not making progress" is exactly backwards. They are often the fastest path to a plan that actually holds.
The Most Dangerous Trap: Premature Solution
There is a specific failure pattern that afflicts technically strong engineers more than any other. It is worth naming directly because its cause is a virtue rather than a flaw.
Technically strong engineers are good at solving problems. They have spent years training this skill. Their brain, when it sees a problem, immediately starts generating solutions. This is not a bad thing — it is how great engineering happens. The trap is when this happens before the problem is fully understood.
On a well-defined problem, the pattern works perfectly. Problem arrives, brain generates solutions, engineer picks the best one and builds it. Fast, efficient, effective.
On an ambiguous problem, the same pattern produces disaster. A partial description of the problem arrives. The brain, treating it as a complete problem, generates solutions. The engineer picks one and starts building. With great skill and efficiency, they build a solution to the wrong problem.
The tragedy is that this is hard to notice from the inside. The code is good. The architecture is clean. The engineer is working hard and producing high-quality output. Nothing looks wrong until the solution is placed in front of the stakeholders and someone says "this isn't what we asked for" — or until the system hits production and the scenario the engineer didn't model starts happening constantly.
The moment you notice yourself thinking about implementation details before you have written down — in one clear sentence — what problem you are solving and for whom, stop. You are in premature solution territory. The test is simple: can you write the problem statement in a single sentence that all the stakeholders would agree is accurate? If not, you don't understand the problem well enough to design a solution.
The discipline of staying in problem space long enough is uncomfortable for technically strong engineers because problem space feels like inaction. You're not building anything. You're asking questions, writing things down, talking to people, rewriting things. None of it looks like engineering.
But the engineers who make the biggest contributions are almost always the ones who spent the most time in problem space — not because they move slowly, but because the time they spent defining the problem precisely made every subsequent decision faster and more correct. They were not slow to start building. They were fast to identify the right thing to build.
We will return to this in Chapter 4, which covers the art of writing a problem statement. For now, the principle to take from this chapter is: the speed that matters is the speed from problem to shipped solution, not the speed from problem statement to first line of code. These are different things and the first one often requires slowing down the second.
The Identity the Role Requires
You can read this chapter as a list of behaviors to try. Some of them will stick. But tactics without identity shift produce inconsistent results — you do the right thing when you remember to, and revert to old habits under pressure. And the pressure comes constantly on large projects.
What produces consistent results is a different identity — a different way of seeing what your job is. The principal engineer mindset is not a set of tactics. It is a way of seeing. Here are its four components.
Owner, Not Contributor
Contributors complete tasks assigned to them. Owners define what needs doing, make sure the right things happen, and feel responsible until the outcome is reached — not just until their piece is done. If the project fails, that's your failure, even for pieces you didn't personally touch.
Clarity Generator
The most valuable thing you produce on an ambiguous project is not code. It is shared understanding. When fifteen people have fifteen different ideas of what the project is trying to do, the person who makes that explicit and coherent has done more to accelerate work than any individual contribution could.
Risk Surfacer
Most people avoid raising problems because they don't want to seem negative or slow things down. A principal surfaces risks early, names them clearly, and makes sure the team has a plan. Not to avoid all risks — that would mean avoiding all interesting work — but to make sure risks are visible and owned rather than hidden and ignored.
Long-Term Thinker
Every project has short-term pressure: launch dates, quarterly goals, leadership reviews. These are real. But the principal engineer keeps a longer view alive even when short-term pressure is intense. A decision that saves two weeks now and costs two months in six months is not a trade-off. It is a loss wearing the costume of a win.
These four components do not come naturally to most people. They are learned behaviors. The good news is that every project is practice. Every meeting where you catch yourself focused only on your piece and shift to thinking about the whole — that is practice. Every time you feel the pull to jump to a solution and instead force yourself to write the problem statement first — that is practice. Every time you raise the risk that everyone else is avoiding — that is practice.
The identity builds through repeated practice in real situations. You cannot read your way to it. You can only do your way to it. This book is intended to make the doing more effective — to shorten the time between "I know these behaviors" and "these behaviors are reflexes." But the doing is yours.
The most frustrating part of the principal engineer transition is the lag. You start working differently — thinking about ownership, generating clarity, surfacing risks, thinking long-term — and for a while, nothing looks different. The project is still hard. The stakeholders are still confused. The team is still moving slowly.
The lag is normal. The impact of the mindset shift is upstream of the work. It takes time to propagate forward to visible outcomes. Most engineers who abandon the shift do so during this lag, concluding that "it doesn't work." The engineers who push through the lag discover that the work starts to move more cleanly — decisions get made faster, rework decreases, the team has better shared context — and they can rarely point to a single moment it changed. It accumulated.
The rest of Part I goes deeper into two specific skills that this mindset depends on: the ability to sit with ambiguity without freezing (Chapter 2), and the ability to direct your attention and energy toward the highest-leverage work rather than the most urgent-feeling work (Chapter 3). Part II then turns the mindset into process — specific tools for bringing clarity to the projects this mindset is meant to navigate.