Open Food Facts, from the technical side – Alex Garel

Interview with Alex Garel from Open Food Facts

Walid : Welcome to this second episode of Projet Libre dedicated to Open Food Facts. If you haven’t listened to the first episode with Manon Corneille on which we go over the whole creation, the genesis of the project, the relationships of Open Food Facts with the various stakeholders, etc. I strongly invite you to go listen to it before listening to this second episode.

This second episode is a technical episode in which we’re going to be able to talk more about everything that makes Open Food Facts run and to do that I’m with Alex Garel who is a developer and animator of the Open Food Facts tech community, so welcome to the Alex podcast.

Alex : Thank you, I’m fine.

Presentation by Alex Garel

Walid : Great, well listen, we’re going to be able to start the first thing I’m going to ask you is to introduce yourself so that our listeners can know a little more about you.

Alex : yes, when you said tech community facilitator I’m not the only facilitator, it’s just to clarify. I’m one of the animators, since we’re all part of the permanent animator team. That’s it, and I, so I’m a developer, I’m a computer engineer, I’m a pythonist rather. Let’s say it’s my preference, but here it is, I do a lot of other languages, I do Perl, I do JavaScript and then I also do a bit of system administration. There you go.

Walid : At what point did you cross paths with free software?

Alex : A very long time ago, it was during my studies actually, I remember well because we were doing on Unix and actually at one point some classmates showed me Linux. Right away, I was drawn to the philosophy behind it. This story of sharing and all of this attracts me a lot. And so there you have it, I quickly went deeper and used.

Walid : Okay, what year was it?

Alex : 96, 97.

Walid : You’ve been in free software for a while.

Alex : yes, at first it was a bit shy, I used Linux from time to time, GIMP, stuff like that, but then little by little I really went into full open source little by little.

Walid : And when did you join the Open Food Facts project?

Alex : About two and a half years ago.

Walid : How did it go? Did you know before?

Alex : I knew by name, actually. It’s really Open Food Facts had posted a job offer, I at that time was wanting to change jobs and I knew the project by name but I had gone for a walk or the other but I wasn’t really committed to the project. But when I saw the job offer, I said “oh bingo, that’s really something I’d like to do”, so there you have it, it was fully in line with what I was actually expecting as a type of job.

The team and external reinforcements

Walid : Okay, we’ll be able to move on to the team part, what I’d be interested in is to know a little bit technically how many people you are at Open Food Facts?

Alex : So today at Open Food Facts we are 10 people, as I think Manon has already said on a permanent basis, and then the whole community of volunteers around us, and we have about 4 and a half people, let’s say who are really technical, purely technical. It’s a bit hard sometimes to make a difference, that’s in the permanent team and then a lot of volunteers I would say from time to time I think there are as many volunteers as the permanent team if you look at the day-to-day development and there is someone who is the Product Owner Pierre (Slamich) so who does more like that’s all I don’t know how to say it in French Product Owner but there is surely…

Walid : the product manager what

Alex : yes. It’s pretty technical too.

Walid : So Pierre Slamich, one of the two founders. So there are people who are in-house and who are full-time, there are people who are volunteers and internally what skills do you have? Do you have all the skills to run the entire infrastructure on a day-to-day basis?

Alex : today we have all the skills, after maybe sometimes on skills, for example everything related to system administration, on development really we master everything that is server, so mobile is Edouard more than he is on it, in Flutter And then, after all the tools we usually have, we tried to keep on languages that we master at least a little. It’s true that there are things done by volunteers that we don’t know as much about and who are now in the infra, then Raphaël (Bournhonesque) who is more into Machine Learning and machine learning, so today as we are we still have a fairly wide spectrum. Well, even if there are angles, maybe we’ll be a little less comfortable.

Walid : And apart from having in-house people and volunteers, do you ever call on freelancers or other types of people who could come and help you with one-off needs, for example?

Alex : So, we’ve had to use an external designer, for example. But often, we have funding that asks us that, for example, European projects, it requires internal people to do things. So it’s a difficulty sometimes for us. Sometimes we would have liked to have had some of the workload absorbed by external people, but it was difficult.

And then we also had skills-based sponsorship. For example, we had 10 engineers from Google when we won the Google Impact Challenge for 6 months. So that was huge. But we’ve also had help from Share it, for example, an association that helps. There you have it, we have had several skills sponsorships and then we have the DINUM which normally promised us a machine learning profile for six months which will be an external person that we have selected.

Walid : Okay, so DINUM is the interministerial directorate for digital technology, right?

Alex : That’s right, they’re helping us with this budget by providing us with a developer, well, more of a machine learning guy.

Walid : Typically on issues like this, do you sometimes have researchers and typically have funding like CIFRE or that kind of thing, which is research funding?

Alex : We don’t have that right now. We do projects in conjunction with researchers, but they are paid each time by their university, etc.

In projects that are generally larger, where we have a small part that uses Open Food Facts, but we have a small share. But so far, we haven’t really had that kind of… A CIFRE thesis is still a big commitment for an association like us, which is small, you have to commit yourself over three years. I don’t know if we’ll think about it at some point and I don’t even know if a CIFRE thesis can be done with an association, we are an association so I’m not sure it works.

Walid : Oh yes, that’s right, I don’t know. The question I’m asking myself is, is it easy to integrate ten Google engineers who come to work like this, they come to work on a particular subject? What are they coming to work on? How does it work?

Alex : It’s not easy. In addition, at the time there was three of the team, and then I was the fourth. When there were Google engineers, so yes it was a tornado. It wasn’t just technical engineers, when I said engineer actually, they called it that. But there were people in communications, there were people who helped us with public relations. Anyway, there was really a whole panel, but we got a big boost, especially for example someone who did a lot of work. Sysops (Editor’s note: a system administrator), who really squared all the stuff around Docker, who set up things, a Prometheus and all that.

So that was a big boost, and then we had on the mobile app as well, we had a full-time UX designer, we had several developers, and that actually helped us a lot to release the new version of the mobile app in particular, that was really the thing that helped us a lot.

Technical infrastructure

Walid : You’ve started to talk a little bit about infra-technical, but how is it currently going? What makes Open Food Facts tick in technical terms?

Alex : First of all, we’re on Bare Metal servers, let’s say, on which we usually put Proxmox . Now, we’ve just put a little bit of everything under Proxmox, there were some that weren’t on Proxmox yet. So we currently have 5 servers, 2 that are hosted by the Free Foundation, so these are servers that belong to us but are hosted for free by them, and 3 servers that OVH sponsors us, and maybe a fourth soon, we hope.

So that’s really the core of our infrastructure, and then we have an infrastructure which is Proxmox to structure all of this, so Proxmox allows us to create virtual machines and containers. And then we use ZFS a lot because it’s really, really convenient. We have a lot of data, especially in terms of images. It’s really handy for multi-machine synchronization. This way you can synchronize between Free and OVH at a really good cost.

I found a little piece of software called Sanoid that helps to do this in a very square way. Since it’s Proxmox it’s very Debian-based. But then there’s a bit of a mix, in the sense that we have a lot of…

We have installations in classic containers, and then we also have a lot of projects, new projects, often we deploy them with Docker Compose, simple Docker Compose, often it’s projects that are a bit atomic, let’s say, that’s it. So it’s a lot of things like that.

Walid : And in terms of development language, what do you use, what do you have at the moment?

Alex : So the core of the project is in Perl, that’s when Stéphane (Gigandet) started he did Perl so it’s really all the server side is in Perl.

Then we have the mobile application which is in Flutter, Dart, so that’s when there was the new app we made this choice because it allowed us to be multi-platform.

Walid : the Google environment to create in Flutter, Dart is Google behind it?

Alex : yes, it’s Google that makes the languages. Is this Google’s language for mobile apps? Yes, that’s it. But other than that’s Google’s language, there’s no grip more than that.

And then we have a lot of tools that have been developed in JavaScript or Python. We try not to multiply too many languages and frameworks so that it remains a little manageable. If it’s very peripheral projects, it’s less annoying, but if it’s at the heart of the infrastructure, it’s a bit awkward that we have too much language.

Walid : one of the big parts is the database and so I was wondering what you use as a database engine or as engines (plural), it depends on what you have what you use a little bit?

Alex : First of all, you should know that surprisingly enough, the heart of our data, the single source of trust, is files stored on disk. Every product you see in Open Food Facts is a file stored on disk, a serialization of a Perl object. For now it’s like that, maybe we’ll evolve at some point, but there are a lot of people who would like to evolve that, but we haven’t yet… That’s it, it’s a big step to evolve this and we’re not sure if it’s worth it for now.

And after the second one, let’s say the second player that is historical, it’s MongoDB , so we use MongoDB quite a bit for queries, etc. So SQL database. That’s it, very close to JSON in its structure and then we have PostgreSQL for a lot of projects, actually on the side, like machine learning with Robotof uses PostgreSQL a lot, projects like Folksonomy Engine. We now use PostgreSQL quite a bit whenever we can. And then we have Redis, more for its synchronization primitives, streams, everything we can do, locks, etc. With Redis which is still practical.

And we have a MemCache too.

Walid : You said earlier that on the core of the infra, you keep a small number of technologies but that on other projects there can be things a little more different, are there things a little I don’t know, exotic, or other things that you have?

Alex : I’m thinking well in terms of database for example we are in the process of making a taxonomy editor that relies on Neo4j Because since it’s graphs, taxonomies, we thought it would be practical, but in terms of language, apart from connectors, I don’t know of a project that would have a very particular language. We have the old mobile apps that were in Swift, in Kotlin, but there is no one really who maintains them anymore.

Walid : So you explained that all the infra, the serving part, a big part of it was in Perl. So I’m not a Perl developer, but I worked on a project that was created in Perl. And actually, basically, the problem we had, and I guess you must have had pretty much the same problem, was that it was hard to find people who were doing Perl right now.

Overall, it’s people who are our age or even older, who are developers or adminsys (Editor’s note: system administrators). Anyway, it’s complicated, it doesn’t attract young people, they want to do something else. And so, actually, I was wondering how complicated it was for you to maintain Perl? Who maintained Perl? How do you manage this… I don’t know if we can call it technical debt in your case, but how do you deal with the fact that it’s not necessarily easy to find people who make Perl? First of all, do you share my analysis already?

Alex: yes definitely, we feel it, I mean, it’s clear that it’s quite off-putting when we say it’s in Perl, we know that it slows down a lot of contributors. After all, we have people who have learned Perl to be able to participate in Open Food Facts, so that’s really great. We’ve tried to put resources for example for those who want to learn Perl, we’re also doing one of the things we’ve done, for example we have programs, the Perl Foundation For example, has allowed us to participate twice and again this year, I think it will be the fourth time this year, in a program called Outreachy, to promote diversity, so different students in fact, whether they are, whether they belong to less represented ethnic groups, to genders that are less represented in computer science. And so that’s people learning Perl on purpose.

Now we’re going to recruit an intern because in their training there was a bit of Perl, I had posted an internship offer. That’s it to say yes indeed it’s a problem and our answer to that let’s say today is to dedramatize because we don’t do hyper complex Perl so when we know Python we can quite easily slip into Perl, but also to simplify our architecture because there are other obstacles: it’s that our architecture is sometimes a bit complicated on some points, This is code that has lived for a long time and could be simplified.

And the last step is that in fact we also have a push from the community for this and we are happy to do it too, it will be to make more components, to make more organization in service, which allows for some services to use other technologies that have more contributors and also it resizes when we do right, When you’re just dealing with a service, it also scales up the size of the problem so it’s easier to contribute.

That’s it, but I think in the near future, the core of the project, i.e. the business logic etc will remain in Perl but it’s true that we started for example the search there, we have a new project called Search-a-licious, it’s Python, Elasticsearch and JavaScript.

Walid : yes, it seems pretty consistent to try to do microservices as you go along.

Alex : I don’t really like the term micro because… services. There you have it, services because sometimes micro is… We’re shooting ourselves in the foot by doing things that are too complex, so not too much either, but these services make sense.

The main technical steps

Walid : Do you have an idea of the main stages of developing techniques on Open Food Facts?

Alex : yes so I think the server hasn’t moved too much, let’s say it’s Perl and MongoDB, I think, was there from the start. However, when they launched the very first mobile app, it was Cordova, so it took a while.

It was the first scanning app, in practice.

Walid : What is Cordova?

Alex : Cordova is a framework that allows you to make applications using web technologies, mobile applications using web technologies. So you’re going to contain your application and it allows you to write classic Javascript and HTML and you’ll have a mobile app so it adds apis, I think I’m not 100% sure but it’s still very active.

Walid : Is it a cross-platform thing? Is it to make mobile apps?

Alex : yes I think cross-platform now I don’t put my hand to cut. And then we went to specific, so on iOS I think it was Swift on Android, it was first Java and then Kotlin and now we have moved on to Dart because there were contributors who were pushing for Dart and we saw that there was really a very big difficulty in harmonizing the two mobile applications. Especially since it was really volunteers at the time who were developing and everyone had their own idea on how they should develop their application, so there was really no parity of features at all, etc. It was for users, it was a bit confusing.

When I arrived, there was someone who had already started, a German contributor who does a lot of stuff, his nickname is Hanghi, who had started to Dockerize (Editor’s note: containerize) the server a bit. Olivier who was at Google, and then I finished this dockerization which made it much easier to contribute to the project: you do a make dev, as long as you have Docker installed, you can really start coding quite quickly. So we have a lot of Docker, a lot of projects and this commissioning too, well this division into service there, we’re right in the middle of it, let’s say we’re removing bits and pieces, little by little we had big performance problems, you see for example if you go to the home page, You can navigate by facets, you have a button that says navigate its results by, and you can say for example the Nutri-Score, I want to see the Nutri-Scores, so it tells you there are so many Nutri-Score A products, so many Nutri-Score B products, etc. And this page actually does aggregation, on MongoDB, it worked with MongoDB but at one point it was really too slow, and as we had, we were in the process of migrating the servers, we had put the MongoDB on a small server lent by OpenStreetMap France, thanks to them by the way, and suddenly it crashed. And someone, one of our contributors, made a service that is in JavaScript with PostgreSQL and that does these queries there. And actually just for these queries, we’re using this, but we’re going to use it for other things as well.

Licenses used by Open Food Facts

Walid : The next topic, which we talked about a bit with Manon, but I wanted to know if you had anything to add on this, maybe more on the server part, is licensing.

We’ve talked a little bit about data licensing, ODBL licenses, Open Database License. Apart from this ODBL license, for everything that is coded, what do you use as a license?

Alex : Usually, when I arrived, it was like that, I would have done that. It’s in AGPL in general, Affero GNU Public License. The Affero GNU Public License, it says, my code is free, but if you use it you must also share the source code with the same license to your users and the Affero it also has this protection for code that runs on the web.

Since all our code runs on the web, it makes more sense. Then sometimes there are contributors who start a project with another license and in this case we respect the initial license they put in, if they have produced a lot of code. Sometimes we can suggest that he go to the AGPL instead, that’s if it’s at the beginning of the project.

And then there are things like of course when you make an SDK (Editor’s note: development kit) for example it doesn’t make sense to put the AGPL. It’s so that as many people as possible can use it, even proprietary third-party applications, so in this case we put a BSD like license.

Walid : Okay

Alex : You don’t have any intrinsic logic, in general, you just give access to your API in the most natural way in that language.

Walid : So I ask myself two questions, the first one is you say “ok we have volunteers who start projects and who take a license that is not necessarily that one”, I was wondering about the people who start projects, do you have a little bit of Guidelines, guidelines, best practices to avoid it going all over the place? Typically, like the saying, use a PLFA etc. I was already asking myself that question.

Alex : We don’t have any guidelines, it’s a good thing we could do, you’re right. It’s rare that someone starts a project without telling us, because it’s someone who knows the code well, who knows a little bit about the practices of the community, so it’s going to happen normally, naturally, but it’s true that it’s not stupid that we could explain a little bit to have a guideline.

Walid : So I guess from what I understand is that when people contribute to the code there is no Contributor License Agreement (CLA) or mechanism that allows you to share ownership or give up ownership when a contributor contributes code to you?

Alex : No, yes we’re not on that kind of mechanism. It’s easier to encourage contribution that way. We think, perhaps wrongly, but we think that the license is enough.

Technical contributors to Open Food Facts

Walid : We’ve just started talking about community, so I was wondering who actually contributes? You explained that there are companies that, in the context of partnerships or special operations, contribute, but do you have individuals who contribute in general? Is it more like corporations?

Alex : yes, so most of the people who contribute, they’re actually individuals, who do it in their spare time because it struck a chord with them or because they were looking to have an impact on food with their skills. I’ll give you an example, here we have John who is a senior developer who is in England and who would have almost made his app or his database and then when he discovered Open Foot Facts, he said no but it’s there in fact I have to invest myself there and now he invests himself one day a week full with great skills. We have Benoît in Croatia who taught him when I was telling you there are some who learn Perl to contribute, learned Perl, learned to program, actually started to first take an interest in taxonomies etc.

So it’s already a little bit of a technical subject because you have to get into the subject. And then he really wanted to correct the mistakes on the ingredients and everything, on the products that he saw. And he got into it, he started fixing 2-3 regexp (Editor’s note: regular expressions) in the code. And now he’s doing new features (Editor’s note: features) etc. himself, that is. After that, there are people who come, who are more available at some point.

Well, that’s the life of open source and the community. That’s mostly it. After that, there were some exceptional things, such as the Google Foundation, which, as part of the prize we had won, the Google Impact Challenge, came to help us. And yes, student projects too, and programs. We had two years, the chance to have Google Summer of Code. They were also good opportunities. We won’t have it this year, so unfortunately but that’s it.

External contributions

Walid : One advantage of having an impact project like this is to be able to attract skills that you wouldn’t be able to afford.

Alex : Absolutely, I’d say it’s a bit of open source as well, I would say. You have to have a welcoming community so we really try to be very welcoming, we try. Sometimes we really spend time with some contributors: it doesn’t always pay but it doesn’t matter, we also do it, I mean with this idea that a project must be a place of fulfillment also for people, an open source project like ours by a project that is more than an open source project, it’s a project that also has an impact on food, etc. So we think that there is really this framework that is also fulfilling and that promotes diversity as well

That’s it, even if our time is not extendable, so at some point we also have to be careful, we also have our internal objectives to achieve, which are imposed on us a little by the pace of the projects we have won, etc. So sometimes there are choices to be made. But here we are, we’re trying, but anyway, there are answers, that is to say we also try to promote autonomy, for example, we try to tell people that’s it, the more autonomous you are, the easier it is for us to work together, it’s a bit of all that but it’s me I am… It’s super important.

Johannes, the one I was talking about earlier, is a contributor, he’s German and he’s in the process of setting up Keycloak for us. It’s a bit of a mammoth job, so John joined him.

Walid : Can you explain what Keycloak is?

Alex : yes Keycloak so it’s always in our logic to do services. Keycloak is authentication and user repository. We said to ourselves for this thing, it’s better to take a solution off the shelf and it will bring us a lot of features like OAuth etc. There’s no need to reinvent the wheel.

On the mobile app we have his nickname it’s Mr. Tanuki who gives us a lot of PR in Germany too, someone younger, Marvin, well here we really are… With people who have very different levels sometimes, but it’s going well, and we try to really emphasize the contribution of each one as well.

For example, I also have a group of students, for example three students from Centrale Supélec who are doing a project thanks to Latitude, an association that tries to help raise awareness among students and the business world about the ethical issues of digital technology. So we’re doing a project with three students who do two days a week, they’re working on this taxonomy editor project for example.

Walid : So far, the contributors you mentioned were mostly in Europe? Do your contributors come from all over the world or mainly there are countries where it stands out?

Alex : At the moment it’s coming out quite a bit in Europe. There’s a contributor who’s in Australia, but you see it’s not easy Australia for timezones, you see we’re trying, because we’ve also tried to humanize this relationship with the community by doing regular updates, that’s one of the things. Two years ago when we kind of said yes we really need to take some time for the community, one of the things we identified was to do more regular meetings, so there are things like the server, it’s very active, the server in Perl so we have a meeting every week. Same on the mobile app.

But for example, on infrastructure, I have a monthly meeting to also meet. So when we have meetings, we can also have people from the United States, but that’s a little more punctual, let’s say for now. For the moment, the bulk of the most active community, let’s say, is in Europe but we also have good pieces of community in North America, there we have someone who is in Argentina who would really like to boost on a new project that we are doing that is called that was born from the community there too that is called Open Prices , so we’re trying to track down all the food prices, I think Manon talked about it. So there you have it, it’s a little bit of all that.

Tools available to the community

Walid : What tools do you make available to the community to be able to interact and collaborate with you?

Alex : Let’s say a lot of things happen on Slack, I don’t know if it’s ideal but that’s the way it is, in the sense that Slack requires a lot of presence, a lot of time. We also have a wiki where there are people who edit quite a bit: it makes a good source of documentation. It lacks structure, we’d like to restructure it, I’ve been bothered for a while, I’ve been itching to restructure it but I haven’t managed to get started yet. And then we have a forum, we opened a forum some time ago because there are people, well slack it’s proprietary unfortunately, well for now we’re not migrating to anything else because it costs a lot to do a migration.

And so we made a forum, it’s a discourse, to be more accessible to certain people and then there’s Github which is very useful for the whole tech community, let’s say here are the tickets, the branches.

We have a blog So that’s it for more, for news and Newsletters But that’s more the wider community, let’s say, even if we had wanted to do a tech newsletter but we haven’t started yet, we had a number zero in the drawers but it didn’t start.

The organization of employees and volunteers

Walid : I was also wondering how you divided the work between the employees and the volunteers? By this I mean that a salaried person can plan their time over the coming weeks, months, whereas a volunteer is more complicated, you can’t necessarily ask them for a report or something on a very specific date. How does it work?

Alex : Actually, we, as a permanent team, already have obligations in relation to the projects that have been funded, and it’s up to us to do it, let’s say because we received the funding for it. So already it takes us a lot of time. The time we often have left is to animate the community and do a few little bits here and there. But it means that everything else, everything we’d like to do, that will really serve the project, because European projects, all of that can’t be financed. What we’d like to do will depend on the community.

So there you have it, and as you say, it means that sometimes, you have to have patience, a person is there, and then they can’t finish. So it can also happen that we give a hand to a volunteer who has started a huge job, or we finish the job because he is less available.

Or sometimes, you know, there’s some pretty interesting stuff. For example, on this research project, in fact, we didn’t have any funding yet, but there was an American who wanted to improve research and who had started a project. I had helped him a little bit with the set-up of the project, etc. And then I did his code reviews, etc. But he was the one who had started. And that served as a basis for us, in fact, afterwards, to build the European project.

Walid : And that’s what Manon said, financed to carry out projects and certain actions, but the maintenance of the common and therefore the maintenance of existence is self-financed.

Alex : We’re having a hard time funding it, let’s say.

Ideally, we would like it to be funded, to be well funded. Today, it is difficult to finance it. After us, when we do a project, you see, we also consider that there is a basis, I would say there are things that we do a little bit for the common that can be included in these projects. And also, I would say that we consider that if there was no project, there would be no European projects, so we take a little time anyway, but yes, it’s one of the big difficulties.

I’ll give you an example, I worked a lot on the infra last year because we really had more space on the servers etc. Servers had to be migrated, disks had to be replaced, changed, updated, etc. And that really puts us behind on the European projects because it wasn’t really funded time and yet it’s very necessary otherwise the project would stop, there was the server that would fall to the ground.

But we’re working on it, we’re really trying. We have set ourselves the objective this year to try to get the common funding funded, we say to ourselves it’s not normal that it is not funded. We really need to look for people, know how to present it and find the right sources of funding for this commons.

What has been set up to work with professionals

Walid : Between the interview with Manon and then I also listened to professional conferences that you were doing for professionals. What does it mean to work with professionals in terms of flow?

Alex : in fact we have very different professionals because in producers you have the person who produces I would say in his little lab, by hand, everything by hand and who may be interested in being on Open Food Facts, in the company of 10, 15, 25 employees and then you have the private label of Carrefour or Picard or I don’t know what well there you go so it’s really very different things We were somewhat funded by Santé Publique France (SPF) for that too they really wanted to make sure that the quality of the data in the database was good. So the idea was to say: we need the data from the producers. So it’s true that it’s more complete data, the quality isn’t always that great, it’s a real problem even for producers, the quality of the data. It’s not a problem if we can think that in 2024, well, no, it’s not that simple, even for them. So we created this producer platform, the idea is that everyone can have access, even small producers. So here you can really enter your cards like you would on Open Food Facts by hand or we can do it from a spreadsheet type table that you fill in.

So it allows, it’s an easy bridge let’s say, even for someone who would have a small custom tool, who would have a tool where he can do exports, it can be quite easy to copy and paste to put in the right boxes. Especially since the CSV import tool is quite tolerant, you can tell it here is this column, this is it, this column is this. And then we have people, like Carrefour, they export us every night, or every week I don’t know, but they send us to an SFTP.

And we made a script to go and eat their data, knowing that they’ve already done their part, let’s say, of formatting the data so that it’s easy enough for us. And then we plugged into people who actually manage the producers’ catalogues, so people like Agena 3000, Bayard & Equadis, so those who were willing to do it because we had other catalog managers who told us oh yes we want to do it to you but it will cost you 10,000 euros. That is to say, those who accepted, they were the ones who paid for it, what? That is to say, what we asked them to do was to push the data to us in the standard format of the domain called GS1.

And so yes, they’ve done in their platform, indeed, they’ve done something, they’ve done a development, since they’ve effectively added a checkcage so that producers can say, I want to push my data to Open Food Facts. But we can consider that for them, it is also an offer in the catalogue, because it allows producers who use their products for nothing at all to have this data in Open Food Facts, which is a plus for the producer. With this in particular, it went very well, let’s say, and so it gave us access to quite a few producers. Because you see, between saying when you meet the person you say “oh yes so I should see my IT team etc well my technical team and you say no but you are at Agena 3000 or Bayard or Equadis” and they tell you “yes yes we have”, “you go to their interface and you say you want to give your data and it will work”. So that’s, it’s unlocking quite a bit.

Walid : It doesn’t cost them anything to do that, so it’s actually a win-win for them.

Alex : That’s right, it’s all good for them. And the other thing so, we the platform also was, what we also did was in the plans also of Public Health France with which we fully adhered, it was also, because the Nutri-Score the goal is that it has an impact in fact on what producers produce that is to say we increase the knowledge of consumers we increase the ability of consumers to choose the right products behind it is also so that Producers say “oh well, we have to have good products then” and so one of the things

What we propose to also attract producers is to tell them “we are going to do an analysis of your products and we are going to identify all the improvements you can make, the simple improvements we will say, not too hard to make, such as reducing the salt a little, which will lead you to a better Nutri-Score”.

We don’t do it yet for the environmental impact because it’s a little more complex, but we’re doing it for this kind of thing. And it also allows small producers to calculate the Nutri-Score, to calculate the environmental impact with the eco-score for example. At one point, for example, Carrefour experimented, so they pulled the plug now, but on their Drive, you had access to the eco-score and took it directly from the producer platform.

Consulting for manufacturers

Walid : It’s a lot of work, this work of advice. Technically, is it complex?

Alex : No, technically, it’s not too complex.

It’s really more about human problems. And that’s why it’s a lot of Manon’s job.

So we really need to, but we have small funding just for that, so it’s hard to do it, but we really need to improve the ergonomics, for example, of the producer platform to promote autonomy and so that someone who has ten products, they can really find their way around on their own.

It’s not computer scientists, the people we’re dealing with are people from the agri-food industry, so there’s this aspect, but then it’s mostly that’s it, there’s all the work to convince people of why it’s interesting, that they put their data into Open Food Facts: what will it bring them, and then all the support, Let’s say, human. Because sometimes, there are people of good will in a company, but they just don’t know where the data is, what, well, they don’t know how, so we have little things that we tell them, what, for example, we’re going to tell them, “yes, you have an e-commerce? Maybe you have to ask them where they get the data,” because little things like that. “You have someone in quality, so maybe he has access to the data.”

It’s more like that, but then I would say, on the advice aspect on Nutri-Score, we’re going to say that it’s on the shelf, you put your products, you have advice, I think most people know how to use it. Producers are also interested in benchmarking, i.e. comparing their products to other products. Because we, for example, tell you in the product category, other products have more salt, less salt, more fiber, less fiber… And they’re very interested in that, too.

Managing the roadmap

Walid : I’d like to talk a little bit about the development flow. What I’d like to know is a little bit about how do you build the roadmap of your different products? How is it actually influenced? Who is in charge of it and how do you manage it, do you respect it?

Alex : I would say there’s not a very clear process. There is an opportunistic side, clearly we see a call for projects, we say to ourselves with this call for projects we could do this, typically for research. We’ve known that we really needed to overhaul research for a while, but we weren’t going to tackle this issue as a priority. But when we saw the European call for projects, we said that would be great, we’re going to propose a project, it’s going to bring us a real search engine that people are waiting for.

That’s it, it’s also, we’re in contact with our users all the time, every day, every day, with the community, so there are also a lot of requests that come from the community, whether it’s an irritating bug, which is every time I do this, or an error that comes back to you 15 times, Or people say I didn’t understand how to do that. So that can influence the roadmap a lot.

There is the availability of volunteers, as I tell you, in the sense that a volunteer will often come, there are subjects that interest him. He’s going to say, what I’m interested in is contributing to that. He’s got the skills for that, so it’s really going to influence the roadmap. It also takes us a little time because we have to support him. So it takes us a little bit of time so it’s going to be too, there’s opportunism also in that sense but then I would say at the level of the permanent team we’re also going to have regular strategic reflections, every month we do for example a moment together that will help us give orientations.

For example, we know that one of the orientations we have is that we want more users on the mobile app, we think that our mobile app doesn’t have the number of users it deserves and we know that this is also the sustainability of the project because the users are the heart of the project, it’s the Crowdsourcing is participatory data, so we know that’s what’s sustainable, and so, for example, we said to ourselves: but rather than starting from our own vision, we said to ourselves, we really have to include the community. So last year, we did a whole participatory process to try to determine together what is the priority for the future of the mobile app.

It was very interesting, we started with a series of brainstorming sessions, then we individualized tracks, big tracks, from what the brainstorms had come out. We tried to explore these tracks in small groups, and then we had the community vote on the tracks that were the most interesting, once they were educated. The votes were very close by the way, in the end we took what came out the most and we were a little surprised by the customization. Anyway, here’s an app and in fact it was quite good strategically because we had said to ourselves, more users also means more loyal users because often you see, you’re going to use a scanning app and once you’ve scanned your usual environment a little bit, you’re not going to take it out much because that’s it, you’ve chosen the products, you know they’re good.

Here you are, you bring it out from time to time and we said to ourselves that the app should be a little more companion because we need on the other hand we would need you to rescan the product pack because it has changed etc. We had told ourselves that we would have to create a bit of a companionship and so this personalization goes a little in that direction because the idea would be to make functionalities for example dashboard (editor’s note: dashboards) how the Nutri-score of your purchases is distributed in a month compared to last month, your eco-score… Anyway, it’s these ideas that we have a little bit that have come out of these tracks, let’s say.

Walid : So you have opportunistic things because you have funding that allows you to work on a subject that you wanted to work on but you couldn’t do it without funding, there are things that you correct on a daily basis, day by day. There are major consultations, and if I understand correctly also other projects that are led by contributors as well, which is what you explained earlier.

Alex : yes that’s it and then there are a few projects, that’s a bit of a congruous part unfortunately because they are strategic for us, I’ll give you a very recent example: Nutri-score V2. You can’t not do it! It’s just that it’s strategic, I mean in terms of visibility, etc. But it’s even strategic, I mean, it’s the heart of what we want to do and we can’t not do it. So we had a little funding from SPF, Public Health France for that but it was not quite enough. Well, we do it anyway because it’s really important: we can’t not do Nutri-Score V2, it makes a lot of sense for us and everything else really goes in the direction of improvement.

Sharing and meeting with the community

Walid : Most of the time do you work remotely? Are there any special moments when you can meet up with your contributors in person? Because sometimes it helps to meet people in real life. Do you organize monthly or annual days, or do you go to events? As you have projects that will end up in events like the FOSDEM, for example, to take advantage of it to do their meet-up, etc. Do you have moments dedicated to this sharing and meeting?

Alex: So the big moment actually is the Open Food Facts days. In recent years, it’s been more like October. It’s really the community event so we meet for two days, the last few times we did more in Paris, it’s a bit difficult for the moment to move elsewhere but because it’s easier for everyone to go to Paris etc. We did that at the climate academy , which is a great place in Paris to do this kind of thing. We thank him very much. So it’s really the place of the community where people often go from a partial knowledge of the project to a deeper knowledge where there are all these bonds of friendship. Afterwards, we didn’t have an office before, now we’ve had offices for a year so we also try to tell people if you want to come by but in fact there aren’t that many people in Paris.

So it happened that a contributor who was passing through Paris, he came to say hello to us. For example, Raphaël Odini , who works on Open Prices, has been to Paris several times and each time he comes to the office a little. Once a month, the permanent team does this driving, so we try to be physical. So we said to ourselves, hey, when we do the piloting, we could invite people for a drink together.

So we tried to set that up. And then I was talking to you about these meetings, so it’s not physical, but these regular online meetings around a subject. We also have a kind of online meeting every month to welcome newcomers in a way, to see each other. For the moment there is not a monstrous craze let’s say, but it’s nice, it’s still super nice. It’s an opportunity to get to know people better, to have a feeling too. But it’s true that our community is very distributed. It’s a bit complicated physically.

In fact, some volunteers would love to have a more local community. But so far, that hasn’t happened. We’d like it to become, but so far, it hasn’t happened.

Walid : A question that comes to me here, when you’re talking, are you inspired, do you look at what is being done on other projects? We talked about OpenStreetMap for example, etc. Are there any other projects with which you discuss these organizational issues? Which are examples for you and everything, that I think. I just thought about it there.

Alex : yes, well, OpenStreetMap is really all the people from OpenStreetMap, because when I arrived I was told, “Look, our model is OpenStreetMap”. Finally, when Stéphane founded the project, he was really his role model.

After that, we finally have today, we have a very different physiognomy from OpenStreetMap because OpenStreetMap is a community where there is almost no permanent team and there are quite a few professionals in fact who participate in the community, which is not at all the case today at Open Food Facts. We are more of a classic association with permanent members who are somewhat centralized. We are trying, we would really like to bring out other entities that support Open Food Facts.

So we’d like, in fact, our model, let’s say, of growth, would be more like there to be Open Food Facts Germany, Open Food Facts Italy, Belgium, well, that’s it. So we’re pushing in that direction today. We did a grant, for example, to say, “Here, if someone wants to develop Open Food Facts in their country”. Well, now, the grant for this year, it’s taken, but it was really for that: we put 3000 or 4000 euros in saying if someone wants to develop, we make this money available to help them develop, knowing that we don’t have the means to pay a professional to develop the community, and then we’re not sure that it makes sense too, In the sense that a community like this has to be carried at the beginning by a volunteer impulse as well as that the person feels invested in this thing. We would fully support today, for example, a person who would like to develop the community, we would give him all our support, even material, etc., as we can to help him.

Walid : And the people you look at who are examples that you inspire or follow?

So there, at the OFF day, we actually brought in Christian Quest, it was very interesting because he gave us a talk a little bit about what the difference is, he who knows the two communities very well, what were the differences between OpenStreetMap and Open Food Facts and what he thinks could also inspire more Open Food Facts. I can’t remember the points but there you go. After that, I think that everyone in the team is very attentive, we read things that come out etc. So we’re very attentive to what may be happening elsewhere. In any case, we don’t have a theoretical framework for reading this.

It was quite interesting, I took part in a conference where there were mainly sociologists in Strasbourg last year. It’s very interesting to see the perception of sociologists of what we do, etc. Maybe I have more to do in that sense. There is someone, I have the name here, which unfortunately escapes me, but who is in the process of doing a sociology thesis on the Open Food Facts project, which is its relationship with the police force. So that’s pretty interesting.

Walid : last question on this topic, you said that Pierre was a Product Owner on Open Food Facts, as there are several projects, Open Food Facts, Open Pet Facts, Open Beauty Facts, Open Product FactsIs he the one who is responsible for all these bases, all these projects or is it a bit divided between several people?

Pierre, I said Product Owner but that’s not the right word actually because he’s not a Product Owner. It does tasks of… What did you say earlier? Product management?

Walid : Product Manager.

Alex : yes, product manager tasks. But he does it on a lot of projects and he doesn’t actually do them alone. It does this a lot on the mobile app actually. That’s really where I would say he spends most of his time on this aspect, but then on projects like Open Food Facts, Open Product Facts, we’re going to do it collectively actually.

Pierre will explore certain topics a little more thoroughly and then we will discuss together with the whole permanent team, often on subjects that are a bit important, but also with the volunteers, well, they have something to say. You really have to get out of your head all the models that are a bit hierarchical etc or specialization of features, we are really more in sharing etc and consensus, in the search for consent or consensus. Consent often for volunteers, i.e. them, they don’t need to seek consensus, if we say we don’t mind you doing that, there’s no obstacle to you doing that, whatever.

There are some decisions that will require more consensus. Because, for example, on the permanent team, you don’t have infinite energy, at least infinite time. So we’re going to have to reach a consensus at some point on what we’re doing and what we’re not doing.

The Challenges Ahead: Documentation

Walid : Last part, since the clock is ticking, my usual part that I call the challenges. The first one, we talked about a little bit, was technical debt. So I don’t know if you have anything more to add to that, but I think we’ve already talked a little bit about it.

Alex : We’ve talked about it quite a bit already, but you see, one of the things we haven’t talked about for example is documentation. We could do better on documentation, but here’s the thing, as in many projects, it’s not easy to always motivate yourself to document well or even to know how to document in fact. It’s not always easy. I know that today, for example, on the server side, the Product Opener is called, the product on the server side, I know that in fact I realized that in fact we needed to make a few more explanatory pages, great explanations. For example, the fact that products are stored in a file, why, how, what does it mean? Because often we have very technical, very low docs, but often people lack the “why am I doing this?” a little bit lacking.

Walid : I invite people who are interested in this subject of documentation to go and listen to the episode I did with my friend Fabrice Flore-Thébault who is a Technical Writer at Red Hat. We talk about all these topics and what a Technical Writer is, how to write, how it is advertised that it must be understandable and understood by people.

Alex : There are things to dig into there. I also liked the framework, there’s a framework called Diátaxis on the documentation and I liked it, I’m trying to make you apply it a little.

Walid : Okay, I don’t know at all, I’ll go and look. Basically, it says that you have to separate what is a tutorial, the how-tos that are for a given task that you want to do, the reference documentation that is exhaustive but very technical, and precisely the explanations, when you want to explain a little more why we do things like that.

Technical challenges

Walid : I wanted us to talk about the challenges ahead at the technical level on Open Food Facts. What awaits you in the coming months or years?

Alex : So I’ve already talked about the search engine, so that’s really a project that we need to finish quickly actually also because we’re in a hurry to finish it that will bring really nice things. One of the big things that’s going to happen is that we’re going to try to revive a little bit the projects you were talking about earlier: Open Beauty Facts, Open Pet Food Facts, Open Product Facts. And what we decided to do, after a very collective consultation, was to gather the databases. What is now separated into different corners. We’re going to make a single database, I’m really talking about the files I was talking about earlier. And really update all the projects, because actually what’s going on, OpenProductsFacts are on old versions of the server.

So we really want to wear them. And there’s a revolution in the meantime, which is that we’ve changed the way we display it, etc. So there’s definitely some work on that. We’re really going to update everything and try from there to keep everything up to date with a merged database and when we deliver it’s going to be on all projects at once. We’re going to keep separate universes because we think it makes sense for the user, but within a universe you see if it’s on food and you scan on the food mobile app and you scan a product, a toothpaste for example, well

poof, you’ll find yourself in the Open Beauty Facts universe but without leaving the app. We’re going to find ways to do that, so that’s a big challenge because it means data migration and so on. All that when you have a big project that kind of thing. We always have a bit of a challenge on the infrastructure side, we’re always a bit on the edge on the infrastructure. Despite all the work I’ve done, I’m working to make backups more square, more square on the security side, we’ve never finished yet.

That’s a big project too, and that’s really a call from the heart. If you’re a system admin and you hear me, come and help me. It’s very hard to find collaborators in an admin system.

We also want to go to projects where we will potentially manage more sensitive data, for example user lists, today, we have chosen to have them only on the device so as not to manage the privacy aspect, to really have a privacy first. But in fact, we would like to have them in a database, if only to synchronize between the web and mobile, but also because we think that there is data that can be of interest to researchers, who can make interesting statistics in it. So, we know that we’re going to want to manage this kind of data, so it’s more sensitive because what I eat, it’s still a little more sensitive data and especially also the other thing that we’re really trying the project we’re on, I hope it felt a little bit but it’s always fluidifying the contribution. Allowing more people to contribute more easily, so these are also things that really require refactoring, often this provisioning is broken down into more manageable services. So it’s all really in the challenges of what we have.

We have other challenges that could come because on the machine learning side, we have just learned that we have new funding that will allow us to digitize nutrition tables more easily, with machine learning. It’s a project in fact, where there have been several attempts by volunteers to do it but each time they have failed, so we know we’re going to get there. There is the technological maturity that is required and we know how we want to deal with the problem. Then the other challenge we hope to face soon is that we’ll have too many users and that’s it.

Walid : The problems of the rich as they are called.

Alex : That’s right.

Walid : We haven’t talked about machine learning at all, but it’s worth talking about another time because I think there’s a lot to say about all the learning you’ve done all this time.

I think it would be interesting and I have to dig a little deeper into the subject before we talk about it because I don’t know much about this subject.

Alex : And then it’s Raphaël who’s a little more at the heart of it, so it’ll make you a third guest like that.


Walid : For the next one, for the next one absolutely. We’re coming to the end so I have to admit that I’m very excited about Open Product Facts for personal and professional reasons. So there you have it, and it was great.

Thank you very much, I learned a lot of things and I hope the listeners did too. I was very curious to know after the first episode how you manage the collaboration with people who are volunteers. I had a lot of questions so that was good, you said some very interesting things.

It also made me want to dig into the whole OpenStreetMap part as well, because I think there’s some pretty cool stuff to tell about all of this as well. So there you have it, more episodes to come for sure.

Alex : Yes.

Walid : Listen, Tribune Libre, do you want to say one last word before we part?

Alex : I meant, there’s a challenge that popped into my head that I didn’t say, so I’m adding it before it’s our API actually. We have an API that has grown over time and is really hard for a lot of people to understand.

We’d really like to be able to refactor it. We had another volunteer who came some time ago and told us “but it’s impossible to understand your API” and we told him “yes we pretty much agree”.

But to change it, it’s not easy, there are all the compatibility issues, etc. And then it’s also the fact that I didn’t quote too much, I wanted to quote it for a moment, then I skipped the fact that we have a lot of reusers. There is also a whole community of reusers of Open Food Facts, apps that help vegan people choose the right products, apps that help pregnant women, people who want halal food for example. There’s also a whole community of reusers that today a lot of people are reusing our data, allowing their users to contribute the data and that’s good.

There are others who are a bit more part of the community, in the sense that they help the product grow on aspects that interest them, etc. In particular, someone who will try to develop the project further in Germany and Denmark is someone who reused our data in the first place, who continues to reuse it by the way. So that’s a community and another community that we didn’t find, but that yes Manon had quoted I think, it’s the scientists. In fact, I think people had quoted you with Manon actually.

Last thing, the cry from the heart is a bit like that: it’s that I don’t think that the solution to the problem of food, its environmental impact, its impact on people, is only technological, that’s clear, but we are a project that really allows many other projects to exist as well. And if anyone has the fiber, they are really welcome, we will be super happy to help them help us.

To help us as a community. And so I think there’s a lot of really interesting stuff to do. There are a lot of projects that I haven’t talked about here that are very interesting. There are a lot of very interesting things to do around this project and we try to be really welcoming and welcome diversity.

Walid : Great, thank you so much for taking your time to tell us a little bit about your day-to-day life and what you do at Open Food Facts. I’m very glad we did these two episodes because it gives a better idea. I hope that we will also have the opportunity to hear you other times on the podcast to talk about other subjects, current events, I don’t know, to see what.

Alex : Thank you for this service that you do because it’s a big contribution too, communication like that, to make the projects known and everything. And I love this kind of podcast where you’re free to express yourself, where you go all out, you take your time.

Walid : Okay, that’s really nice. So for the listeners, as usual, don’t hesitate to talk about it around you, don’t hesitate to contact me on the website, there’s a page called Follow Us and in which you will find all the links to follow the project, contact me, mainly Mastodon, that’s it all on the follow us page. And see you soon for new episodes, there are still some very very cool things that are either already recorded or to come. So as they say, stay tuned. Thank you, see you soon.

Alex: Awesome .

This episode was recorded on March 7, 2024.


This podcast is published under the dual license Art Libre 1.3 or later – CC BY-SA 2.0 or later.

Leave a Comment