Interview with David Cournapeau, Head of the MLE Team: The voyage from Paris to Tokyo
David Cournapeau joined Cogent Labs in August 2017.
As head of the Machine Learning Engineering Team, he plays a pivotal role at the interface between cutting-edge research and product development. Beyond his work at Cogent Labs, David is also well known in the open source community as the original author of scikit-learn, and a major contributor to NumPy and SciPy.
We sat down with David to learn more about his experiences and insight as a scientist, an engineer, a manager and an active member of the open source community.
This interview series will feature four installments spanning three main topics: David’s career to date, his thoughts on developing products from research, and his experience working at Cogent Labs. David’s career will be covered in two installments, with the first focusing on his academic and professional career, and the second addressing his work in the open source space.
- Topic 1: Career – From Paris to Tokyo
- Q: To start things off, please tell us about your academic background.
- Q: What did you work on during your PhD?
- Q: After completing your PhD, did you already have an idea of what kind of a career you wanted to pursue?
- Q: So that is how you ended up moving to industry?
- Q: After that you joined Cogent Labs. Could you explain how that came about?
- Q: You now head the Machine Learning Engineering Team, which you yourself established. Could you explain how and why that happened?
Topic 1: Career – From Paris to Tokyo
Q: To start things off, please tell us about your academic background.
After high school, I followed a fairly typical engineering path. In France, we have two years of something similar to a cram school. Then I went to an engineering school called Télécom ParisTech specializing in computer science and electronics. I studied signal processing, which is the mathematical underpinnings of how to treat signals.
Afterwards, because I was always interested in music, I did another master’s studying the different kinds of technologies that are applied to music, such as audio signal processing, acoustics, etc. I did that for one year.
As part of my master’s, I had to do a six-month internship. The typical thing to do is to simply work in a Parisian suburb somewhere. However, I was really interested in Japanese culture so I thought it would be more interesting if I could do the internship in Japan. That is how I first ended up coming to Japan.
For my internship, I worked at the Advanced Telecommunications Research Institute International (ATR). This was a group of advanced research labs funded by the Japanese government aimed at fostering collaborative relationships with international researchers. I worked at a lab near Nara specializing in communication, neuroscience, and virtual reality. My internship was for six months, and because I enjoyed it, I stayed for one more year as a research engineer. Overall, I stayed there for around two years.
Then I became interested in doing a PhD. Through my work at ATR, the head of the lab recommended me to a professor at Kyoto University. I earned a scholarship from the Japanese government and did my PhD at Kyoto University from 2006 to 2009.
Q: What did you work on during your PhD?
I worked on speech recognition. It was quite an interesting time to do so because speech recognition is actually one of the first fields, if not the first field, that used what it is now called “machine learning.” A lot of the techniques that are now very common for image processing or that are used by Cogent Labs or other AI companies were used and pioneered by state-of-the-art research in speech recognition. From the 80s, state-of-the-art speech recognition research was about using statistical methods and a lot of data to train systems to do speech recognition. I think it was the first field to do this on a big scale.
Q: After completing your PhD, did you already have an idea of what kind of a career you wanted to pursue?
I finished in 2009 and I originally wanted to stay in academia. However, after some soul-searching, I realized that although I really enjoyed research, I was only okay rather than great at it. I also knew that there are a lot of very smart people in research and that there are many more people available than there are positions. So I realized that even if I could maybe be a mediocre researcher somewhere, research would probably only be enjoyable if I were really good and I therefore decided to pursue something else.
Q: So that is how you ended up moving to industry?
Yes. So, I joined a small company in Osaka, Silveregg, working on recommendation systems, in 2009. At the time I did algorithmic research and worked a lot on the backend. It is a fairly common theme in my career. I tried to mix what you might call “pure” engineering and more machine-learning, statistics-based work.
I worked there for a year and a half. It was an interesting experience. It was my first job where I had any kind of responsibility and I learned a lot, but after a year and a half I was a bit worried about furthering my career in Osaka as a foreigner. Ten years ago, there were not that many positions available, not even in Tokyo.
That is why I decided to go back to Europe. I had the opportunity to join another company, Enthought, where I knew a lot of people already. I worked there for six years. It is an American company but they chose to open a small, ten-person office in Cambridge in 2011. I joined more or less when that started.
Enthought was a small and very technologically-oriented company in the sense that the founder had a PhD and 70% of the team had PhDs. The idea was that we would provide scientific consulting for companies. A typical example is that a company would have a domain expert who has developed a proof-of-concept software. The company would then ask us, based on that, to develop a software that other people could use. They would not want the domain expert to do that and they could not just ask any software engineer to do it because you needed to understand the science behind it.
We were, in a way, always at the interface between pure software engineering and science. The idea was that because most of us had a strong background in science, we could speak the same language as the scientists, but we were much better at software engineering than most scientists, so we could develop something that could be used not just by one or two people, but maybe across the company. That was the main value proposition of what we did.
During that time, I also took over more infrastructural backend work. This was work that could be reused across all our customers, particularly to make it easier to develop software.
Q: After that you joined Cogent Labs. Could you explain how that came about?
After six years, for various reasons I wanted to do something else. In looking for a new job, the chance to work on products was the most important factor. I did not want to work in consulting anymore. Also, I knew that AI and deep learning were becoming pretty prominent, and my PhD was in a field that pioneered those techniques, so if I could work on products related to AI it would be even better. And, if I could do it in Japan, it would be even better still. That naturally led to my next position here at Cogent Labs.
I joined Cogent Labs in summer 2017 and I initially joined as a Senior Research Engineer. I worked in a similar capacity to my past positions, helping to bridge the gap between the researchers and engineering, as someone with a background in science and engineering, but is not as good at the science as the co-heads of the research department and is instead stronger on the engineering side.
Q: You now head the Machine Learning Engineering Team, which you yourself established. Could you explain how and why that happened?
After a few months, I thought we needed to start a specific machine learning engineering team. I started this around December 2017 with two existing members of the research team.
What is very common in big companies is to have the research lab, the software engineers and the business side in separate teams and sometimes even separate locations. This means it takes a very long time to go from research to an actual product, maybe even years. Especially with a small company, we cannot afford years. Ideally, they should not be in different teams. They should really work together.
The main value proposition of the Machine Learning Engineering Team is similar to what I did before at Enthought. We work at the interface between research and software engineering. We are not as good in AI and deep learning as the researchers so we do not write new papers or new research, but we can read existing research and understand the state-of-the-art research, while working much more closely on the product on a day-to-day basis.
In the second installment of this series, we will turn our attention to David’s contributions to and thoughts on the open source community.