# Craig Hagerman's Manager Readme

**Engineering Manager, ML/AI at Survey Monkey**

# Craig Hagerman - Manager Readme

The idea of a manager ‘user manual’ has been around since at least the early 2010s. Roy Rapoport popularized the ‘Manager README’ format in 2016 while at Netflix as an owner's manual for people working with him. Many managers have since written their own. It takes time to get to know a new manager, and this is my attempt to give you a head start.

This is a living document. I'll update it as I learn and as you give me feedback.

# About Me

- **Where I'm from:** I'm Canadian. I was born in New Brunswick, grew up in Bermuda, and now live in Hamilton, ON (about 90 minutes from both Toronto and Buffalo).
- **Japan:** I lived in Japan for about 15 years. I taught English, first at a language school and then in junior high schools on the JET Programme. I then earned grad degrees in applied and computational linguistics and became a university lecturer.
- **Tech career:** In 2014 I earned another grad degree in applied computing (machine learning) from the University of Toronto. I've worked in data science, ML and AI engineering ever since, and have been in engineering management for the last 4+ years. My teaching background gave me a lot of transferable skills.
- **Family:** I live with my wife, two high-school kids and three dogs (foster fail!). My wife is Japanese, and my kids were born in Japan. They're trilingual: Japanese and English, plus French from French immersion.
- **Outside work:** A lot of my free time goes to driving my kids to extracurriculars. I also enjoy working out, yoga, playing guitar, trumpet and piano, reading, TV and home improvement projects. I usually have a personal software project or two on the go.

# How I Lead

## I work for you

I think of my job as being an air traffic controller for the team and every stakeholder with a dependency on us. My role is to shield you from politics, protect your time (and your flow state), keep you unblocked and get you the resources you need. If you need help, support, training, a sounding board or just want to vent, I'm available.

## Autonomy and trust

I'll treat you like an adult and trust you to manage your own time. I don't micro-manage. I'll point at the target, and I'm counting on you to figure out how to get there.

I don't care when or how many hours you work. Go to the gym for two hours midday, take a doctor's appointment, pick up your kids, work Saturday and take Tuesday off. All fine. Just let people know and make sure the work gets done.

The flip side: autonomy only works with ownership. What I care about is that you're **responsive and communicative** , and that you **deliver on your commitments** at the right pace.

## Technical, but not the tip of the spear

I've been hands-on throughout my career, including player-coach roles, and I still code. I believe an EM should be technical enough to review code, run tests and triage incidents.

But I don't believe a manager should be the strongest engineer on the team. I see senior and staff ICs as partners, and I defer to them on implementation.

At the start, I'll spend time in the code. That's not because I plan to be hands-on. I want an accurate mental model of everything the team owns: how it's set up, configured, tested and deployed, and how the modules and workflows fit together.

I expect two-way conversations about technical decisions. If I overstep or don't listen to your expertise, push back.

# What I Believe

- **The golden rule.** Treat others how they want to be treated. Everyone deserves respect and empathy, especially people with different backgrounds from yours.
- **Care personally, challenge directly.** I want to get to know the real you, care about your well-being and challenge you with honest, direct feedback.
- **Health \> family \> work.** People are more than their jobs. Good leaders make space for life outside work.
- **We win and lose as a team.** The best teams trust each other, challenge each other and have each other's backs. Ask for help when you need it, and look for chances to help your teammates.
- **Data science, ML and AI are engineering disciplines.** Software engineering has decades of hard-won best practices: Clean Code and Clean Architecture, TDD, SOLID, iterative agile delivery, DORA metrics and more. We should know them and use them where they fit.
- **…but ML is not software engineering.** ML work has a non-linear lifecycle, ambiguity, non-deterministic outcomes and its own post-deployment observability needs. Some SWE practices are a square peg in a round hole. Where that's true, we should build our own. For example, our "Definition of Done" is _plural_: there are several stages of "done" besides "it's in production."
- **AI tools are great assistants, not magic genies.** I've used Claude Code, Codex and Cursor extensively and I'm a convert. But you're still responsible for the code in your PRs. We all need to find effective ways to work with these tools and validate what they produce.

# Working Together

## Communication

Communication is what makes a remote, async team work.

- **Be responsive.** At minimum, react with an emoji so people know you've seen a message.
- **Be proactive.** Surface problems early. "This is taking longer than I expected" beats silence. Surface issues late and they become incidents.
- **Speak up.** Share your opinion in meetings without waiting to be asked.
- **Use the right medium.** Chat is for quick, ephemeral conversations. Email is for anything that should persist and be searchable. Docs and wikis are for async collaboration and documentation.
- **Share the human stuff too.** What you're proud of, what's frustrating you, how your team did last weekend. Relationships matter.

When I message you, I'll always say why. You'll get "Let's chat about the design for XYZ," not just "Let's chat."

## Working hours

Set your own core hours as long as we have reasonable overlap. I'll adjust mine to fit the people I need to meet with.

My day tends to be broken up: early work, dog walk, work, gym and lunch, work, dog walk, work, dinner, kids' activities, then sometimes a bit more work. If I'm slow to respond, I'm probably mid-walk or at the gym.

## 1:1s

- **It's your meeting.** Bring the agenda: blockers, concerns, wins, career goals, things you want to vent about. If there's something you want, ask for it.
- **Not a status report.** I'll get status from standups and other channels.
- **Getting to know each other** is one of the most valuable things about 1:1s. Tell me what's going on outside work too.
- **Cadence:** We'll start weekly. We can move to biweekly if you prefer.
- **Notes:** I'll take notes so we both remember what we discussed.
- **Rescheduling:** Feel free to move or cancel. I'll try not to cancel, and if I have to, I'll reschedule.

## Feedback

- I praise publicly and critique privately.
- I give feedback while it's fresh. You shouldn't have to read tea leaves to know where you stand.
- I want feedback from you just as much. Tell me when I'm wrong, what I'm missing and how we can do better.

## Talking to others

- **Skip-levels are welcome.** Talk to my manager or other senior leaders about anything you think is relevant. You don't need to clear it with me.
- **Work requests come through me.** Product managers and other teams should bring requests to me, not to you directly. I can't protect your time without visibility into all the asks.
- **Conflicts come to me early.** If a problem arises with someone, talk to me before a minor issue grows.

# Expectations

## What you can expect from me

- **A good culture.** Open, inclusive, challenging and fun, with the psychological safety to bring forward ideas and concerns.
- **Transparency.** I'll be responsive, direct and honest. I'll share context about the broader org so there are no surprises.
- **Air cover.** I'll protect your time and remove distractions so you can focus on meaningful work.
- **Development.** I want you to grow. Tell me what you love working on and what you want to learn, and I'll look for stretch opportunities and connect your work to where you want to go next.

## What I expect from you

- **Own it.** You're here because you're great at what you do. Deliver your commitments. Run the tests. If you find bugs, iterate until they're fixed.
- **Communicate early and often.** See above.
- **Collaborate.** Be curious about the whole team's work. Pair, brainstorm, sync up and help each other.
- **Leave things better than you found them.**
- **Be professional.** Be kind and pleasant to everyone, on the team and off it.
- **Challenge me.** Better technical decisions come from different perspectives and healthy debate.

# How I'm Wired

- **Personality:** Mostly friendly, helpful and irreverent. I like a good dad joke and try not to take myself too seriously. I'm also earnest about work, hold myself to high standards and care about finding and following best practices.
- **Language processing:** I have a form of aphasia. It shows up in two ways:

  1. **Word finding.** I sometimes (often?) reach for the wrong word name or concept, or speak less smoothly (think [spoonerisms](https://en.wikipedia.org/wiki/Spoonerism)).
  2. **Auditory processing.** I can lag in fast, information-dense back-and-forth conversation.

Both get worse when I'm tired, stressed or in conflict. It has no effect on written or analytical work. To compensate, I take lots of notes in meetings, I may ask you to repeat something or give me a moment, and I often prefer to "take it away" and think before deciding rather than decide on the spot. I need things to be in writing.

- **What frustrates me:** People who don't respect expertise and experience, and people who tell others how to do their jobs. I try hard not to do this to you, and I appreciate the same in return.

# Things I'm Working On

- **Not being the lead IC.** Despite everything I've said about ownership and respecting your expertise, I sometimes slip into thinking I should lead implementation. Call me out when it happens.

