How Meilisearch built upon the computer science school 42's collaborative approach
You must have heard the saying “There is no I in team”. At Meilisearch, we think the best way to build a solid product is to collaborate with each other and our community. We learned to work together at 42, and continue to build upon this foundation.
Did you know that the first iteration of Meilisearch was created during a hackathon organized by a school called 42? We like to think Meilisearch would have found a way to exist no matter what—we just love our fast search and our company culture too much—but 42 was the perfect framework for Meilisearch to bloom.
42 is a French computer science school where mutual help is the cornerstone of everything. What makes 42 special is that collaboration is at the heart of it all: there are no teachers so students need to team up to make their projects work! At Meilisearch, we do not believe good profiles exclusively come from traditional engineering schools. This is something at the core of 42: not only is it fiercely collaborative, the school is also tuition-free and open to anyone from the age of 18, which ensures a healthy mix of different backgrounds. Incidentally, we do not believe good profiles have to come from 42 either. As I didn't go to 42 myself, this blog post has largely been written with Charlotte's help. She lived the 42 adventure and provided me with her insights for this blog post.
42 was our founders' first experience of collaborative work and it has been a huge inspiration on our company culture. In this blog post, I will share what we really wanted to keep from 42, and how we adapted it to Meilisearch.
Learning how to learn
If 42 doesn't have any teachers, you may wonder just how skills are taught. Sadly, students do not drink a magic potion that unlocks all the questions about life, the universe, and everything.
Rather, students are confronted with projects they're expected to complete. By asking other students who were there before them, searching for resources by themselves, and trial and error, they ultimately discover new techniques that allow them to make progress.
This very hands-on approach allows one to develop the ultimate skill: learning how to learn. Students continuously develop their own special toolbox to tackle new challenges and projects. After a while, they know how to acquire the competences they need.
Meilisearch took its first steps (aww 🥺) with this principle very close to our heart. We learned many things in the field—and we still do! In the Integrations team for example, Amélie, Bruno and Charlotte (the ABCs of tool integration) deal with 35 repositories written in 15 languages. Though a solid understanding of different languages and programming paradigms is essential, the most important skill for their job is assimilating new contexts and adapting quickly to different ones.
When we hire new people, we look for curious learners who have the ability to become experts in their fields. Then, to allow each person to thrive and pursue their own interests, we developed a Career Framework that guides and supports curiosity and growth. For example, as they gain experience, some people might want to become managers; others might want to deepen their expertise and further specialize in their original role. Whatever each one of us chooses, the Career Framework is there to help keep us curious and constantly learning new things!
Don't let me be misunderstood
In 1831, the mathematician Evariste Galois wrote about science education in a magazine (link leads to a PDF document in French): "When will [students] be given time to ponder this mass of knowledge... why do examiners only ask candidates questions in a convoluted way? It seems that they are afraid of being understood by those they are questioning... Do we think that science is too easy?"
Obfuscation of knowledge to flatter egos is still very common 191 years later. We believe egotistical and self-important personalities are a recurring problem in companies that expect employees to compete with each other. Though the underlying goal might be to keep “the best” people and discard everyone else, this sort of elitism is pure gatekeeping—something we're convinced is always a disservice to product quality.
At Meilisearch, our goal is to be understood by as many people as possible. Our experience at 42 showed us people from all sorts of backgrounds could work in IT as long as they were given free access to the knowledge necessary to learn the trade.
This is why documentation has been a cornerstone of Meilisearch from the start. We want to make all developers feel they can understand and use Meilisearch, regardless of whether they're just starting out or have many years of experience.
Learning > Ego
However, pride is a very natural human emotion and it can be quite hard to let go of it. (I deliberately avoided writing "let it go" so you wouldn't have a particular song in mind, but I'm afraid the effect is now busted. Sorry about this.) For instance, it can be hard to embrace constructive feedback, especially if it touches upon something we feel is very important.
Loving to learn new things has been very efficient in our experience. If you replace your own ego and pride with something more powerful, such as the incredible joy of learning something new, it starts to be easier to embrace feedback!
Learning new things from different sources makes our jobs way more enjoyable. We are constantly tickled by new concepts. Sometimes our coworkers feed us new thoughts, sometimes we stumble upon them serendipitously, and sometimes we just simply seek them out when trying to solve a difficult problem… Whatever the source and the final result, we love the journey.
Collectively responsible
If you are feeling alone in your quest to shed your own ego, don't worry! It can very well be one of the most difficult things to achieve. We all want to feel we have good ideas and that our work is appreciated!
This is another aspect where 42's approach is helpful. The philosophy behind 42 is that peers are collectively responsible for the outcome of a project. This means that we're all in it together and acknowledges that all victories (and all losses) are a collective effort. Your colleague might have written a crucial bit of code, but they wouldn't have been able to without your support.
And what does that support look like? Glad you asked. A person may be the owner of the project they're working on, but their peers are the judges of whether it's all good and ready to launch. This means people have to be very rigorous in their reviews. The quality of your project is their responsibility too! We care about code quality, and in exchange we give all the attention in the world to your individual mission. Even individual projects at Meilisearch are collective because something that's useful to one of us is useful to all of us—we are a team and if something allows you to work better, we all work better.
Our new hires adapt very quickly to this way of working. It's more comfortable and pleasant to be in a constructive dialogue with your colleagues than to compete with them all the time.
Constant feedback
At 42, feedback goes hand-in-hand with a constant change of status: a person reviewing a project one day will be reviewed the next day. As the reviewers and the reviewees are always switching places, students naturally grow to both make thoughtful and constructive comments and take feedback seriously, whatever the source. Our biases may falsely lead us to disregard criticism when they come from people we deem less experienced than we are. A collective accountability can lead to accepting a remark based on its own merits rather than the individual delivering it. Of course, this is not to say all criticism is relevant or that specialized experts are wrong and beginners are always right, only that we shouldn't be too quick to dismiss important feedback on a huff.
As a company, this way of thinking is very important to us. We want everyone working at Meilisearch to be able to voice their opinions and be heard. We cultivate patience and kindness in the feedback we give: it's a win-win situation because everyone will eventually give and take feedback at different times—yes, even the founders and the managers!
This develops an inner sense of ownership. People feel collectively involved in the quality of the work we make. This is something we want to keep at Meilisearch's core because it has a huge impact on how we approach our own projects and the sense of joy and satisfaction we get from collaborating.
At 42, strong individual performers who can't work within a team will not pass the pool (4 weeks of intensive coding to select people who will join the school) if they haven't mixed well with others. This resonated with us: Meilisearch is a team and we think we are collectively stronger as such. Though it's very human to want to be a hero and save the world, it's not actually sustainable, efficient, or the way to produce the best possible code.
We are continuously building upon our experience with the 42 philosophy. We are now functioning within a more structured environment that gives us the necessary freedom to collaborate with a bigger team, in different time zones.
As an open-source company, our contributors and community are at the core of what we do. It makes sense to follow the same principle internally: being able to rely on our colleagues, and them on us in turn, means we can continue to learn and experiment in a safe environment, while being sure our work has been thoroughly tested and commented on. We can then truly say that Meilisearch is greater than the sum of its parts—and be very, very proud of it!
P.-S. Are you wondering if this article is the fruit of collaborative work? But of course! Many thanks to Charlotte Quentin Ferdinandnd Morganeor reviewing this post, and especially to Guiho penned many of the sentences you just read.