When you’re growing fast, it can be easy to focus on nothing but the next line of code. But as our team has doubled over the past year, here’s why we sweated writing engineering values as well as writing code.
In the early stages of a company, culture evolves organically. It reflects the traits and personal values of the founders and early team. As new employees integrate into a growing team, they too help build and refine that culture.
But a growing team can also lead to important aspects of your culture becoming diluted. When you walk down the hall and don’t know if someone’s on your team or just in for an interview, you know it’s time to codify and lock in your values.
A shared set of values that all your team buys into will help maintain the elements of culture you hold dearest. It’s too easy for values to become a box to be ticked, or a set of dusty posters on the walls.
At Intercom, our values guide us as individuals and teams, and allow us to act with autonomy, whether that be around the features we choose to build, or how we go about building them.
Below are a small selection of the values we use at Intercom. They’re not an exhaustive set of tips and tactics that will help you build your own culture. But they are a set of values that explains how we think about engineering at Intercom, and the principles we applied as our team has grown in the past year.
Do less, better
At Intercom, we focus on shipping small pieces of valuable code, learning from them, and building momentum as we go. We don’t believe you should build a complex wedding cake, when a cupcake could have delivered real value in half the time.
We avoid an overly complex product and code base by building and releasing in a process similar to Test Driven Development. We start with well defined success metrics (our test case), we build the feature (our code), and get feedback (code review) that helps us improve. The simplest version possible is deployed behind a feature flag, so only Intercom staff can see it.
Based on this feedback, we’ll fix bugs and make improvements before launching it to a series of beta customers. Following another round of iterations, fixes and improvements, we launch the feature to everyone.
Ensuring that what you build is small, but perfectly formed, means that feedback is the right kind of feedback. It’s feedback based on things you didn’t foresee, not the things you ignored. Nobody gets value from user feedback on something you knew was already broken, but was released anyway.
We all feel a sense of ownership of what we build at Intercom. If we happen across something that’s broken, we feel a compulsion to help fix it. If something can be better, we feel a compulsion to help improve it.
This sense of ownership is taught from day one. As an engineer you’re expected to ship to production on your first day, and ship a feature in your first week. This gets new hires settled right away, and gives you your first opportunity to demonstrate ownership. The scope of the feature is relatively small. But it does give you the autonomy to design and build in larger areas of the product.
This ownership is carried throughout the entire team. The direction of the product is guided by all members of the team, with engineers, product managers, and designers having an input on what the future of the product looks like. If the roadmap is missing something you deem necessary to the success of the product, you’re encouraged to fight for what you believe is important to work on.
We could have had a process where product roadmaps are passed down from the leadership, leaving us to the execution. But that’s a process we deliberately avoid. Everybody is allowed a voice as to the future direction our products could take.
Hire for potential and help each other grow
We don’t restrict ourselves by only hiring people with experience in the technologies that we use. As much as we appreciate someone who has taken the time to master a particular language or technology, it’s not the most important thing we look for while interviewing. If the only tool you have is a hammer, it’s tempting to treat everything as if it were a nail.
Languages and technology can be learned. We’ve moved some of the core sections of our product to frameworks unknown to most of our engineering team. That’s why it’s the hustle and determination shown when solving the problem that we look for most in new hires.
We ensure that potential is encouraged at all stages of engineers’ careers. Every week, we hold engineering design sessions, a drop-in for engineers to present proposals for upcoming work. These sessions are a great way to leverage the experience of the whole engineering team, not just those working in your immediate vicinity. Even if these sessions don’t validate your approach, you’ll usually have simplified it in ways you wouldn’t have thought of before.
Crave feedback and improvement
Without regular feedback from your peers, it’s possible to reach the end of the project and discover you’ve built for the wrong outcome. It might be something that makes sense to you, but which fails to solve the day-to-day problems faced by our customers.
At Intercom feedback comes on a daily basis – from code reviews to performance reviews. As we don’t hire based on someone’s experience with our particular technology stack, code reviews are a great way for new hires to learn the technologies we use from people that have the battle scars.
We review performance quarterly allowing for a tight feedback loop – on areas to improve but also on areas you’re kicking ass. This ability to express your respect for a colleagues awesome work isn’t restricted to this quarterly review. We’ve set up a direct and immediate feedback loop that allows us to leave really lightweight feedback at any time using an internal tool. Good work doesn’t go unnoticed.
Represent Intercom with pride
We are extremely proud of what we have built at Intercom. But we’re even prouder of engineers who build great products, and then share that knowledge with the world. Intercom couldn’t exist without a myriad of other engineers who’ve solved a problem and built tools that we use every single day.
That’s why all engineers at Intercom are encouraged to share their knowledge with others, and do that in ways that enrich the community. If we’ve solved a problem that others have struggled with, we’re encouraged to share our solutions. That’s why we’ve invested hundreds of hours into speaking, writing, open source contributions, and community-focused events.
We regularly host meet-ups in our offices, from PyLadies, Coding Grace, and Dublin JS, to conferences like FunctionalKats. These are great opportunities for building our own culture and fostering innovation in the wider community.
These are just a few of the engineering values we hold at Intercom. They’re not immutable – they’re an ongoing, organic set of values that we’re constantly refining. If you like the sound of any of them, we’re hiring. Come work with us and contribute to them.