Q&A with Nick Caldwell, Vice President of Engineering at Reddit
#Topic: Scaling Engineering Teams
About the Company: Reddit, Inc. is a website that connects communities and individuals with ideas, latest digital trends, and breaking news.
– Reddit has one of the highest engagement scores in the internet standing next to Google, YouTube and Facebook.
– The company provides its services through mobile applications for iPhones and Android devices.
-Reddit grew its engineering team from 40 to 130 people to realize its new product vision which is to make Reddit more welcoming to its users.
- Importance of growing your engineering team — Based on a Startup Genome report, within 3 years 92% of startups fail and 43% of which failed is due to issues with scaling.
Triple the Team Size without Losing Control
1. Finding Managers
· Converting technical leaders into roles with clearer functions which are managers and architects
· Nick Caldwell developed a Voight Kampff test used in face-to-face interviews. The test is made up of questions that help identify whether the interviewee is most suited for a manager’s role or an architect’s role.
2. Roles and Responsibilities
● Teasing apart differences between roles to get clear and focus roles.
● Focused roles are fundamental for scaling.
3. Execution at Scale
● Things that get harder with scale;
o Awareness — People not reporting their progress
o Coordination — More processes to coordinate
o Bottlenecks — Missed dependencies
● 6-Step execution workflow that works at every scale;
● Discipline and inspiration is used to get teams fired up and understand the importance of their work.
● Make the teams understand the vision and why it matters to the customers from the bottom up.
● Let the line engineers set all the time and dates then bring in everyone else to negotiate a set date and time which meets the company’s standards.
Key Question 1:
How do you organize your teams?
Both shared teams and product teams are important. Shared teams should be the core of your company that’s centralized to help other product teams be even more successful.
It’s important to build your product teams based on your shared teams. Other parts of the company should be able to contribute towards improving the shared teams as well.
Key Question 2:
Should we prioritize specific skills or multi-disciplinary skills in teams?
This depends on the maturity level of the team. During the scaling process, different teams will be in different states.
In general, it’s better for new teams to have as much flexibility as possible by being multi-disciplinary because it’s hard to predict the direction of where a product is going. For more mature teams, specialization is preferred to keep work consistent and efficient.
Key Question 3:
Would larger or smaller teams be more effective?
My personal preference is keeping it between 5 to 7 people per team. The effectiveness of any team, no matter the size, depends on the strength of the manager.
Teams should be oriented around specific goals and reorganized frequently to find the best combination of people that delivers the best results.
Key Question 4:
How much time should we be spending in each step of workflow execution?
The important thing about time and execution is getting teams to commit to specific dates. Dates should be stated by the people doing the work and negotiated by the upper management. This keeps the quality of products consistent, all the while getting it done in a predictable time frame.
Key Question 5:
Do you prefer working with a Scrum methodology or Kanban methodology?
I generally prefer the Kanban methodology but I don’t choose to commit to a specific methodology. It’s important for managers to use what works for them to deliver the best results they could.
I prefer Kanban because the process is generated from the ground up. Kanban starts with minimal processes and you only build what’s needed while Scrum involves more processes at the start.
Key Question 6:
How frequent should we reorganize every year?
Reorganize at least once every quarter of the year. Reorganize according to your goals towards getting the maximum effectiveness out of every team.
Teams are usually afraid of being reorganized and the best way to deal with this is to give a clear explanation on why reorganizations are happening and being transparent towards the team.
Key Question 7:
Why do you get rid of technical leaders?
Technical leaders usually have roles of being partially a manager and partially an architect at the same time. Giving a person a focused role is more effective in an organization. This helps streamline responsibilities and communications within the company.
Key Question 8:
For a company of less than 20 people, is it better for teams to share responsibilities across products or should we hire more talents to build specific teams for each product?
In doing the math, the amount of people should reflect the amount of work that needs to be done. Shared responsibilities across your product lineup are reasonable for your current scale.
When eventually more people are hired, your company can push for a more specialized set of people to build teams responsible for a single product towards increasing overall team effectiveness.
Key Question 9:
How do you manage recruitment at Reddit and do you have experience with recruitment companies?
Our core culture is the most important aspect when it comes to recruitment. We structure our interviews to test a person’s technical capabilities as well as the compatibility of their personality with our culture.
Other than that, we often use transparency and clarity when bringing “Triple’ A” talents in. These expert talents often come from larger companies such as Google or Facebook and the best way for them to have confidence in us as a company is to be radically honest and clear on what we have and what we expect from them.
As a well-known company, we have no problem hiring regular sets of talents by ourselves. But we resort to the use of recruitment firms when we are in search for niche talents.
Key Question 10:
What profile should a small company have for scaling?
A company cannot scale without a good management structure. Hire essential people to build the core of the company first and work onwards from there towards selecting a profile which works best with what the company is doing.
How often should a manager get individual teams together for a face-to-face assessment on what they’re doing without having an excessive effect on productivity and what day should it be done?
At Reddit, every layer of the organization has to have a meeting once a week to discuss this. Meetings between layers and their appropriate audiences are best held on a Monday so that new problems or things that are off track can be discovered earlier in the week.
Does Reddit favor vertical or horizontal teams more?
Our vertical and horizontal teams are equally important. Reddit’s organizational chart has horizontal shared teams with specialized knowledge or technologies need to be reused across multiple vertical product teams. The vertical product teams are organized around specific products.
How does Reddit share and maintain its core culture?
Our core culture is shared around the company by being passed around in the working environment. We also try to hire only people who are fit for the culture as well.