What makes you senior

2025-12-1916:34410192terriblesoftware.org

The one skill that separates senior engineers from everyone else isn’t technical. It’s the ability to take ambiguous problems and make them concrete.Retry

People love to describe senior engineers with a big checklist: architecture, communication, ownership, leadership, etc.

But if you strip away the title, the salary, and the years of experience, there’s one core skill that separates senior+ engineers from everyone else: reducing ambiguity. Everything else flows from that.

Here’s what I mean. A mid-level engineer can absolutely crush a well-defined problem. Give them a clear spec, some reasonable constraints, and they’ll deliver solid work. Don’t get me wrong, that is valuable.

The moment you hand them something fuzzy, though, like “we need to improve performance”, “users are complaining about the onboarding flow” or “we should probably think about scaling”, that’s when you see the difference. Not because mid-level engineers are bad at their jobs, but because ambiguous problems require something more.

Senior engineers look at the big, messy, abstract thing and start digging:

  • They ask questions nobody else thought to ask.
  • They separate what matters from noise.
  • They identify what should be done now vs. what to punt.

It’s one of the reasons why senior engineers are worth their salaries. Not just because they write good code (which they often do!), but because they derisk projects. They turn “I don’t even know what this is” into “there are two small projects and one thing we should cut.”

And you know what’s funny? When senior engineers do this well, it looks easy. Like nothing was even done. The project just… goes smoothly. Fewer surprises, production fires, or emergency meetings. But what actually happened was that someone did a lot of invisible work upfront.

Just a few questions, as an example, that senior+ engineers ask:

  1. What problem are we actually trying to solve? (Not what solution do we want, but what’s the underlying problem?)
  2. Who’s the user here and what’s painful for them? (They try to be specific. “Users” isn’t an answer.)
  3. What are we assuming that might be wrong? (Every plan has hidden assumptions.)
  4. What happens if we’re wrong and ship this anyway? (How bad is the downside?)

In other words, they first make the problem clear. Then, and only then, they go to solve it.

One frustrating part is that many companies are still terrible at hiring for this. Job descriptions list technologies and years of experience. Interviews focus on LeetCode. None of that really measures your ability to take a vague product requirement and turn it into a shippable plan.

So we end up with “senior” engineers who can reverse a binary tree on the whiteboard but freeze when the spec is half-baked.

I’m not saying the other stuff doesn’t matter. Architecture matters. Communication matters. But those things are way more valuable once you’ve figured out what you’re actually building. If you can’t reduce ambiguity, all your other skills are just elegant ways of solving the wrong problem.

So if you’re wondering whether you’re operating at a senior+ level, here’s one test: What happens when someone hands you something abstract/fuzzy/complex? Do you wait for someone else to clarify it for you? Do you start coding immediately and hope for the best? Or do you spend time up front making it concrete enough that you and your team can actually execute with confidence?

If it’s the last one, you’re probably already there. If it’s not, the good news is this isn’t talent, but practice: start with the next vague ticket that’s assigned to you.


Read the original article

Comments

  • By alexpotato 2025-12-243:123 reply

    Being senior, to me, is best illustrated by a story:

    Me: "Sometimes I feel like I'm psychic"

    Co-worker: "How so?"

    Me: "Many times on projects, I can tell at either the planning stages or the very early implementation steps if it's going to go well or be a disaster. e.g. people will say they love templated configs but they don't account for what can go wrong when there is a bug in the template etc etc"

    Co-worker: "I don't think that's being psychic. That means you are a senior engineer who has seen so many projects that you can quickly pattern match on if the project is going to succeed or fail based on only the first 20% of the project."

    • By therobots927 2025-12-246:333 reply

      Ironically this can cause a lot of senior engineers to double down on conservative practices and fail to innovate or take risk imo. I’ve worked with several people at a higher level than me with more work experience who were for all effects and purposes complete idiots.

      • By albert_e 2025-12-2411:54

        Not trying to counter your post but this reminded me of this --

        "Have you ever noticed that everyone who drives slower than you is an idiot, and everyone who drives faster than you is a maniac?"

        Though I agree there are some folks who resist change while others who seem to jump into new things without enough care about hard lessons of the past. And sometimes you are the one trying to keep things sane and mitigate risks while majority of your team seem to treat you as a joyless guy who always sees risks and drawbacks.

      • By bravetraveler 2025-12-249:561 reply

        'Principal' engineer here, looking to perfect being the idiot! Knowing how to do things, and being known for it, has been an endless source of heartburn. All to say, I think there's wisdom at play. Even there.

        Having 'innovated and taken risk', juice is rarely worth the squeeze. Watercooler is too crowded and layoffs too arbitrary. A middling job rewards exactly as well. Reliably.

        • By ChrisMarshallNY 2025-12-2410:121 reply

          I don’t know how to do almost every project I take on[0]. I’m finding LLMs to be a godsend. Helps me to learn stuff, without the sneering.

          [0] https://littlegreenviper.com/miscellany/thats-not-what-ships...

          • By bravetraveler 2025-12-2410:153 reply

            That's great (unironically) for you and the shareholders. I've lost the joy of learning things, honestly. After two decades of skill-building and 98% of it being utterly useless, I have a certain complex.

            Said another way: the job needs 2+2, rewards poorly, and I'm too tired for Calculus.

            • By ChrisMarshallNY 2025-12-2411:411 reply

              No shareholders. I'm retired, after a long career, doing stuff I found meaningful, but never really earned me huge piles of money. Being retired has been wonderful. I get to learn whatever the heck I want. I still make stuff that is meaningful, but I don't make money at it (which isn't actually a bad thing).

              I guess finding a meaningful life has always been more important to me, than being rewarded in money. I know that makes me a mutant, around these parts, but that's how I roll.

              • By bravetraveler 2025-12-2411:441 reply

                Ah, so you're part of why I'm working so hard!

                That's great for you. Sarcastic this time. I truly meant well, now I don't care. To be clear: 'shareholders' was a quip at the industry, not you.

                Well, you see, life has demanded I trade a certain meaning for value creation. Hence my attitude. There's that complex I told you about. Ghoulishly wanting reciprocation, or day I say, a payoff.

                I'd trade half my salary/effort to live in my home town and closer to meaning... yet, I don't. Not an option. Can't avoid RTO forever or pay bills with back-pats.

                Nice implication on my life meaning, bro. Sorry, sir. I lower the rim and you dunk. Well played.

            • By sumanthvepa 2025-12-2410:461 reply

              Learn for yourself then. I run my own company and learning new stuff so I can use it in my business is one of the few joys of being the owner. No permission required to try the new hotness (And if you screw up -- you have only yourself to blame.)

              • By bravetraveler 2025-12-2410:58

                Ah, well, I need a business for this advice to meaningfully change anything :) Sounds like a lot of work.

                I have been learning for myself, that's a category of useless. Would've been better spent knitting; therapy for applying the useful 2%.

            • By ChrisMarshallNY 2025-12-2410:351 reply

              I think we have to enjoy what we learn. I have no motivation at all, to learn stuff I don't like doing.

              In my case, I really enjoy coding, and making stuff that people use.

              Part of the impediments that I have encountered, is other people's attitudes. As long as co-workers and technical peers thought of me as "competition," they would deliberately make it difficult for me to access the stuff I needed to learn.

              LLMs have absolutely no fear of me, and gladly give me exactly what I need (sometimes, too much).

              • By bravetraveler 2025-12-2410:45

                I'm glad to hear LLMs help you out. They don't, here. Learning isn't the issue: I already have a wealth of information I can't put to use, or perhaps more accurately: won't be sufficiently rewarded for.

                Perhaps I could use them for the parts I don't enjoy. Or I could... not.

                It's all a wash, I guess is my point. While we're out here working, leagues are idling. I aspire to be more like them.

      • By juliangmp 2025-12-2513:38

        It's a fine line to ride. You want both stability and new technologies and you have to find a balance between them.

        And obligatory: experience and competence may be correlated, but they are not the same.

    • By jbmsf 2025-12-243:30

      I feel this way now, but with companies.

  • By cod1r 2025-12-2320:584 reply

    I suffered with this problem quite often with my previous job. There would be something vague assigned to me and I didn't quite get what to do but I also felt like if I asked questions, it'd give off a vibe like I didn't know what I was doing so I would just start programming and making a bunch of assumptions.

    That wasted a lot of time which is a lesson to be learned from.

    I also struggled with self management.

    • By dcminter 2025-12-2322:018 reply

      My superpower as a staff engineer was having zero shame in asking questions. Anything from "what does that abbreviation stand for?" through to "what will the traffic look like when we go live?" - mostly people are worried about looking ignorant, so weirdly this makes you look both knowledgeable and confident! I wish I'd known that when I was younger...

      • By roenxi 2025-12-240:021 reply

        Unfortunately it is a bit more subtle than that though:

        (1) Questions reveal a lot about someone's state of mind, particularly if there are a lot of them. If someone is actually struggling and doesn't maintain a vague silence, the people around them will figure it out even faster. Arguably not a bad thing, hiding things is a weak strategy.

        (2) There is a certain type of middle manager who fears clarity, because clarity leads to accountability and at some level they have identified that as a threat to their careers. It is prudent to be very careful what sort of questions to ask that manager - "what does that abbreviation stand for?" is fine, "what is the exact problem here and what do you want the solution to look like?" or "I don't understand, can you get into the details of why you think that?" can be unexpectedly controversial.

        So there is a superpower in having zero shame in asking questions, but the real trick of it is being able to identify the set of inoffensive, basic questions that will move a project along. There is a large class of technically-reasonable-politically-imprudent questions that an inexperienced engineer might ask to their detriment. I've never been afraid of asking questions but if the mindset behind the question isn't fairly polished then there can be backlash and a most people learn to avoid questions rather than getting good at being mentally flexible.

        • By dcminter 2025-12-240:231 reply

          Ok, I was a little tongue in cheek, so I agree it's a bit more complicated than just asking any question that pops into my pretty little head.

          But I do think that not worrying about whether people will think I'm ignorant for asking is a very important first step that I could have applied successfully when younger. Confidence is hard earned though.

          When explaining stuff I've been working on to others I often tell them "what the fuck?" is a suitable question (to try and lower this barrier) :)

          • By temp0826 2025-12-241:03

            I would often ask questions I knew the answer to (or mostly knew the answer to) just to get insight into someone's point of view, or to give insight into my point of view (usually coming from ops/administration/devops pov), and sometimes as a way to subtly point out that they are doing something terribly inefficient from the 10000 ft view (usually to more junior devs who have tunnel vision on their cog).

      • By abeyer 2025-12-2323:442 reply

        > I wish I'd known that when I was younger...

        While I wouldn't say more people shouldn't do this more of the time, there is also a lot of social capital you have as a staff level person that makes it "easy" to do this. (and is part of why it's important to)

        • By libraryofbabel 2025-12-240:082 reply

          Was just about to say this. As a staff engineer your position is (or should be!) so secure that you can get away with asking all sorts of “dumb” questions that more junior engineers don’t want to ask. I will also regularly say things in meetings like “I don’t understand, can you take us through that again” or “can you remind me how <xyz thing> works?”. Sometimes this makes the difference between a meeting being useful and everyone just being confused but afraid to say so.

          In an ideal world, juniors would all do this too, but I don’t blame them if they don’t. So it’s very important to do it if you have the social capital.

          • By gmane 2025-12-241:041 reply

            One of my favorite interview questions for senior positions is "Tell me about a decision you made that you would change in hindsight." Junior level people and people who are otherwise unfit for the role will try to give answers that minimize their responsibility or (worst case) have no examples. Senior level people will have an example where they can walk you through exactly how they messed up and what they would have done differently. Good senior level candidates examine their mistakes and are honest about them.

            • By kyralis 2025-12-245:29

              I do this for everyone, not just senior positions. "If you were to start that again today, knowing everything you do now, what would you do differently?" is a question you can ask regardless of seniority. Even if they've only done some school projects, being able to look back and say "yeah, that could have gone better from the start" is a hugely valuable signal.

              The details of how I ask it might change based on seniority, but that I ask it? No.

          • By hosh 2025-12-247:46

            It’s also true that the kind of people who are ready for staff level work are already doing staff level work. While social capital is a factor, it isn’t necessarily accumulated because of title or experience.

            The idea of “disambiguation” is itself ambiguous. The way I recognize other people solving problems at a staff level is we are communicating in terms of properties, constraints and tradeoffs. Crucially, these constraints are not necessarily business constraints, but rather, constraints inherent to an architecture. For example, queuing works for ordering because it append-only, and monotonic. So as soon as you have multiple queues (such as partitioning) or try to reorder it, it also loses its ordering guarantee. Does the problem require ordering?

            The first couple chapters of Roy Fielding’s dissertation goes through this. The first time I tried reading it, I did not have experience to understand. It was a slog and I got little out of it. The next time I tried reading it, it was helping me gel and articulate things I had started observing from experience. I recognized that I had previously been so focused on architectural elements and that the properties and constraints were far more important. It is this that determines what is being traded off, and antipatterns pop out. Knowing properties and constraints allows me to quickly identify problems, and start the process of disambiguation. Many of the other staff or principal engineers I have chatted with communicate along these lines.

            I don’t try to ask smart questions or dumb questions. I ask questions so that I can understand properties and constraints.

        • By I_AM_A_SMURF 2025-12-247:01

          For sure, a staff engineer asking lots of question is "disambiguating" a junior engineer asking a lot of questions is asking somebody else to figure out his/her project. Which is kinda true in a sense, you don't give a super-vague project to an engineer who's just starting up for a reason.

      • By mooreds 2025-12-2322:151 reply

        Yes, this is so powerful.

        One of my favorite moves is to ask a question that I feel has an obvious answer and then say "what am I missing?" Sometimes I am right, other times I am missing something.

        Either way I'm modelling:

        - that it's okay to ask questions to which the answer seems obvious

        - that it is totally fine not to know everything

        • By jofzar 2025-12-244:07

          Mine is "I'm going to ask the stupid obvious question here", then ask the question.

      • By gerdesj 2025-12-240:03

        In general people like to answer questions - it makes them/us feel mildly superior - hopefully in a good and positive way. You have to use some judgement on how to approach and engage.

        Depending on who you are engaging with, a packet of Hobnobs (other socially acceptable bribes are available) might be needed or perhaps waiting until after lunch.

        Now, your next mission is getting something done by making someone else think it was their idea in the first place. It might sound counter-intuitive: "How does that benefit me, they get the credit". Crack that conundrum and you will advance to the next level.

      • By ignoramous 2025-12-240:53

        Reminds me of Jason Freedman's "I don't know": https://news.ycombinator.com/item?id=7334671 (2014) / https://archive.vn/Z7m9M

      • By eftychis 2025-12-244:25

        100% this: if you go every axis of what differentiates staff from senior one will see deep down it is about asking questions: either yourself or helping others ask the right questions (e.g. mentoring, impact/are we solving the right problem, etc.)

      • By calmbonsai 2025-12-244:20

        Eh, I'd say that's very org-cultural dependent.

        Honestly, orgs that don't "get this" is why consultants exist.

      • By tintor 2025-12-2322:17

        Schools don't teach this to students.

    • By spike021 2025-12-247:061 reply

      I struggle with this a lot. I'm currently about ten years in to the career and technically at my org I'm a "senior".

      One issue I have quite often is I'll know I have a problem with understanding something and so I ask my team but then the response can be something like "you should know X" or "you should know this because of Y context" and it can be discouraging. I think a lot of the time I notice people conflate experience level with amount of context I have with something.

      I'm still struggling with these kinds of challenges and I would readily admit it could be my own weakness but I also wonder if it's a team culture issue; but I've noticed this across my current org and my last one so maybe it's more of a me-problem.

      • By Cockbrand 2025-12-247:50

        > [...] the response can be something like "you should know X" or "you should know this because of Y context" and it can be discouraging.

        This is definitely a cultural problem. You should get clear and non-judgmental answers to questions like these, because it should be regarded as absolutely normal that you can’t keep everything in your mind, or that you may have missed some context.

        In a culturally healthy org, everybody supports each other.

    • By agumonkey 2025-12-2321:06

      usually what i did is to take an abstract spec, derive thick layers / modules to decompose the problem, and then look at the deadline to see what MVP i can draw in that space.

      whenever that mvp is not what was expected, if i'm lucky enough, the decomposition allows for easy adjustements to match the need

    • By mateo411 2025-12-244:37

      This is very common behavior. This is where a good manager can really help. They can recognize this is happening and then provide context.

      One approach to deal with ambiguity is to write a short design doc, which writes down what you are trying to do, and all of the assumptions that you are making. If you don't understand the domain, some of your assumptions will probably be wrong. The stakeholder should be able to see that and provide guidance.

  • By johndoh42 2025-12-2010:063 reply

    Meanwhile the industry standard definition since the 80s:

    - Junior - someone who can work under guidance.

    - Regular - someone who can work alone.

    - Senior - someone who can guide others.

    • By agumonkey 2025-12-2320:586 reply

      I do wonder how seniors manage cultural / technical differences. If the junior is not responsive to guidance, advices, hints .. what else do you do

      • By dijit 2025-12-2321:067 reply

        If juniors ignore guidance and advice, they stay in junior roles, handling simpler, less impactful tasks.

        Everyone seeks career growth, but pushing for it too quickly often just leads to inflated titles without real substance.

        It’s perfectly fine to remain a mid-level engineer for your entire career if it makes you happy; it’s solid, honest work that contributes meaningfully. Plenty of people in their 60s have held the same job for decades, and that’s okay; it can be a path to genuine satisfaction.

        • By mhss 2025-12-243:58

          A junior or "mid" who doesn't take guidance repeatedly should likely be managed out.

          It's perfectly fine remain "mid" (not junior IMHO) but is not ok to ignore guidance and advice from more experienced team members.

        • By HPsquared 2025-12-2321:13

          I don't want career growth, rather homeostasis. That is, growth that matches the rate of decay.

          At most, maybe something like "tissue remodelling" to be lean, clean and flexible, so to speak, but not "big".

        • By havkom 2025-12-2420:07

          Some people that are immune to listen to people with more experience will continue to be ”junior” forever. They may eventually not have the title junior, but they really are.

        • By luckylion 2025-12-2321:411 reply

          > Everyone seeks career growth, but pushing for it too quickly often just leads to inflated titles without real substance.

          That's why I'm not a big fan of recommending people to often and quickly change jobs to increase titles and pay. Their skills don't level up the same way, and they end up with a title of senior/lead developer and can't actually build maintainable systems or solve problems that nobody tells them the solution to.

          • By whstl 2025-12-2323:28

            Agree.

            If one is unable to work alone but manages to join a new company with an inflated title, people will notice. They're gonna have to keep job-hopping until they find a place that doesn't notice the bad performance anymore.

            This is demonstrable by the amount of CVs with "12 jobs in the last 6 years" in my reject pile.

        • By bossyTeacher 2025-12-2420:28

          We have been here before. Same reason why CV driven development is a thing. When you look for a job, if you are a junior or a mid dev for too long, recruiters will think something is wrong with you. The idea of being happy remaining at your current level is anathema in an industry where chasing the next new thing whether it is a JS framework or a new title is an axiom.

        • By ip26 2025-12-2322:134 reply

          And what if no junior under a certain senior ever makes it past junior?

          Any mentor type figure is going to be at least partially evaluated by progress of the mentees against some benchmark.

          • By dijit 2025-12-2322:351 reply

            Hinging senior evaluations on junior promotions directly fuels the title inflation I’m decrying. Desperate to show “impact through development,” seniors (or managers) push for premature title bumps; turning fresh juniors into “mids” or “seniors” without the skills to match, just to hit metrics.

            This is rampant in tech, where inflated titles compensate for everything from low pay to talent wars, eroding expertise and making hiring a nightmare.

            We end up with a system that prioritises optics over substance, where growth takes a backseat to checkbox promotions. It’s frustrating and counterproductive.

            Mentorship should inspire organic development, not force-fed ladders that collapse under their own weight!

            Instead, let’s measure seniors holistically, decoupling from junior title escalations to allow people to excel at their level indefinitely. Alternatives include:

            * Technical Proficiency and Individual Contributions: Use code reviews, technical assessments, or metrics like deployment frequency and bug resolution rates to gauge a senior’s direct impact, without needing to “graduate” juniors.

            This focuses on their own output and problem-solving prowess.

            * Knowledge Sharing and Enablement: Track things like workshops led, documentation created, or peer feedback on guidance quality via 360 reviews—emphasising team uplift without mandatory promotions. * Project Outcomes and Efficiency: Evaluate based on team velocity improvements, innovation (e.g., patents or architectural wins), or overall delivery success, rewarding systemic contributions over individual mentee milestones. These methods honour diverse career paths, letting juniors stay put if it suits them while still valuing (and evaluating) senior leadership.

            • By ip26 2025-12-242:51

              Agreed, a direct metric of “promotion rate” is obviously flawed. I posed it more as a rhetorical question for reflection- at the limit, it’s clear that people with mentoring responsibilities should be accountable somehow for being good mentors. Terrible mentors who undermine, sabotage, or consistently fail their mentees definitely exist.

          • By xmprt 2025-12-245:34

            A lot of the comments are complaining about how this metric is a terrible way to evaluate seniors but I'd disagree. If one junior can't grow then it's a problem for that junior. If no juniors can grow then it's a problem for the senior - either they don't have good mentoring skills OR they need to work on improving the hiring pipeline for their team (either raising the bar in interviews/changing what skills you're evaluating for in interviews/working with recruiters to fix the pre-interview filters).

            In either case it's an ambiguous problem that needs to be solved and just throwing your hands up and saying that you don't want to be evaluated for that is not going to help.

          • By Viliam1234 2025-12-2323:061 reply

            > Any mentor type figure is going to be at least partially evaluated by progress of the mentees against some benchmark.

            Sounds like the same kind of mistake as evaluating teachers by the grades of their students. Soon people figure out the "one weird trick" how to get the highest score easily.

            • By throwaway173738 2025-12-246:40

              People perform to your metrics. If you don’t want people to be one trick ponies, you’d better have more than one metric.

          • By stronglikedan 2025-12-242:38

            I've never worked at a place like that, and I hope I never do. Although, I've never even heard of any reasonable person putting that into practice either, so I'm probably safe.

      • By 7402 2025-12-255:20

        There's a difference between questions of cultural / technical difference and questions of competence or character.

        In the end, if a junior is repeatedly not responding to appropriate guidance or advice, then that junior should be gone from that position. Same for a senior who is repeatedly dispensing inappropriate guidance or advice.

        But it requires careful analysis of the situation before such a drastic course of action: is there a communication problem, a training problem, a mistake in evaluating abilities?

        A senior should be able to navigate cultural and technical differences competently. A junior should understand that that the ones with responsibility for a project also have the authority to make decisions about the project, which should be honored.

      • By I_AM_A_SMURF 2025-12-247:03

        talk to their manager. If their manager doesn't respond you go to your manager or the manager's manager.

      • By cjfd 2025-12-249:03

        The problem could also be with the senior.....

      • By nh23423fefe 2025-12-2321:07

        let them fail and see if they change affect

    • By everfrustrated 2025-12-2322:011 reply

      Yes but there is also a temporal component as well. A Senior should be able to do all their tasks and whatever else comes their way without needing guidance. To be able to do that requires a certain level of time in position.

      • By butlike 2025-12-2322:22

        nah, the tasks evolve as you get older. having a senior do all their tasks and whatever else without guidance sounds like free work. even the old people in the old folk's home get an assistant to help them take their pills!

    • By HPsquared 2025-12-2321:12

      That's a good functional definition. Verbs beat nouns for this kind of thing.

HackerNews