Datalogue has been scaling.
Roughly a year ago, when I joined, we were 4 people. We are now 16 strong.
This is only the beginning. As our sales team is converting leads into extremely large customers, we need our engineering team to keep up and scale. Fast.
With rapid growth comes the risk of things going haywire. There are several types of problems high growth companies are infamous for: discrimination, harassment, people not being willing to speak up …
We decided that Datalogue wouldn’t be immortalized as a high growth company that fucked up. I decided to do everything I can to prevent that from happening on the engineering side.
As a first step we’ll set the cultural foundation now, to ensure that moving forward everyone would be accountable for preventing a downward spiral. We’re laying this foundation down across all our offices and remote locations.
We’ll commit to building exceptional software while holding ourselves to the values that we, the engineers, decide to live by.
This is my first time doing such an exercise with the team. Luckily we didn’t start from scratch.
As a company, we already have the values that we live by. We are human. We are undaunted. We are foundational.
We embody these values in our everyday work but I felt it was necessary to sit, pull my team together, and complete the company values with values specific to the engineering organzation. This isn’t to say that the rest of the organization doesn’t also abide by these but the engineering side has decided that these values would help us build better software while creating an awesome environment.
With the three company values as the starting foundation, the engineering team came together and we went through the following steps:
For those who’d like to recreate this process: here are a couple tips.
Overall the process ran smoothly and we got great engagement. An open question I have is how to better engage the folks who attend these types of meetings remotely. We have some incredible engineers that come from all over the world.
If people have tips and tricks on how to optimize these sessions for remote attendees, I’m all ears :)
Here are the results of us running that process at Datalogue.
35 concepts were initially voiced.
We clustered them into 8 groups.
Out those eight groups, we chose 3.
The chosen ones are: Sharing, Trust and Quality. Let’s unpack each.
We work in an industry where knowledge is our bread and butter.
Our main skill as software engineers is to solve complex problems with an evergrowing set of technologies and abstractions.
We use a complex and difficult to learn stack to ensure that we meet the performance and scalability demands of our customers.
In a world where great software engineering talent is rare, we, as an organization, need to be able to train people and onboard the fantastic people we find onto our complex and evolving stack.
The hires we make are willing to learn. We need to be relentless about teaching.
When teaching, we are patient, we repeat when necessary, we demonstrate, we guide.
We are generous with the information we share, we do not withhold information. We enable people to grow their knowledge and skills according to their aspirations.
We trust our teammates to be open-minded.
We are confident that we can talk equally about the hard and the simple problems we face without fear of reprisal.
We are not afraid of speaking our minds.
We can rely on each other.
We own our mistakes and correct them.
We trust that we are all accountable and responsible.
As engineers, we would love to build the perfect tool but in context of limited time and resources we know that perfection is only something we can aspire to but never achieve. So rather than trying to build perfect software we build quality software.
To us, quality is building products that exceed customer expectations now and in the future. We strive to build bug free, maintainable software that scales.
We build abstractions not for ourselves but for the people who might consume our code next.
We anticipate the customer’s use case and build to delight them with ease of use, performance, stability and scalability.
We understand that the complexity of the software we write means we need to continuously communicate and collaborate. We understand that when as a contributor to a large codebase, my code affects other systems and people’s work.
We build great quality software and we obsess over shipping things we are proud of.
Defining the values was likely the easy part. Now, we need to not only live by them but ensure that we hold ourselves accountable.
We’ll need to find ways of testing whether people want to live by these values in the recruiting process.
When times get hard and long hours are put in, we’ll need to make sure that people are not sacrificing the core values.
As we scale and the company grows, we’ll monitor the state of culture and see if these values need revision.
If all goes well, we’ll keep growing as we have and show the world that high growth tech companies can be great places to work at if you commit to building a great company early on.
If you’ve got comments, concerns or advice hit us up at email@example.com. We love engaging about these topics. If you’d like to join our team drop us a note with your resume at firstname.lastname@example.org!