Creating a Great Engineering Culture Amidst Incredible Growth

Mariana Carrillo
Beam Benefits
Published in
5 min readMay 2, 2019

Creating a great engineering culture amidst rapid startup growth can be challenging, but it’s worth pursuing. This is one of the reasons I joined Beam as an Engineering Manager: the opportunity to create a great engineering culture from the beginning.

What exactly is a great engineering culture? During my 14 year tenure of working with software teams, I’ve noticed several patterns of great cultures:

  • Teams have full ownership of their end-to-end work: from idea to deploy to support.
  • Engineers are supported in exploring and implementing tools and processes that will improve product development.
  • Engineers have the autonomy to drive their own initiatives and are supported by management in seeing them through.
  • A culture that truly cares about engineers and their career development and finds opportunities to match passion with work.
  • A culture of openness, listening, and friendliness where help is amply given.
  • Management that supports transparency, self-organization and “taking it to the team”.
  • Business priorities are clear and well-articulated to the engineering organization.

To give you an idea of our rapid growth, our product and engineering organization has tripled in size in the last several months. Teams are forming, storming and norming, processes are being created and iterated upon, and all the while we welcome and onboard more talented engineers, product, and UX folks every week.

To say it’s not been a walk in the park is an understatement. There are winning days, tiring days, and times where I’m not sure what to do next. But throughout this journey, coming into the office each day has been meaningful, rewarding, and full of a decade’s worth of learnings in just a few short months. When I look back and see what we’ve created together as a team, I’m proud of what we’ve accomplished.

Here are some of the great things we’ve created so far:

  1. Full ownership: We don’t take a one-size-fits-all approach to our development, so even though we subscribe to Agile and Scrum methodologies, each team gets to participate in a Team Liftoff process to decide how they would like to organize themselves and work together in order to deliver their work. They decide on team values and even the format and ceremonies for their sprints. The goal is for the teams to own their work and organization and be empowered to change it at any time to make themselves even more productive, happier, and effective. Outcomes are the goal, not micromanagement.
  2. Autonomy: Engineer-led Working Groups exist to discuss and drive important engineering initiatives from idea to implementation. Any engineer from any team can join, and topics run the gamut: QA, Ruby, Interviewing/Onboarding, Front-end and more. Once an initiative is ready to be presented, engineers put it in front of leadership for review and prioritization. This ensures that a culture of listening is in place, where ideas are crowdsourced and all engineers have input into what is being created.
  3. Open Source Culture: When important engineering decisions and architectural changes are proposed, input is solicited from engineers via an RFC (request for comments). I love that everyone has a say and that this “take it to the team” approach makes for a more thorough vetting of changes.
  4. Continuous Learning: We believe that when we improve ourselves, we improve our teams and the organization as a whole. I’m proud to say our culture supports this, with everyone on the engineering team receiving a generous yearly learning budget that can be applied towards continuous learning. This can be conferences, self-study courses, certifications, book clubs, coaching, etc. For example, engineers recently attended Stir Trek as a group and some have even joined an internal Agile book club. There are even engineer-led article clubs and weekly lunch and learns with topics ranging from how to do better code reviews to how to pair more effectively!

Did I mention that with great growth comes challenges? If growth is the most exciting thing our engineering organization is facing right now, it’s also the most challenging. When I spoke with our engineers about the most challenging aspects of our organization, these are the areas they called out:

  1. Visibility and coordination amongst 5 engineering teams: When working within one giant application, it becomes really important to know who is working on what and how it impacts other teams. As we’ve grown in size, cross-team communication has become increasingly critical. We’ve seen this play out recently when the same work was found on 3 teams’ backlogs. One idea we’re starting to test out is a weekly coordination meeting where 1–2 engineers, an engineering manager and a product owner from each team get together to discuss work stream overlaps and to coordinate upcoming work.
  2. Supporting an application in two different states: Our application is a giant monolith, but it’s not staying that way forever. We are actively working on carving it up into more logical services. At the same time, we have to support our internal and external customers in the application we have today, the monolith. How much time and effort do we put into fixing issues and tech debt in the current monolith versus putting our efforts toward building the future state? It’s nuanced and something that requires constant conversation. This can be especially confusing for our new folks because it isn’t always clear what to do when.
  3. Growing the code and growing the team at the same time: With the number of contributors to the code growing by the week, how do we surface information to everybody? How best to get up to speed on all the changes happening? How do we expose best practices that are working for one team to the others?

The good news is that we are aware of these things, and we’re working through them as an organization. The tricky part is that we don’t always have all the answers nor is it always a great idea to introduce constant process change. We are working to ensure that we’re being purposeful about the changes that we make.

So here’s to the next chapter of growth and continued learnings for us all!

By the way, if you are curious about joining our engineering team, we are always looking for more people to help us build and maintain our culture! Check out our openings here: https://jobs.lever.co/beam

--

--