#Hi Quentin, can you introduce yourself to our community?
My name is Quentin, CEO of MeiliSearch, originally from Brittany, developer, and entrepreneur for the past ten years. Former Duoquadragintien (42 school).
#So, you are the CEO and co-founder of Meilisearch - can you tell us more about it?
MeiliSearch is the search engine that allows companies and developers to offer an incredible search experience on their products and websites very simply. We have developed an ultra-relevant and ultra-fast search engine focusing on the developer experience.
#How do you compare Meilisearch to Algolia and Elasticsearch? What makes Meilisearch unique?
MeiliSearch is the best of both worlds. We have the performance and relevance of Algolia but with the customization capacity of Elasticsearch. However, a unique developer experience that allows any dev to test and use MeiliSearch quickly.
#I saw that you wrote Meilisearch in Rust (great choice :D). Why did you decide to use Rust?
Before coding MeiliSearch in Rust, we had made a prototype in Golang. This allowed us to create a Proof-of-Concept, but we quickly reached the limits of the performance. To build such a fast search engine, we didn't have much choice. Either C++ or Rust. We were lucky that Clément (Kero), our CTO, contributed to the Rust language and was an early adopter since version one of Rust. So we could make a real choice by knowing both languages very well. We mainly chose Rust for the safety and rigor of the language, which is also the two main defaults of C++ according to us.
#Did you develop your storage engine?
We started by using RocksDB, a well-known C++ Key-Value Store, but we faced some performance issues when looking up/retrieving data.RocksDB is better for writing than reading. The RocksDB Rust wrapper was not perfect and made our usage of RocksDB our main cause of the issues. That's why we switched to LMDB in C, for which Clément coded a complete Rust wrapper. Today, our storage engine has been customized and has several parts rewritten to fulfill our needs.
#What are the biggest challenges you are facing in building Meilisearch?
Today our biggest challenge is to be able to increase our indexing speed drastically. For some use cases, if users don’t follow the best practices, indexations could take an hour when it usually should take a few minutes. We have many ideas and solutions to solve that. The other challenge that we face is keeping our high developer experience level. We want to enable everyone to use MeiliSearch, and that's why the whole company is involved in the developer experience development.
#Why did you build this product? Can you share your vision with us?
We built MeilISearch for two main reasons, firstly because we were fed up with people struggling with the search for most of the services and applications they use every day. But also because, as a developer, we quickly realized that creating a good search experience on a product was extremely difficult. Finding the solution, configuring it, customizing it for your use case, and putting it into production is a complex subject for developers and companies. That's why we decided to create a company whose mission is to make search accessible by quickly becoming the go-to-search solution for all developers.
#How many are you in the team, and how many external contributors do you have?
At the time I wrote those lines, we were 22 at MeiliSearch. Mainly developers, dev advocates, product managers, designers, and some people in the HR team. Today we have 300 contributors who work mainly on different integrations and SDKs we have.
#Are you looking for more external contributors? What kind of contributions are you looking for?
Always! We love having outside contributors. We love to receive contributions, but we also love to help contributors make their first open-source contributions. It's amazing to see the love that is shared in our community. I wouldn't want our product to be a closed source for anything in the world.
#What are your plans for Meilisearch in the next 12 months? (hiring, product development…?)
Our plan for the next 12 months is to continue building an outstanding team like the one we have with more and more senior profiles. From a product point of view, on the open-source side, we want to improve the indexing speed, as I said but also add features that are very much requested by our community on our public roadmap. Last but not least, we want to release our Cloud version in early 2022. We already have a closed source Beta version with a lot of people on the waiting list, so we're looking forward to releasing the project and having even more impact on the users.
#Do you have any advice for other founders trying to build open-source projects?
Give, and you shall receive! Besides the human aspect, which is great, it's amazing to create an open-source product because the people in the community give so much feedback that allows you to create a product that really has an impact.
#What is the thing you are the proudest of?
By far our team. We managed to create a great team with an incredible atmosphere and values. It's really a pleasure to work with this team every day.
#Some fun questions
#What is your favorite programming language? Why?
I've been around a bit in all the languages, some longer than others. My favorite language today is Rust. I had to learn it to develop MeiliSearch. Even if the first few months were complicated (Borrow checker ❤️), it became an absolute pleasure once I got over this barrier. I was a bit of a hacker, and Rust allowed me to become more precise and rigorous in my development. The ecosystem is crazy, and the language quickly adds new features (like async/await).
#Is there any programming language you dislike? Why?
I hate no language, but I think the language I have the least affinity with is probably Ruby. I've always found it fun to learn new languages.
#Are you more PostgreSQL or MongoDB? Why?
It depends on the need. If my use case allows me to use PostgreSQL, I would prefer it. Unfortunately some times, it is necessary to use MongoDB. To be honest, I haven't used MongoDB for a long time. In the beginning, I used MongoDB because it was super simple, but today to answer this need, I would go more towards Supabase.
#Are you more “iterator.iter().for_each(..)” or “for n in iterator { … }”?
It depends on the size of the block in the for_each. Clément (Kero) taught me how to code in rust, paying attention to the readability of the code. So it doesn't matter, but it mustn't affect the readability of the code. It also depends if there are performance problems because the for_each is more powerful.
#What are the top 3 tools you enjoy as a developer?
Well, in addition to the basic VSCode and Github tools, I think Vercel and Cloudflare (especially Workers) are great for their simplicity.
#Do you have any favorite cloud service providers? Why?
I have always used DigitalOcean and Scaleway because it is simple. However, I haven't done DevOps for a long time, so today, I'd probably look at even simpler solutions like Qovery.
#Final questions
#The toughest question of them all: what does Meillisearch mean? Where does it come from?
Meilisearch, well Meili comes from complicated brainstorming as it often is to find the name of a company. Meili is the Nordic god of oblivion. Our mission is to prevent oblivion through search, so it seemed like a good name.
#Who should we invite for our following Tech Story interview?
If you want French, I would say contact Valérian Saliou, CTO of Crisp and a great open-source contributor, and if you are looking for international, I would advise you to speak with Glauber Costa former VP of Engineering at ScyllaDB and maintainer of many open source project including Glommio.
Check out MeiliSearch now and enjoy their outstanding search experience