Minimum Viable Engineering Management

When I first joined GitHub in 2013, there was no engineering management. They had people in engineering leadership roles (some with titles, some without) but no dedicated managers to check in with regularly. Initially I thought this was great. Over time, I realised it was actually pretty terrible. As a result, when I started my own company and was a manager for the first time, I wanted to ensure we provided “minimum viable engineering management”. What this meant was providing the necessary support and monitoring infrastructure to ensure great performance while letting managers, present (me) and future, spend most of their time on individual contributions.

I’ve been working with Administrate, the world’s best Training Management System as their Fractional CTO for a few months now. When I joined, there was a similar problem: it wasn’t clear how much management was too much or too little, so I wrote an internal document. It has been lightly modified for public consumption and turned into this post.


At companies without a current need for full-time, non-coding engineering management, there is often still a need for some engineers to take on extra leadership responsibilities. It’s a hybrid of what other companies may call “Engineering Manager” and “Staff Engineer”. This role provides “minimum viable engineering management”: just enough to ensure everyone can get their job done.

The responsibilities are:

1️⃣ Regular 1:1s

You should meet each member of your team once every 1-2 weeks in a synchronous face-to-face conversation (e.g. in person, Zoom or Google Meet with cameras on) planned for 30-60 minutes. If you run out of topics to talk about: finish early. If you regularly run long: consider how you’re spending your time and plan an agenda to keep the conversation on topic. 1:1s are the cornerstone of your management.

In 1:1s you should be:

📥 Getting Context

Figure out how the person is doing in their personal life (if they wish to share anything that might affect work) and with the company.

Prompt questions:

  • Learn about any potential issues outside work e.g. “How are you doing?” or “Anything I should know about going on outside of work right now?”
  • “What’s going well for you at work?”
  • “What’s not going so well for you at work?”

You should also gain additional context by reading async standup (Geekbot is a good tool for this) reports for your team.

📤 Providing Context

A manager is responsible for continually ensuring their team members understand what they’re doing, why they’re doing it and what is expected of them.

🎤 Delivering Feedback

1:1s are the best time to deliver non-urgent positive and critical feedback. If it’s urgent or another reason dictates giving feedback outside of 1:1s, that’s fine too; just ensure you keep consistent notes in one place. You need to regularly praise good behaviour and critique poor performance. Do not leave poor performance unaddressed just because it’s awkward to deliver. It will feel worse if you have to deliver bad news, for example about missed promotions or static compensation, due to unaddressed performance issues.

Prompt statements:

  • “This week I liked that you…”
  • “Last week you did…, what I would have liked to have seen was…”

Deliver positive feedback in public channels (e.g. Slack) and critical feedback privately, in a Slack DM if urgent (e.g. stopping a risky PR being merged) or in a 1:1 if not. You should consider how to deliver the feedback when making this decision. Is this something better done face-to-face, or is it something simple and easy to communicate over text?

🧈 Unblocking

From async standups (e.g. Geekbot), Slack messages and 1:1s, it’s your job as manager to spot when people are blocked and help unblock them. This may involve reviewing PRs, messaging someone on their behalf or assigning new work. Prompt question:

  • “Anything you’re blocked on right now?”

📣 Receiving Feedback

1:1s are also a good time to get feedback from your team. Ensuring that feedback delivery is two-way builds trust and two-way accountability.

Prompt question:

  • “Do you have any feedback for me based on our interactions this week?”

🏖️ Approving Holidays

As a manager, you’re responsible for approving holidays for your team. You are responsible for ensuring that no more than half the team is out during a normal working week. Ideally, give a week’s notice for a day off, a month for a week off and multiple months for multiple weeks off. No holiday can be for longer than 2 weeks without higher-level approval.

📝 Taking Notes

Everything discussed above should be noted in a permanent written form, for example Google Docs or an AI transcriber/note-taker (reviewed by a human for accuracy). This supports rewarding good performance and addressing poor performance.

🧑‍🎤 Individual Contribution

The above should take only a minority of your week. You should still have the majority of your time to spend on your own individual engineering contributions. If this is not the case: shout loudly to Mike and he will fix it.


If you’d like to help with similar problems in your organisation through my consulting business, please reach out 💌.

Thanks to Nora McKinnell, Jen Anderson (and ChatGPT5 🤖) for reviewing multiple drafts of this post.