sladuca.com

# Seb on Software Engineering Management

Edited 2 Nov 2025

I recently started being a manager. It's at a small company and I kind of had to figure it out myself; here are some of the things I've learned.

# Leadership

# Communication

When you say a thing, your words map to a set of interpretations the listener could have based on their context. Your words are "clear" when that set has only one element.

Example with two possible interpretations
Seemingly-specific requests are often unclear.

# Trust

Everything is easy when you're operating in a high-trust environment, and everything is unnecessarily difficult in a low-trust environment.

In a high-trust environment:

In a low-trust environment:

Among your highest priorities should be ensuring that your team is a high-trust environment.

To increase the "trust level" on your team, create opportunities for positive-sum shared experiences. Generally speaking, when team achieves its objectives, trust improves.

Nicky Case's trust game
Play Nicky Case's trust game for a fun illustration of how trust is built and lost.

Here are some specific things that have worked well for me in the past:

If you've ever played Fire Emblem (any of them), building trust is a lot like increasing the pairwise support levels between characters. I think Fire Emblem is a great analogy for management in general, so if you like JRPGs, I highly recommend playing it.

Fire Emblem Support
In Fire Emblem: Three Houses, every character has a "support" level with every other character, which is raised when they have positive interactions both on and off the battlefield

# Team composition

Everyone has strengths and weaknesses. Everyone has likes and dislikes. Your team is at its greatest when everyone is doing things they like and are good at.

For example, some engineers like to solve puzzles. Others just like getting shit done. Some engineers want to write "beautiful" code. Others just see it as an instrument of business. Each of these is better in some situations than others.

The Fire emblem analogy applies very well here.

# Blame versus responsibility

Build a culture of "responsibility" based on the following maxim: Something can be your responsibility without it being your fault. That is, responsibility is about the outcome and blame is about the person.

This maxim especially applies to you. As a leader, you hold ultimate responsibility for your team. It's very important that you lead by example and take responsibility for mistakes, in particular when they're not your "fault".

This is effectively a different framing of a "blameless culture", placing emphasis on the agency individuals have to solve problems. All of the "blameless culture" stuff still applies:

  1. All mistakes are a learning opportunity.
  2. Dwell on solutions, not problems.
  3. Criticise behavior, not people.

# Hiring

The right time to hire someone is when there's something that you currently do or need to do, but the scope has grown to the point where you can't do it anymore. This will give you a very clear picture of what their day-to-day will be like, which in turn gives you a very clear picture of the "slot" they need to fit and grow into.

Since you're the one currently doing the job, you have the most context regarding the role. Therefore, you should own as much of the hiring process for your team as you reasonably can.

When sourcing candidates, it's more useful to ask the question: "Where is the kind of person I want likely to be?" than it is to ask "What skills do they need to have?". If you search for skills, you end up wasting a lot of time interviewing candidates who aren't what you're looking for. This is especially true when you're working with people like recruiters who don't have an intuition for "what a good engineer looks like". It's better to say "The kind of person I'm looking for is likely to be found on the Android firmware team at Google" than it is to say "I'm looking for a systems programmer".

# Valuing Experience

Experience isn't really something to value in and of itself. It's more of a "proxy" for underlying things that often come with experience. Some things that come to mind include:

Since many of these things aren't that correlated with "years of experience", I think it's very easy to overvalue experience. Experienced people aren't cheap, and often come with more strings attached (spouse, kids, less willing to relocate, etc.) than a twenty-something will.

Here's a better way to value experience: when you find yourself wanting someone "experienced" ask yourself what it is that this "experienced" person has that you want, and then try to look for that irrespective of experience.

# Interviews

When it comes to interviews, here are some things I believe.

The delivery of an interview matters just as much as, if not more than, its format.

It's important to be intentional about what you select for. Well-delivered algo interviews select for some degree of problem-solving ability, but don't give you much signal on other important things, like:

Vibey things like the comfort level with tools of choice, the depth and specificity when discussing past work, and the way the candidate talks about themselves are pretty high signal. Often, within the first 10-15 minutes I can tell whether or not someone's going to end up in the running to receive an offer.

I also think many people overvalue vibes. Vibe checks are quite easy to get past if you're charismatic and good at communicating. While those traits are good traits to have in an engineering hire, they aren't necessarily correlated with technical ability. So it's also bad to entirely rely on it.

Ref checks are very good. They're pretty low effort and quite high signal - you should do them in the final stages when you're choosing a winner from among your best candidates.

# Onboarding new hires

My preferred approach is what I call the "onboarding ladder" - a series of progressively challenging tasks in three categories:

Inspired by Railroad Tycoon 3
This was inspired by Railroad Tycoon 3, a game I played a lot as a child. They designed their scenarios in a manner that incrementally introduced you to more complex facets of the game. It's also how I learned what stocks, bonds, net worth, opex, interest, and insider trading are.

The objective for the first one to two weeks is for the new hire to complete a gold-level task as quickly as possible. Once they complete a gold task, they've acquired sufficient context to be considered "onboarded", and they're done with the ladder.

The goal of this exercise is not for the new hire to complete as many tasks as possible. If tasks in the current bracket are too "easy", they should move up a bracket.

A good rule of thumb is that, on average, the new hire should be roughly 50% confident in what they're doing. If it's too easy, they're not learning enough, and they should skip to the next bracket. If it's too hard, they're also not learning enough, so they should drop down a bracket.

As for numbers, I typically assign 5-10 bronze tasks, 3-5 silver tasks, and 1-2 gold tasks.