The Manager's Stack
As my job has changed from developer to manager, so Sublime Text and iTerm have become less important to me. I’ve substituted my old toolset for a new bunch of tools that help me to manage the dev team at Podia.
Podia is a fully-remote company so all our management involves Slack, Basecamp, and Zoom. There are no meeting rooms or water coolers, and you can’t manage just by popping over to someone’s desk. We’re also small, at just over 30 in total, and around 10 people on the dev team. I talk a lot about meetings here because they are one of the defining differences between developers and managers but, to put some numbers around it, my typical week involves about 10 hours of meetings. Though, because of EU-US time zones, they tend to be concentrated in my afternoons and so need to be carefully coordinated to a degree that’s surprising for the relatively small volume.
If your circumstances differ greatly from this you might find the recommendations aren’t quite as useful to you.
First up, I need to take notes and Bear is my tool of choice. It’s a pretty bearbones markdown editor which is easy to dump text into but supports images when needed.
I generally use it for draft announcements, sketching out blog posts like this one, thinking through problems, checklists, etc etc. It’s the place where most of my words are first drafted, sometimes weeks before they are finally shared with the team.
One specific use of Bear is to maintain a Feedback Log. I keep a running note for each of my direct reports which I append any feedback I’d like to give. Some feedback obviously needs to be given immediately but others things can wait for a 1:1 and that’s what I keep notes on.
The feedback format just looks like this in my notes:
* 12 Dec 2021: 👍 You did something amazing
* 20 Dec 2021: 👎 This could have been better
In Bear, this is pretty quick because the date can be inserted with Cmd-Shift-8 and it has an emoji picker so I can just type
:thum and choose the up or down version.
I keep all these notes tagged with
#podia/feedback and keep one note for each team member. Once I deliver the feedback, I check off the item in the notes so I don’t miss anything or repeat myself.
Pen & paper
I’m still quite old school and I much prefer to handwrite my meeting notes, primarily because I think it’s less distracting for the other people than the clickity-clankity of typing.
I’m also left-handed but use the trackball on the right which means I generally have my left hand available for note taking even whilst screensharing or hitting the mute button. I kinda think left-handers have the advantage here 🤷♂️
For the stationery nerds, I use:
- Rhodia DotGrid A4 pads for scribbling notes / diagrams etc
- Leuchtruem A5 Bullet journals for writing
- Pentel Energel pens. These are the best pens ever invented, and the quick-drying ink works well for left-handers. I have them in a ton of colours for variety but mostly write in black.
- Lamy AL-star because it’s pretty and I enjoy writing with a fountain pen just for the shear joy of defeating my school nemesis (again, a left-hander thing)
I don’t often type up my meeting notes into an app because that’s rarely useful. For interviews I’ll just take a photo of my handwritten notes using PDFExpert on my phone and attach it to the candidate’s profile. It might not be useful to anyone else since my handwriting is not the most legible but it serves as a useful prompt for me.
If I need to convey a summary or outcome from a meeting to other people, I find it’s best to write that up afterwards. That summary is rarely a direct transcription of my notes and I don’t think I could write it during the meeting without my attention wavering from the discussion. Unfortunately, this process takes more time so I only occasionally do it.
We use KnowYourTeam for all our 1:1s to prepare and share the agendas. We previously used Lattice but KYT has the advantage of using a free-text area instead of requiring each item to be entered into a little text box. I can share deep feedback, links to articles, or even diagrams when necessary.
I’ve even started using KYT to keep agendas for meetings with my peers on the leadership team since there’s nothing that really defines a hierarchical relationship.
KYT also has other tools like icebreaker questions for new team members, regular culture/social survey questions, and a shout-out wall. These have all been really useful when onboarding new members.
There are other tools like KYT but they have all, to some degree, sold out at the alter of Enterprise sales and HR departments (and I even helped build one of them). KYT is one of the few tools which remains true to it’s roots, treats the managers & team members as the focus (not HR depts), and tries to stay out of your way as much as possible. I used KYT for a year just on the dev team when the rest of Podia was using Lattice, before eventually the whole company adopted KYT. I’m eagerly awaiting KYT’s new performance review functionality too as I think it will be aligned well with the way a small company like Podia should operate.
When you’re starting out, 1:1’s can be an intimidating prospect. What on earth will we talk about for 45mins? …every two weeks?!
Of course, nothing is better than the whole agenda being driven be the team member and I’m always looking to discuss their points first and foremost. But when there’s time left over, or no major talking points, it’s great to have something to prompt a discussion. There are some great lists of questions I used to get started and KYT also has some but they are best used to set the agenda ahead of time.
If you just finish early or unexpectedly have time available, I recommend Plucky cards. These are oversized cards with a question to ask and some further areas to dig into. I keep a pack on my desk, shuffle them when needed, draw the top one, ask the question, and show the card on the camera. Without fail, these have generated some interesting and insightful conversations. They also remove any anxiety I might have about “what are we going to talk about?”, knowing that there are always a stack of great options on my desk.
Highly recommended, especially for new or introverted managers.
It’s a cliché that managers need to live by their calendar whereas most developers (hopefully!) do not. Alongside my work meetings I also have some personal commitments that I need to manage. I need to pick up the kids from school, go swimming, have lunch, and attend to other occasional appointments. These are all reflected on my personal calendar but how can I make that available to my work tools?
Enter Reclaim.ai. It synchronises the events from my personal calendar to my work calendar, with a configurable amount of privacy. This means anyone booking time on my work calendar has an accurate representation of my availability.
It also has other features like Slack status synchronisation, blocking off time for habits, or scheduling time for specific tasks. The habits are useful for daily tasks like taking a walk or having a lunch break which, if left undefended, would be trampled on by other meetings. These habits are initially marked as “free” , allowing other people to book time during them, until you get within ~24hrs or there’s no other free time to move them too. Then they move to a defended “busy” state which prevents other events from interfering.
As an example, I was walking for ~45mins every day for the first 6 months of 2021. I set this up as a habit at a preferred time in reclaim and team members could still grab that slot for a meeting only if Reclaim could still move the habit to another suitable time that day. This worked great at allowing some flexibility but still defending the habit I wanted to cultivate.
Here’s a “habit” I added when Hilary was away and I needed to cook dinner for the kids each day. Reclaim wasn’t able to defend against the pre-existing meetings on Tuesday but for everything else it’s determined that this slot needs to be defended and has blocked it off.
In contrast, my lunch “habit” is marked as 🆓 some days because there are still open spaces to move it to, except Wednesday when I must grab lunch at 1pm, because of the 1:1 at 1:30pm. This lunch slot is marked with a 🛡️ to indicate it cannot be moved and is “busy”
Reclaim can also do something similar for tasks, allowing you to specify “I need 4 hours, in minimum of 1.5hr blocks, to write Jason’s performance review and it must be done before Wednesday at 5pm”. It then schedules time in your calendar to work on the task and blocks other people from claiming this time. It’s a life-saver around performance reviews or any other time you have a fixed deadline for focused work. I’m eagerly awaiting their Todoist integration.
It also adds a 15min buffer to all meetings which means I don’t have constant back-to-back meetings.
Everyone knows Calendly at this stage as a means of sending a link to someone so they can book a time on your calendar. SavvyCal does that but does it better.
I think everyone is onboard with meeting links as a way to avoid endless back-and-forth scheduling times, but here’s what I really appreciate about SavvyCal:
- You can specify multiple durations for an event and let the person booking it decide how long they need. This means I can replace three Calendly links (“Quick catch-up”, “Chat”, “Pairing”) with a single link that Podia developers can choose from a 15min, 30min, or 1hr slot.
- The recipient can connect their Google calendar to see their own events overlaid onto my available slots.
- You can have personalised links with the recipient’s name, email, and a message pre-filled. It looks welcoming and respectful, rather than a generic booking link.
- There is no limit on the number of links so it’s easy to have one for everything. I have links for screening interviews, actual interviews, Podia donut calls, Podia dev team, and even Spencer gets his own link!
- Instead of configuring your availability for each event type, you can have reusable time blocks. I have things like “Open office hours” to constrain external calls to Thursday / Fridays; “Podia hours” which shift slightly into the evening to allow for my teammates in the US; “Podia EU hours” for folks on this side of the water; “Job applicants” which I limit to Tuesday-Thursday because Mondays are generally very team-focused and busy.
- The Zoom integration means that I don’t have to worry about sending links to anyone
- I also have a required question for most meetings: “What’s the agenda?”. This means I have a little prompt to get my brain to jump gears from writing a job description to discussing the mechanisms of EU VAT.
- For some events like reference calls, I put the agenda into the description so the person has that ahead of time.
Overall, I believe SavvyCal goes a long way to balancing the unstated power dynamic with meeting links. Quite often, sending a meeting link can be seen as a power move: “You book it on my calendar, because my time is precious. I’m more important” is the underlying message, even when not intended. The recipient has to do all the work of choosing the slot, constrained by your choices, and all the while referring back to their own calendar.
SavvyCal shifts that dynamic by putting the recipient’s calendar on the screen at the same time, by allowing them to choose the duration, and by allowing them to seek more available slots if the first options aren’t suitable.
I am not a fan of browser-based apps because I have a gazillion tabs open at any time and I really need to quickly Cmd-Tab to my primary tools. Fantastical is a native Mac app which has a couple of necessary feature for me.
Let’s start with the biggie: Fantastical will merge together the same events if they appear on different calendars. This is what really makes Reclaim work for me because I can add “School run” to my personal calendar, Reclaim will duplicate it to my work calendar so I avoid conflicts, then Fantastical will merge those events together in the calendar view.
Consider the hot mess of Apple Calendar with duplicated events (top), compared to the merged events in Fantastical (bottom)
No more stupidly crowded time slots with duplicated events. Just a single event with a cross-hatched pattern. This also makes it easier to spot genuine conflicts on your calendar. I cannot overstate how I will never switch to another calendar app if it lacks this feature.
There’s a couple of other features I use a lot.
I use event templates for common but non-recurring events like swim sessions or database maintenance. This means I have the right reminders, calendar, travel time, etc set up and saves me time.
I use the secondary time zone feature to put “Podia time”, a.k.a. Eastern Time on the right-hand side of the calendar view. This makes it easy for me to find the right time when someone says “11am Eastern” without doing pesky maths.
I also use the Zoom integration to add meeting links to events, particularly 1:1s.
Fantastical gives you little “Join” buttons in the calendar events but I like Meeter as a little icing on top. It’s a menu bar app which does two things: displays how long you have until your next meeting, and pops up a notification 1 minute before the event starts. Click that notification and it’ll open Zoom.
I now have a Pavlovian reaction to Meeter notifications which I don’t have to Fantastical notifications.
This is a bit of a weak recommendation but really you just need some sort of task list which you can maintain yourself, often referencing things from other apps.
Todoist does this job for me but there are a gazillion alternatives. One thing I like it being able to add emails from Spark as tasks in Todoist, or have Zapier listen for GitHub review requests and send them there.
Krisp’s primary purpose is to remove noise from audio streams. I started using it to cut down on the hum from the fish tank in my office, or remove the shouts of the kids playing outside. I think it works ok for that but that’s not why I value it.
Recently it gained a mini floating widget which is amazing. It has volume level so I can see if my microphone is receiving any input, which frequently it isn’t because it needs to be plugged in & out again to make it connect.
Here’s the killer feature though: a count of your talk time and a percentage of the total call time. This means that, at a glance, I can tell if I’ve inadvertently dominated a meeting when I really want to be aiming for < 1/N, i.e. less than 50% of the time for a 1:1, less than 25% of the time for our 4-person leadership meetings.