In my previous post, I shared my technical onboarding experience with an M1 MacBook Pro. (The laptop still runs like a dream!). Now that I've been working at Authzed for a few months, I'll share a bit about the rest of my onboarding experience. So what's it like starting at an early stage startup, during a global pandemic, working to build a Google-class permissions service that’s available to all? I'll start by describing some general realities of working remotely during a pandemic and then share what we do specifically at Authzed to work together.
Authzed is a distributed team. Even without the ongoing pandemic, I'm based in Seattle while my co-workers are based in New York City. The pandemic has taken our remoteness a step further by forcing each of us to work remotely. While these circumstances aren’t ideal, they’ve become an opportunity to examine how we work together and refine the practices that help us be a productive company. We all seem to be simultaneously living out and discovering best practices for remote work during the past year but two in particular have stood out for us: written communication and meeting intentionally.
Writing is the default
Writing is our primary form of communication. We chat using Slack, review code on GitHub, share technical proposals as one and six page documents, and keep an archive of meeting notes. The asynchronous nature of written communication helps us span time zones and accommodate varying home schedules. We try to keep our writing informal but even an informal document promotes an organized thought process. Some of us may be drawing from our past Amazon experience, where we became quite familiar with the practice of the 6 pager, but it continues to be effective for us presently. Lastly, our collection of written communication serves as an archive of our decisions and the thought processes behind them with the bonus of being an automatic layer of transparency. When in doubt, write it out.
Have less meetings...
...but make the most of them. We have very few recurring meetings which leaves our calendars open to accommodate each day's objectives. Most days, this leaves us with long blocks of focused work time but also gives us the flexibility to schedule meetings when necessary. For these meetings, we send out relevant documents in advance to allow attendees to come into the meeting with context and ready to discuss.
Daily stand ups
These meetings look and function like a stand up at most companies: each person shares what they accomplished the day prior and what they expect to work on today. However, at Authzed we use a running shared document to capture everyone's updates. Throughout the day, one is expected to go into the doc to cross off tasks as they are completed and include notes about any updates. From this practice, we get an emergent layer of visibility into our teammates' day as well as a source of accountability. As an example, if a particular task is repeated in multiple updates, it becomes a visual cue to check in to see if something is blocking its progress. It also becomes our own time machine of sorts, where we can go back and see what we did on any given day. Handy for the times where we might lose track of the day of the week.
As a company we have a weekly theme, an area of primary focus, that helps coordinate our individual objectives for the week. During our weekly retrospective meeting, we gather data and document the impact of our previous week's work, assess what did and didn't work well, and plan for the upcoming week's theme. Similar to our running shared stand up document, we have a shared retro document which we revisit throughout the week to remind ourselves of current commitments.
In-depth (video call) discussion
This type of meeting may be the hallmark of my Authzed experience so far. Imagine a question posed in Slack, that turns into a long thread, and eventually someone requests an “in-person” meeting to discuss further. A commonly occurring scenario in a remote work environment but what makes the Authzed version of these types of meetings unique is the level of depth we are willing to go in order to get the most out of the occasion of having the meeting. Some unique examples of this I’ve observed in my first few months include:
- An initial gathering to just get an overview of a proposed algorithm for a core component, that invited an alternative algorithm, a technical discussion comparing the 2 approaches, a collaborative code walk through, and a final decision that justified implementing the alternative algorithm so we could more precisely evaluate them. All up, a 2.5 hour session that yielded a potential new, better algorithm.
- While brainstorming ideas to achieve a marketing goal, we couldn’t reach a consensus. We stopped the present meeting, committed to each writing one pagers for our respective ideas, and to meet the following day to present our papers. The next day we had 4 meeting attendees but ended up reviewing 7 papers, most likely because creativity struck as we had to organize our initial thoughts.
The structure of these types of meetings may vary but the motivation is always the same: do what’s necessary to get to a better solution.
I’d summarize my onboarding experience as being welcomed into healthy tensions. The autonomy of figuring out how to work towards a weekly theme but the accountability of shared daily goals. Working remotely but having deeply connected moments. Welcoming different opinions but sharing the commitment to get to better solutions for our users. One thing in harmony, though, is as we continue to improve how we work together, the better we get at building the best product for our users.
The key issue, though, is not how often we have conflict-- it’s how well we manage it. The goal isn’t to have less conflict; it’s to have the right kind of conflict. - Adam Grant, author of Think Again
If you’d like to chat with a permissions expert, schedule a chat with us and if you want to stay informed about updates about our product and company, sign up for our mailing list below.