- Arthur Coudouy
Tell us a bit about you
I'm Clémentine, I started as an actuary (I applied maths to insurance), which I quickly understood was not something for me. After less than a year, I entered 42, a software development school in Paris where I spent three years. My last internship was in MeiliSearch as a junior engineer, I had met Thomas, Quentin, and Clément (our co-founders) at Veepee where we previously worked together.
Quickly after the beginning of my experience and the launch of our open-source solution, we started recruiting other engineers in our core team (which develops the search engine) and integration team. After one year, I became manager of the integration team as I enjoyed organizing and building this system with the founding team.
I'm now manager of the core team too where I only have an organizational role, as I'm not an expert in Rust. My main role is to help engineers stay in motion, I guess that's the role of every engineering manager!
What is MeiliSearch? Who is it built for?
MeiliSearch is an open-source search API. It is built for developers building front-end search or customer-facing search on any application or website. MeiliSearch aims to be much easier to deploy, configure and maintain than Elasticsearch. We have a strong focus on developer experience!
Our team is still small and everyone is very committed to what we do. It’s a very exciting environment for us to work in.
What does a normal day look like?
First thing first, I take a look at my Slack & Github notifications, that's mostly where I spend my day. My job is to be reactive as I solve bottlenecks for the rest of the engineering team.
Often, people ping me to help them for various reasons: a junior with a technical question, an unclear process / past decision, meetings with different teams, team coordinations around the core team. Also, I have background tasks I do during my remaining time, like creating or fixing a process, preparing the roadmap, making the GitHub repositories safer...
How is your tech team structured? Is your team working remotely?
Meili is a company of almost 15 tech people divided in 4 teams. The core team is working on the search engine itself, the team integration builds every tool, SDK or library that could ease the use of the search engine, the developer relations team takes care of the documentation & animating our community and finally, the SaaS team is working on the cloud offering.
We’ve grown from 5 people in the same room before the first lockdown to almost 20 people working fully remotely. We still have an office in Paris, but it feels more like a coworking space because all day-to-day organization needs to be remote first.
How is the software development process organized at MeiliSearch?
This is still very early for us, our product manager arrived in April and we went through an important refactoring of our processes.
- Our PM knows our upcoming features, prioritizes them, and defines the specs. Everything is public.
- I allocate the engineering resources to develop these tickets and handle any issues.
- We have four-week sprints and a release at the end of each sprint.
How do you organize code reviews?
Everyone reviews everyone, it's not only me or senior developers. We request a person in Github, not a team at the moment.
Who's in charge of hiring? How is it like?
We're actively recruiting! Our HR is in charge of hiring new talents. It's often a three-step process:
- First interview with our HR,
- Second with the future potential manager or Thomas (COO) and someone from the future team,
- Third with someone outside of the direct team.
What are the main differences working in an open-source company as an engineering manager?
They're huge. I was not expecting that much to be honest! Everything needs to be super precise, you can't do any fix without justification and documentation. It's pleasant to have the necessity to do everything as transparent, rigorous, and relevant as possible for our community. Even if something is not perfect, people are open-minded and understand why we needed to do it this way.
Quality is more important than quality, and that's a great atmosphere to work in.
How do you handle external contributions?
In our core team, we have few contributions. But on the integration side, we've received way more than I was expecting very early (starting two months after our release). Our community is really involved because external contributors started one-third of our current integrations and some of them are still maintaining them.
You need to be reactive, friendly and a good pedagogue sometimes. We've set up specific tools to help them contribute - not everyone has experience rebasing a pull request on a forked repository. If you have an open-source Rust project, I highly recommend Bors!