Having led engineering teams for the bulk of my career, there are certain ideas that seem to repeat themselves, and ones that I believe are essential to maintaining a well-functioning organization. When I joined Wonolo as the VP of Engineering, I thought it would be important for my team to understand my thoughts around some of these concepts, and I wrote a version of this living document as a way for them to see where I was coming from.
- Empathy. At the core of every organization are the relationships and bonds between the people on the team. It's important to give direct feedback, but it has to be delivered with empathy and genuine belief in good faith.
- Respect. Treating others with respect sets the foundation for successful interactions. Respect comes in all forms, from allowing others to voice their opinions even if you disagree, to preparing for and giving your attention in meetings, to understanding how decisions you make will affect cross-team milestones or deadlines.
- Conflict. There will always be conflict within any team, but the process by which conflict is resolved carries far more weight than the conflict itself. Disagreeing with someone shouldn’t be construed as being difficult, as long as it’s done honestly and with good intent towards prioritizing what’s best for the customer and company.
- Career advancement. Every engineer on the team has a path to be successful, whether they’re an individual contributor or a manager. The skills necessary to be a good manager are not the same as the skills needed to be a good software engineer. Becoming a manager is often a lateral move, not a promotion.
- Technical ability. At the end of the day, we are a tech company and it’s our team’s responsibility to drive engineering excellence. And while we value technical expertise in managers, they won’t necessarily be the strongest technical person on a team.
- Prioritization. It’s important for an engineering team to see the trees through the forest. Our goal is to understand where we’re going and build a path to get there. Managers should be removing obstacles from their team, and should be prioritizing overall team productivity. We should make choices to improve engineering efficiency throughout the organization.
- Communication. Keeping lines of communication open allows us to do our jobs better and more efficiently. Not only is communication between engineering teams important, but so is cross-team communication. Whether it be Product and Design, RS&O, or Customer Support, our engineers need to build strong relationships so we can build the best product for our customers.
- Quality. QA is not the first line of defense against bugs. Engineers are ultimately responsible for their code and the bugs they ship. You can have a bug once, you shouldn't have it twice. Writing a test is often the best way to do that.
- Hiring. One of the highest leverage actions an engineer can do is hiring. Growing our team by adding new engineers can elevate both the level of technical expertise and the culture within the organization. We hire for culture add, not just culture fit.
- Metrics. We are a metrics driven organization, it allows us to concretely say whether the features we are shipping are moving the needle and getting us the results we want. We don’t ship features for the sake of shipping features.
Thanks for reading, and hope you enjoyed this post! I’m sure these ideas will change as the organization continues to evolve, but hopefully this gives you some insight into how the Wonolo engineering team functions.
- Waynn, VP of Engineering