- September 20, 2019
Enter the Matrix
A few years ago, a fellow developer (Santiago Sosa) and I were brainstorming ways to foster our company culture when we came up with the idea to bring our developers together more often for informal discovery sessions. In the company’s early days, we were a fairly small and close-knit development team that usually had a decent idea of what everyone else was working on and what technologies everyone was using. However, as the team began to quickly grow, we realized that developers were working on a wide variety of projects and were bringing with them a diverse set of skills and knowledge that many other developers were unfamiliar with. Often, developers weren’t aware of all the exciting projects that others were involved with. We felt it would be an incredibly valuable opportunity for the team to share what they were working on with each other on a regular basis.
And so, Enter the Matrix was born. Enter the Matrix is an informal meeting of the Happy Cog developers where we share and discuss a variety of topics that are relevant and valuable to the team.
To develop our Matrix idea, we gathered inspiration from our design team who was hosting a similar weekly meeting called “Adventure Space.” Santiago and I attended an Adventure Space talk to check out how they structured their meetings and we discussed how the idea might be adapted for the development team.
In the beginning, we wanted to keep things very relaxed and informal in order to encourage attendance, considering the sessions are completely optional. These were free-for-all sessions and there was no need to create prepared presentations. The Matrix sessions were held once a week and we would open up the floor to anyone that wanted to jump in and spark a conversation.We encouraged everyone to think about the following ahead of a Matrix session:
- Something that you learned recently
- A new technology or tool you’ve used for the first time that may be beneficial to the team
- A tricky problem you came across and how you solved it
- A problem that you’re currently having and could use some additional opinions on how to solve
Something we emphasized to the team when thinking about the above items was that even seemingly small topics could be interesting to the rest of the team, especially if others have never seen or worked with the tool/technology/issue before. Many developers have specialized roles so we also wanted to ensure that topics be as pertinent as possible for all members that were attending.
While the aim was to keep things as casual possible, we still welcome prepared presentations for anyone that wanted to hold a more formal session. Formal talks doubled as opportunities to practice presenting, hone speaking skills, and absorb feedback from the team.
Making Time to Connect: Then and Now
We scheduled our very first session on a Thursday evening as a laid-back way to get together without affecting anyone’s work schedule. We gathered the dev team in one of our conference rooms and set up a video conference so all of the remote developers could join in. Santiago and I kicked off the talk by sharing some projects we had been working on recently and select details of the technologies we were using. We included both front-end and back-end topics to make sure all of the developers might find information that applied to them. We then opened up the floor for everyone else to share their recent projects and interesting dev topics.
After our first session, everyone continued to come back each week to participate and share. As sessions went on, many developers showed interest in giving prepared presentations. When planning for the prepared format, we allocated time for questions and feedback from the rest of the team and close the session with our usual free-for-all discussion format.
Throughout the course of the Matrix sessions, we’ve received valuable feedback from the team regarding what was working well and what was less successful. As it turned out, the prepared presentations were especially well-received and many team members were happy with how much they were learning from them. We also found that the dev team started to become a lot more familiar with what others were working on. We were thrilled to have accomplished one of our original goals – to give everyone a better idea of what was going on with various projects. But, we also realized that less was happening during the free-for-all portions of the sessions, so we decided to concentrate on the prepared topics. This resulted in The Matrix sessions evolving into their current form.
Sessions are now held bi-weekly in a conference room at the Happy Cog office. We alternate between afternoon and evening sessions in order to accommodate for varying schedules and remote developers who live in different timezones. In order to encourage attendance early on, we did not record sessions, however, all of our sessions are now recorded and made available to anyone who was unable to attend a session due to a conflicting obligation. Sessions now consist of one or two longer planned presentations. We still try to keep things pretty casual. Some speakers will prepare detailed slides and notes while others will take a more conversational approach and screen share while presenting.
What Makes the Cut?
As the popularity of the sessions increased, lots of volunteers inquired about presenting. Many developers were eager to show off what they were working on. Developers also began nominating one another to present. Often when a developer noticed a fellow dev working on something interesting, or debugging something and finding a solution that other people could benefit from, they let us know so we could reach out about potentially building out a presentation.
One of our most valuable resources for presentation subjects has been Slack, especially our #dev channel. The #dev channel is a place where the development team asks questions or casually brings up interesting topics. We look out for discussions that we think could make for informative Matrix sessions.
Once we select an idea for a presentation, we work with presenters a bit to develop the idea into a full-blown presentation. We’ve also started creating joint or group presentations by inviting additional team members with knowledge on the topic(s) in question to join in presenting. This has allowed us to go even more in-depth with topics since developers have varying levels of experience across a range of aspects of a topic, allowing for even broader coverage of a topic, from multiple perspectives.
Group presentations have enabled more members of the development team to get involved. Even if a developer isn’t super well-versed in a topic, we can pair them with someone who is. It’s been an effective way to get team members with less presentation experience to team up with those who do in order to help build up those speaking skills and get them more comfortable presenting in front of an audience.
We’ve even worked to get other departments involved in presentations as well. Our marketing team was recently interested in giving the development team a better idea of how they work, so a member of their team gave a deep dive into how the marketing team uses analytics data while walking us through a report they created for a client. We opened this talk up to every department, including the design and project management teams, so the entire company would be able to gain a better understanding of the work the marketing team does.
From the very first Enter the Matrix session, we’ve had presentations spanning a variety of thought-provoking topics. One of our earliest presentations was given by our Co-Founder and President of Technology & Development on how he created an integration between Twillio, Cloudflare workers and Slackbot to allow our building’s doorbell to automatically let in food deliveries during the lunch rush, but lock down during all other hours of the day. This led to a lot of talk about other ways these kinds of integrations could be used. We’ve had sessions involving CSS and the use of grids and frameworks such as Tailwind that lead to debates as well.
In some cases, Matrix talks have introduced some great new technologies to the team that many people previously hadn’t had any experience with such as GatsbyJS, GraphQL, and Apollo Server. Presentations have introduced new aspects of tools we use all the time and more efficient ways to work with them, involving frameworks like Laravel and platforms such as Docker.
One of the most valuable presentations thus far centered on accessibility standards and requirements, an extremely important topic that developers may not be conscious of. A member of the PM team with extensive experience in the accessibility space joined in on the presentation to share a completely different perspective on the topic, moving beyond the more technical aspects.
Why Do It?
We’ve found that Matrix presentations have provided countless benefits to our development team and the company as a whole. They have opened up discussions that have lead to solutions. They have been a means for sharing tips and best practices amongst the team. They have helped give team members a voice by improving their presentation skills and helping them build confidence when speaking in front of large groups. We’ve been able to share valuable insights and use cases with one another. We also received encouraging feedback from remote developers that they felt these sessions helped bring them together with the in-office developers and other remotes that they rarely interact with, unless when working on projects together.
We’ve been able to expand the idea of the Matrix sessions to larger company-wide events as well. During the weeks of our annual summer BBQ and winter holiday party, most of our remote employees come to the NYC office to celebrate. Having everyone together in office provides a great opportunity for shared learning sessions about topics that bridge all of the departments. We like to call these sessions during all-hands events the “Super Matrix.” We aim to invite one or two members from every team to present on a topic that provides a look into the work they do so that others gain familiarity with functions across the company.
Bringing Your Teams Together
Facilitating our Matrix sessions has turned out to be a valuable practice and we would absolutely recommend this for all development teams, both large and small. Start small with casual meetings, once a week, or even once a month at first. Get people talking about projects they’re working or tools they’re working with that others may not have much experience with. Early sessions can be open discussions about new technologies or even simple brainstorming sessions to come up with solutions to problems or issues that individuals are having. Overall, this method can be a great way to bring people together whether the team is local, remote, or a mix of both.
Illustration by Abby Lowenstein