Mastodon

On Senior Engineers

Discover the real skills that set apart top senior engineers. Learn to balance technical expertise with soft skills and business acumen.

On Senior Engineers

Look, I've been in this game for a while now. I've seen hotshot coders come and go, and I've watched so-called “10x engineers” crash and burn. But you know what? The real 10x engineers aren't the ones who can write a Bloom filter in their sleep or debate the finer points of microservices architecture. Nope. The truly valuable senior engineers are the ones who've learned how to navigate the messy, human side of tech. Let me break it down for you.

The Myth of the Coding Genius

First things first: let's kill this notion that being a senior engineer is all about technical prowess. Sure, you need to know your stuff. But if you think that's all it takes, you're in for a rude awakening.

I remember this one guy — let's call him Brad. Brad could code circles around everyone else on the team. He'd crank out features faster than you could say “agile sprint.” But you know where Brad is now? He's not a tech lead, or a principal engineer, or a CTO. He's job-hopping every 18 months because no one can stand working with him for longer than that.

Why? Because Brad never learned the real skills that make a senior engineer valuable. He never understood that his code isn't his baby, that critiquing code isn't the same as critiquing the coder. He never learned to seek constructive criticism or to lift the skills of those around him.

The Uncomfortable Truth

Here's the deal: being a kick-ass senior engineer is about 20% technical skills and 80% everything else. And that “everything else” is the stuff they don't teach you in coding boot camps or CS degrees. It's the soft skills, the emotional intelligence, the ability to navigate office politics without being a snake.

Let me break it down for you:

  1. You're not as smart as you think you are (and that's okay) — The moment you think you know everything is the moment you stop growing. Real senior engineers know they're always learning. They're comfortable saying “I don't know” and they're not afraid to ask questions. They seek constructive criticism and are constantly trying to improve.
  2. Your code isn't your baby (so stop being so precious about it) — I've seen engineers throw tantrums when someone suggests changes to their “perfect” code. Grow up. Your code is a tool, not your child. Be open to criticism and be ready to throw it all away if something better comes along. Remember, it's about the product, not your ego.
  3. You're building products, not puzzles — Yeah, that elegant recursive solution might make you feel clever, but if it takes your colleagues hours to understand and maintain, you've failed. Write code for humans, not computers. A mature engineer understands that their code will be read, modified, and possibly replaced by others in the future.
  4. Learn to communicate effectively — I don't care if you can implement quicksort in your head. If you can't explain your ideas to non-technical stakeholders, you're not as valuable as you think you are. Mature engineers can make their trade-offs explicit when making judgments and decisions.
  5. Empathy isn't just a buzzword — Understanding your users, your colleagues, and even your managers will make you a better engineer. Period. Empathy allows you to navigate complex projects with multiple stakeholders, each with their own goals and perspectives.

The Real Skills That Matter

Now that we've cleared the air, let's talk about what actually makes a senior engineer worth their salt:

1. They Know How to Pick Their Battles

Junior engineers will die on every hill. Senior engineers know which hills are worth dying on. They understand that sometimes “good enough” is better than “perfect.” They make their trade-offs explicit and understand that all engineering decisions exist within a spectrum.

2. They're Multilingual (and I Don't Mean Programming Languages)

A truly valuable senior engineer can speak the language of:

  • Engineers (obviously)
  • Product managers
  • UX designers
  • Business stakeholders
  • That one person from marketing who always has “just one quick question”

They're the translators, the bridges between different worlds. They can take complex technical concepts and explain them in ways that make sense to non-technical folks. This skill is crucial for navigating the complex human dynamics of a tech organization.

3. They Have a “Spidey-Sense” for Potential Issues

Senior engineers can smell a bad idea from a mile away. They've been burned enough times to know when something's not going to work. But here's the kicker: they don't just shoot down ideas. They guide the conversation towards better solutions. This comes from an innate sense of anticipation, always thinking about how code will perform in production, how it will affect resource usage, and how others will understand and extend it.

4. They're Efficiently Lazy

Real senior engineers are efficiently lazy. They'll spend hours automating a task that would take 15 minutes to do manually because they know it'll save time in the long run. They think in systems and processes, not just individual tasks. This efficient laziness often leads to better documentation, more robust systems, and smoother processes for the entire team.

5. They're Not Afraid of the Unglamorous Work

You know what separates the real senior engineers from the pretenders? The real ones aren't above doing the unglamorous work. They'll dive into legacy code, they'll do the painful refactoring, they'll write the documentation that no one else wants to write. They understand that not all of their projects will be filled with exciting, cutting-edge work, and they're okay with that.

The Hard Truth About Soft Skills

Here's something that might ruffle some feathers: in many cases, your soft skills are more important than your technical skills. Yeah, I said it.

Think about it:

  • Can you mentor junior developers without making them feel inadequate?
  • Can you push back on unrealistic deadlines without burning bridges?
  • Can you admit when you're wrong (and trust me, you will be wrong)?

These are the skills that will make or break your career as a senior engineer. They're what enable you to lift the skills and expertise of those around you, to be the engineer that everyone wants to work with.

Understanding Cognitive Biases

One area that separates mature engineers from the pack is their awareness of cognitive biases. They understand that we're all susceptible to these biases and actively work to guard against them. Some key ones to watch out for:

  1. Self-Serving Bias: Thinking all successes are due to your brilliance and all failures are someone else's fault.
  2. Fundamental Attribution Error: Assuming others' mistakes are due to their incompetence, while your own are just circumstantial.
  3. Hindsight Bias: The “I knew it all along” syndrome after a bug or outage.
  4. Outcome Bias: Judging a decision based on its outcome rather than how it was made.
  5. Planning Fallacy: Consistently underestimating how long projects will take.

Recognizing these biases in yourself and others can dramatically improve your decision-making and team interactions.

The Importance of Sponsorship

As you grow in your career, it's crucial to understand the difference between mentorship and sponsorship. While mentoring is valuable, sponsorship is what really moves careers forward. A mentor gives advice; a sponsor creates opportunities.

As a senior engineer, part of your job is to sponsor those around you, especially those from underrepresented groups. This means:

  • Suggesting team members for high-visibility projects
  • Recommending colleagues for speaking opportunities
  • Sharing the work of others with leadership
  • Pushing for promotions and recognition for your teammates

Remember, a rising tide lifts all boats. By elevating those around you, you're not just helping them—you're building a stronger, more capable team.

The Journey from Novice to Expert

Let's talk about something that doesn't get enough airtime in our industry: the actual process of becoming an expert. We toss around terms like “junior” and “senior” engineer, but what do they really mean?

I came across this fascinating paper by Dreyfus and Dreyfus called “A Five-Stage Model of the Mental Activities Involved in Directed Skill Acquisition.” Yeah, it's a mouthful, but stick with me here. They break down the journey from novice to expert in a way that I think really nails the progression we see in engineering careers.

Here's the breakdown:

  1. Novice
    • Rigidly follows rules and plans
    • Limited situational perception
    • No discretionary judgment
  2. Advanced Beginner
    • Uses guidelines for actions
    • Limited situational perception
    • All aspects of work treated separately with equal importance
  3. Competent
    • Consciously plans actions
    • Can cope with crowded or complex situations
    • Able to use standardized and routinized procedures
  4. Proficient
    • Sees situations holistically
    • Perceives deviations from the normal pattern
    • Decision-making less labored
    • Uses maxims for guidance, with meanings that adapt to the situation
  5. Expert
    • No longer relies solely on rules, guidelines, or maxims
    • Intuitive grasp of situations based on deep understanding
    • Analytic approaches used only in novel situations or when problems occur
    • Vision of what is possible

Now, here's the kicker: Novices operate from an explicit rules- and knowledge-based perspective. They're deliberate and analytical, which means they're slower to take action. They decide or choose based on the rules they've learned.

Experts, on the other hand, operate from a mature, holistic understanding. They act intuitively, without conscious deliberation in familiar situations. They don't see problems and solutions as separate things — they just act.

The Shu-ha-ri Concept: Another Lens on Expertise

Now, let me introduce you to another fascinating way of looking at this progression: the Japanese concept of Shu-ha-ri. It's originally from martial arts, but bear with me – it's surprisingly applicable to our world of bits and bytes.

Shu-ha-ri describes three stages of learning to mastery:

  1. Shu (守) — Follow the rules This is where you obey the rules to keep or maintain the practice. It's like the “Novice” and “Advanced Beginner” stages in the Dreyfus model. You're learning the basics, following established patterns and practices without question. In Agile terms, this is where teams rigidly follow Scrum or Kanban rules to the letter.
  2. Ha (破) — Break the rules Here, you start to break free from the rigid structures. You've internalized the rules enough to know when and how to bend them. This aligns with the “Competent” and “Proficient” stages. In Agile, this is where teams start to customize their processes, adapting them to their specific needs.
  3. Ri (離) — Transcend the rules At this stage, you've gone beyond the rules to find your own path. This is true mastery, aligning with the “Expert” stage in the Dreyfus model. Here, you're creating new techniques based on your deep understanding of the principles. In Agile terms, this is where teams innovate, creating entirely new ways of working that still embody the core Agile principles.

The phrase “Shuhari” is often translated as “first learn, then detach, and finally transcend.” Sound familiar? It should because it's essentially describing the same journey as the Dreyfus model, just from a different cultural perspective.

Applying Shuhari to Engineering Teams

Now, here's where it gets interesting. Just like Agile coaches use Shuhari to gauge team maturity, we can use it to understand the maturity of engineering teams:

  1. Shu Stage Teams These teams are just starting out. They follow coding standards, architectural patterns, and engineering practices to the letter. They're learning, and that's great, but they lack the flexibility to handle unusual situations.
  2. Ha Stage Teams These teams have internalized the rules and now understand when to bend them. They can adapt practices to fit their specific context. They're starting to innovate, but still within the general framework they've learned.
  3. Ri Stage Teams These teams operate at a high level of expertise. They can create new practices and approaches based on deep understanding of engineering principles. They're not just solving problems – they're redefining how problems are solved.

The Senior Engineer's Role in Shuhari

As a senior engineer, understanding this progression is crucial. Why? Because your role changes at each stage:

  • In Shu teams, you're a teacher and a role model. Your job is to exemplify best practices and help the team internalize the rules.
  • In Ha teams, you're a guide. You help the team understand when and how to adapt practices safely.
  • In Ri teams, you're a facilitator of innovation. You create the space for new ideas to emerge and help the team push the boundaries of what's possible.

The real challenge? Most teams aren't homogeneous. You'll likely have team members at different stages, and part of your job is to help each of them progress along this path.

The Trap of Expertise

Here's something to watch out for: as you move towards expertise, you risk falling into the trap of inability to articulate your knowledge. Experts often act on intuition, which can make it hard for them to explain their decisions to others, especially novices.

This is where the real challenge of senior engineering comes in. Can you operate at an expert level while still being able to break down your thinking for others? Can you switch between intuitive action and explicit explanation?

The ability to do this — to operate at an expert level while still being able to guide and explain to others at any stage of their journey — is what truly sets apart great senior engineers.

The Dirty Secret: Emotions Matter

Now, let's talk about something that might make some of you uncomfortable: feelings. Yes, you heard me right. Feelings. Emotions. The squishy, irrational part of being human that we often try to ignore in our logical, data-driven world of tech.

Here's the dirty secret that mature engineers know: how people feel about technologies, technical decisions, and technical directions is just as important (if not more) than the cold, hard facts.

Let me give you an example. Say you're proposing to use a particular technology for a new project. On paper, it's the perfect fit. It scales well, it's cost-effective, it aligns with your company's long-term technical strategy. But there's a problem: half your team had a nightmare experience with this tech at their last job.

What do you do? If you're a less experienced engineer, you might try to push through based on the “facts”. But a mature engineer? They recognize that the team's past trauma with this tech is a real factor that needs to be addressed.

This is where empathy comes in. Can you understand and acknowledge their concerns? Can you address them constructively? Can you find a way to move forward that makes everyone comfortable?

Remember:

  • Past experiences heavily influence people's confidence in technologies, architectures, or patterns.
  • These influences can result in positive or negative reactions that might seem irrational but are very real.
  • Convincing a group to use tools and patterns they're not comfortable with isn't a straightforward task.
  • The “right tool for the job” maxim also has (sometimes unquantifiable) comfortableness as a parameter.

Mature engineers understand this phenomenon. They know how to navigate these emotional waters. They can make a case for technology that carries baggage, address concerns empathetically, and find a path forward that balances technical needs with team comfort.

Understanding the Business: Not Just a “Nice-to-Have”

Here's a truth bomb for you: being a kickass coder isn't enough. If you want to be a truly valuable senior engineer, you need to understand the business you're in. And I don't mean just knowing what your company does. I'm talking about really getting it — the market, the customers, the competition, the whole shebang.

Why Business Acumen Matters

You might be thinking, “I'm an engineer, not an MBA. Why should I care about this stuff?” Well, let me break it down for you:

  1. Aligning Tech with Business Goals: When you understand the business, you can align your technical decisions with what actually matters to the company. That flashy new tech stack might look cool on your resume, but does it actually solve a business problem?
  2. Speaking the Language of Decision Makers: Want to get buy-in for your ideas? You need to be able to explain them in terms of business value. ROI, TCO, market share — these aren't just buzzwords, they're the language of the people who approve your projects and your budget.
  3. Prioritization: In an ideal world, we'd have infinite time and resources to make every feature perfect. In the real world, we have to make trade-offs. Understanding the business helps you prioritize what's truly important.
  4. Innovation: Some of the best innovations come from engineers who understand both the tech and the business. When you know what problems the business is facing, you can come up with technical solutions they haven't even thought of.
  5. Career Growth: Want to move up the ladder? Technical skills alone won't cut it. The higher you go, the more you need to understand how your work fits into the bigger picture.

How to Level Up Your Business Understanding

Alright, so you're convinced. But how do you actually go about gaining this business knowledge? Here are some strategies I've seen work:

  1. Read the Damn Reports: Quarterly earnings reports, annual reports, investor presentations — yeah, they're dry, but they're gold mines of information about what the company cares about and where it's heading.
  2. Make Friends in Other Departments: Grab coffee with someone from sales, marketing, or finance. Ask them about their challenges. You'd be surprised how often there's a tech solution waiting to happen.
  3. Attend Company-Wide Meetings: Don't just zone out in all-hands meetings. Pay attention to what leadership is focusing on. What metrics do they care about? What challenges are they highlighting?
  4. Follow the Money: Understand your company's business model. How does the company make money? What are the costs? This context can radically change how you approach technical problems.
  5. Know Your Customers: If possible, talk to actual customers or users. Understanding their pain points firsthand is invaluable. If you can't talk to them directly, read customer feedback, support tickets, or user research reports.
  6. Stay Industry-Aware: Follow industry news, not just tech news. Know who your company's competitors are and what they're up to.

Putting It Into Practice

Here's where the rubber meets the road. Once you start gaining this business understanding, you need to apply it. Here's what that looks like:

  • When proposing a technical solution, frame it in terms of business impact. Don't just say, “This will reduce latency by 200ms.” Say “This will reduce latency by 200ms, which our data shows could increase conversion rates by 2%, potentially leading to an extra $X in revenue per year.”
  • When prioritizing tech debt, consider business implications. Maybe that ugly legacy system is actually supporting a crucial revenue stream and needs to be handled carefully.
  • Use your business knowledge to push back on unrealistic requests. “I understand you want this feature ASAP because of competitor X, but rushing it could compromise our security, potentially leading to a breach that would cost us customers and damage our reputation.”
  • Proactively suggest improvements based on business needs. “I noticed our churn rate is increasing. Here's a technical solution that could help retain customers by improving our app's performance.”

Remember, at the end of the day, we're not just building cool tech — we're solving business problems. The senior engineers who truly stand out are the ones who can bridge the gap between the server room and the board room.

So, next time you're deep in a coding session, take a step back and ask yourself: “How does this contribute to our business goals?” That's the kind of thinking that separates the good engineers from the great ones.

Conclusion: The Path to True Engineering Mastery

Alright, let's bring it all home. If you've skimmed through this entire article and only read this conclusion, here's what I want you to take away:

Being a senior engineer isn't about being the best coder in the room. It's about being the engineer who elevates everyone around them. It's about seeing the big picture, navigating the complex human dynamics of a tech organization, and yes, occasionally writing some damn good code.

Here are the key things to think about on your journey to becoming a truly valuable senior engineer:

  1. Technical skills are just the beginning. They're necessary, but not sufficient. Your ability to communicate, empathize, and work with others is just as crucial.
  2. Embrace the journey from novice to expert. Understand the stages of learning (remember Shu Ha Ri?) and help others along their path.
  3. Cultivate your soft skills. Learn to communicate effectively with both technical and non-technical stakeholders. Be the bridge between different worlds.
  4. Be aware of cognitive biases. Recognize them in yourself and others to make better decisions and foster better team dynamics.
  5. Sponsor others, don't just mentor. Create opportunities for those around you, especially from underrepresented groups. Your success is measured by the success of your team.
  6. Understand the business side. Learn to speak the language of ROI and business value. Connect your technical decisions to business outcomes.
  7. Embrace the unglamorous work. Be willing to tackle the legacy code, write the documentation, and do the refactoring that others avoid.
  8. Never stop learning. The moment you think you know everything is the moment you stop growing. Stay curious, stay humble.
  9. Navigate the emotional landscape. Recognize that feelings about technologies and decisions matter. Learn to address concerns empathetically.
  10. Make trade-offs explicit. Understand that engineering is about balancing competing priorities. Be clear about the trade-offs in your decisions.

Remember, your goal isn't to be the 10x engineer who cranks out code at superhuman speeds. Your goal is to be the engineer who makes the entire team 10x better. It's about creating an environment where everyone can do their best work, where innovation thrives, and where complex problems get solved.

So, as you navigate your career, ask yourself regularly: "Am I making everyone around me better? Am I bridging the gap between technology and business value? Am I creating an environment where great work can happen?"

If you can answer yes to these questions, you're on the right path. You're becoming the kind of senior engineer that companies desperately need and teams love to work with. You're becoming a true master of your craft.

Now go out there and build something amazing – not just in code, but in the people and teams around you. That's what being a senior engineer is all about.