Working with Caspar

Did you find this because I’m about to interview you, or you’re considering joining the Statuspage team at Atlassian? Perhaps you’re wondering what your work life would be like if you end up joining my team?

If so, you’re in luck, because I’m about to try and give you an idea of that.

What to expect from me as a manager

I’m technical; you don’t have to worry about my not understanding what you’re up to. I’ve been programming since I was 11, and programming full-time and professionally since 2009. However, I prefer to delegate as many technical decisions as possible to you; this is because…

Management is my craft now, not coding. It may not be that way forever, but while it is, my job is to be a multiplier of your efforts. That means:

  • I take your career aspirations seriously. I push relevant opportunities your way, assess your progress & performance, advocate for your advancement and try to line projects up so you operate at (or sometimes just past) the edge of your capabilities, working on work which is relevant to your interests. I assume you’ll be working with me for a while, so optimizing for the long term generally beats optimizing for the short term.
  • If people are struggling to work together, or a person is struggling to work at all, it’s my job to repeatedly troubleshoot and work with them to find solutions.
  • I aim to provide the right amount of context so you understand why we’re doing what we’re doing, not just what we’re doing, so you make the right calls at the right time, and can prioritize your work. In our weekly 1-on-1s, I will sometimes ask you to switch roles to explain “the why” to me so I can gauge how I’m doing.
  • I will ask you to make almost all of the technical calls, with documented reasoning for high impact decisions. I enjoy debating technical approaches if you want to, and will definitely call bullshit if I think you’ve overlooked something important, but will rarely exercise managerial veto.
  • When you get stuck, I help unblock you. Sometimes that means asking someone to pair with you, sometimes I know the answer outright, sometimes I point you at a different part of the org, and sometimes I’m your rubber duck.
  • It’s up to me to put the right mechanisms and guardrails in place to make sure bugs get fixed, developer experience stays high, technical debt is paid off, and your long term technical proposals are adopted as appropriate. I approach these challenges from a game theory perspective: once expectations are communicated and incentives are aligned correctly, people will do the right thing.
  • I’m the shit umbrella: distractions from outside the team come to me first, so that you can focus. That doesn’t mean no shit will land on your plate, but the shit that does land on your plate will be of finely curated quality, and it will land on your plate for a reason.
  • I will ask you to provide relevant project-oriented information (risks, actual vs estimated progress), for the triple purposes of forcing you to keep an eye on the bigger picture, allowing me to suggest course corrections so we hit our goals, and allowing me to bubble serious issues up to my manager.
  • And last but certainly not least: driving hiring of new team members who raise the bar for the team in at least one area, relying heavily on your input to identify areas of technical prowess.

I’ve been a manager since early 2016: I still have a lot to learn (thankfully - I’d hate to be bored!), but I’m also firmly out of first-time-manager territory, and I’ve dealt with enough shit and fan interactions to get a good idea of my strengths:

  • not letting things slip through the cracks: I’m well organized and highly motivated. If I haven’t done something, at least 9 out of 10 times it will be because I’ve prioritized other tasks more highly, not because I forgot or couldn’t be bothered.
  • written communication. I’m good both at concisely describing technical work, and at striking the right tone in delicate situations. By the way, if you’d like to suggest improvements to any of the content here, please feel free to contact me!
  • focusing on work: management is filled with distractions, and I make myself very available, so even if I only have 5 minutes free, I am laser focused on getting another thing done - not surfing HackerNews or catching up on Twitter.
    • NB: if you’re on top of your work, I don’t mind if you want to (e.g.) read HN during your day.
  • radiating information gathered. I hear things from around the company and pass them on, which often saves effort in my team and elsewhere in the company.
  • listening to people. I’ve had a lot of practice at quietly listening to understand everyone’s concerns, rather than jumping into suggestion mode immediately.

Finally, I’ve been at Atlassian since 2013, so I know who to talk to for most things, and where to find answers when I don’t. But I’m damn well not resting and vesting, and never will.

What I expect from you if you are a developer

If you’re joining my team as a developer, the short answer is that I expect you to consistently put 100% effort into advancing the objectives of your team. Typically, this means trying to move the needle on a metric or address qualitative customer or internal feedback by building a new feature or reworking existing functionality.

The most basic form of this is working on tickets which are mostly assigned to you by other team members. This is the level which I expect a junior or newly joined engineer to operate at.

A mid-level engineer should be able to take a functional specification of requirements, suggested changes and UX mockups, and implement that from start to finish. That means turning the functional specification into a technical specification of work to be done, getting that reviewed by more senior team members, breaking that work down into a set of incrementally executable tasks, estimating how long they will take, executing on those tasks, and keeping interested parties (including me!) apprised of your progress.

If you are joining as a senior engineer, I expect you to participate heavily in the initial crafting of the functional specification by working together with product managers and designers. Typically the scope of your projects are larger or riskier, so you should also be able to break down work so that multiple people can execute on the same project in parallel, and then adjust your estimate to account for that parallelism.

Concretely, your day to day priorities should be:

  1. Interviewing potential candidates to join the team (once you are senior enough to be on the interviewing roster)
  2. Unblocking your team mates: answer their questions and review their code, specifications, and other artifacts.
  3. Unblocking people outside your team, when reasonable. If unreasonable in your opinion, I expect you to protect your time by clearly communicating that to the people in question, pointing them to an alternative, or escalating to me if you can’t think of any other options.
  4. Planning upcoming work, collecting & analysing data, writing technical specifications, writing code & tests, verifying your and others’ work, writing blog posts to share technical and organizational knowledge, and responding to escalated support cases. (Priorities within this bullet point should be clear from your team’s weekly planning and daily discussions during standup.)

There is a lot more to say on this topic, and we will talk about it a lot more if you join my team, but if you aspire to live up to the archetype described at On Being A Senior Engineer then you will be on the right track.

What I expect from you if you are a manager

If you’re joining my team as a manager, this answer is easy: first read what people can expect from me (see relevant heading above).

That’s what I’m going to expect you to handle, except scoped to your area of responsibility; in the same way that my job will still be to multiply your effectiveness, I will expect you to multiply the people working directly with you. I will be your backup, but once you are fully ramped up, I expect you will be able to handle the everyday proceedings of your team.

In addition, on top of surfacing project progress & risks, I will expect you to be able to coherently discuss the career aspirations, progress and performance of your team members with me.