You've just been promoted to staff engineer. Suddenly, people approach you with problems from every direction. A team is slow to ship features. Another team's API keeps timing out. Someone else wants to refactor the entire codebase. Which ones should get your attention?
This is where most staff engineers struggle. The promotion gave you a bigger title and more influence, but nobody handed you a manual for deciding what problems matter. You could spend the next year solving interesting technical problems and still miss the one thing that would have accelerated the entire organization.
The real skill isn't solving problems—it's knowing which ones to solve first. And that skill is teachable.
Problem identification at the staff level is fundamentally different from junior and senior engineer work. When a junior engineer gets a ticket, the problem is already defined. When a senior engineer leads a project, they're usually solving a problem someone else identified.
A staff engineer, however, must hunt for the problems nobody else sees yet. This means:
It's detective work, strategy, and systems thinking combined. And it's why some staff engineers ship one major impact per year while others ship five.
Your time as a staff engineer is your most finite resource. Unlike junior engineers who can parallelize work across a large backlog, you own fewer projects but each one compounds organizational impact. Picking the wrong problem to solve doesn't just waste your time—it signals what you think matters to everyone watching you.
Good problem identification also builds credibility. When you identify a problem nobody else saw, propose a solution that turns out to be correct, and execute cleanly, you've just demonstrated judgment. That judgment is what gets you to principal or distinguished engineer levels.
According to leadership research in engineering organizations, staff engineers who excel at problem identification spend roughly 30% of their time on this skill alone. They maintain lists of problems, validate them, rank them, and only commit when confident they've found signal in the noise.
The first technique is learning to distinguish between problems you absorb versus problems people request. A request is when someone asks you to solve something specific. A problem you absorb is one you notice through patterns—slow velocity across teams, repeated oncalls for the same issue, engineers spending time on workarounds instead of core work.
Requests are usually someone else's priority. Absorbed problems are often your best opportunities because you discovered them independently, meaning you're not just executing someone's agenda.
To use this: Keep a "requests" list and a "patterns" list. When someone asks for help, it goes on the requests list. When you notice something broken across multiple conversations, it goes on the patterns list. Your real work comes from the patterns list.
Every metric that's getting worse or isn't where it should be is a signpost. Look for:
These metrics rarely lie. If a metric is bad, something is broken. Your job is to discover what.
When the same problem appears in three separate conversations with three different people who don't know each other mentioned it, you've found something real. This is probability-based problem identification. One person complaining could be noise. Three independent mentions is signal.
Start noting when this happens. A product manager mentions slow API responses. An oncall engineer mentions the same thing. An infrastructure person independently brings it up. That's your signal to investigate.
This technique involves asking: What is preventing teams from doing their best work? You can discover this through:
The blockers that come up repeatedly across teams are your high-impact targets.
Step back quarterly and ask: Is the organization moving faster or slower? Are we hiring faster than we're losing velocity? Are teams happy? Is technical debt accumulating?
This higher-level view often reveals problems that individual team leads don't have enough perspective to see. Maybe no single team is drowning, but collectively, infrastructure is slowing everyone by 15%. That's a staff-engineer-scale problem.
Most people know PDCA (Plan, Do, Check, Act) as an execution framework. But it's equally powerful for identifying problems:
Use PDCA to validate problems before you propose solutions. This prevents the common trap of identifying a problem you're personally interested in rather than one that's actually blocking the organization.
Surface-level symptoms are often signs of deeper root causes. When you hear a complaint, ask: Is this the real problem or a symptom?
Example: A team says their deployment process is too slow. The surface problem is deployment speed. But the real problem might be: poor test coverage leading to long test times, unclear ownership of critical systems, or architecture decisions that force coordinated deploys across teams.
The best staff engineers dig to the iceberg's underwater portion. That's where the real leverage is.
Once you've identified multiple problems, rank them:
Be honest about effort. Staff engineers often underestimate how long things take because they're used to solving individual technical problems quickly. Organizational problems take longer.
The biggest challenge for staff engineers is that there's no shortage of problems. Every team has complaints. Every system has rough edges. How do you separate the problems worth your attention from the rest?
Real problems typically have these markers:
Things that probably aren't worth your time:
Learn to say "that's a real problem, but it's not my problem to solve." This is maturity. Your goal isn't to solve every problem—it's to solve the right problems.
Before you commit to a six-month project, validate that the problem is real. Here's a lightweight validation process:
Write down: "The problem I think exists is [X]. It matters because [Y]. It affects [these teams/systems]. The evidence is [specific metrics or observations]."
Not to convince them you're right, but to pressure-test your hypothesis. Talk to people who would be affected. Ask: Is this a problem for you? How much does it slow you down? What would fixing it look like?
If people confirm it independently, great—you have validation. If they push back or say it's not actually a blocker, you've saved yourself from a long project solving the wrong thing.
Estimate the impact of the problem:
If you can't estimate impact, the problem probably isn't as big as it feels.
Be honest: Are you drawn to this problem because it's strategically important or because it interests you technically? Good staff engineers solve important problems that might be boring. Avoid the trap of identifying a problem you personally want to solve and then convincing yourself it's the most critical thing in the organization.
You remember when the codebase was cleaner. You remember when deploys were faster. So you identify "the system got worse" as a problem. But is it actually worse, or are you comparing against an idealized past? Get data, not nostalgia.
If you're a distributed systems expert, you'll see distributed systems problems everywhere. If you're a database person, everything looks like a database issue. Your expertise creates blind spots. Actively seek problems outside your comfort zone and ask other specialists for validation before assuming you've found the root cause.
The loudest person in the room isn't always pointing at the biggest problem. A senior manager complaining about something gets more airtime than infrastructure engineers quietly shipping slower each quarter. Don't let noise become signal.
You identify one problem, but when you start investigating, you discover five related problems. Now the scope has exploded. Be disciplined: identify one problem, validate it, solve it. The other five can wait for another cycle.
Every problem you commit to solving is a problem you're not solving. What else could you be doing? If you spend eight months on problem A, what high-impact thing gets delayed? Good staff engineers think in opportunity cost, not just in absolute problem importance.
Use this checklist before you commit to a major problem:
If you can check nine or more of these boxes honestly, you've likely found a problem worth your time.
Project managers organize work on problems that are already identified. Staff engineers identify which problems deserve to be organized in the first place. PMs ask "how do we do this?" Staff engineers ask "should we be doing this?" It's an earlier stage in the problem-solving pipeline.
Roughly 25-35% on identification and 65-75% on solving. Spend too much time identifying and you're not delivering. Spend too little and you're solving the wrong problems. The balance shifts based on your organization's maturity—newer organizations need more identification work.
You have two jobs: identify the problems you genuinely believe matter and make the case for why they matter using data. If leadership disagrees after seeing your evidence, you've done your job. They own the final call on priorities. Don't get attached to being right—get attached to surfacing accurate information for decision-making.
You've identified a problem when you can back it up with data, when multiple independent sources confirm it, and when you've thought through possible solutions. If you're just frustrated about something without evidence, you're complaining. Use the validation steps above to move from complaint to identified problem.
They can absolutely be learned. It looks intuitive in experienced staff engineers because they've practiced these techniques hundreds of times. When you're starting out, use the frameworks and checklists deliberately. Eventually they become intuition.
| Core Skill: | Recognizing organizational problems before they become crises |
| Key Difference from Junior/Senior Roles: | Staff engineers hunt for problems; others solve assigned problems |
| Time Allocation: | 25-35% identification, 65-75% solving |
| Primary Frameworks: | PDCA cycle, Iceberg Model, Impact-Effort matrix |
| Signal vs. Noise Test: | Multiple sources, measurable evidence, affects multiple teams |
| Career Impact: | High-quality problem identification is what separates staff from principal engineer candidates |
Start this week. Pick three problems you've noticed. Run them through the validation process. Do the data check. Talk to affected teams. Use the checklist. See how many boxes you check.
The staff engineers shipping the biggest impact aren't always the smartest problem-solvers. They're the ones who got good at finding the right problems to solve in the first place.
For a deeper understanding of how this applies across your entire engineering organization, check out our complete tech guide on scaling engineering practices, or explore related approaches in more guide articles.
If you're developing these skills to move toward a principal engineer role, related topics like measuring engineering impact and system design at scale will round out your capability set. You might also benefit from understanding technical leadership frameworks from a business perspective.
Problem identification is one of the highest-leverage skills in engineering leadership. Get disciplined about it, and you'll transform not just your own career, but your entire organization's ability to move faster.
Get Started With Problem Identification Today