Open Source at Uber: A Conversation with Nicolas Garcia Belmonte, Head of Visualization
March 26, 2018 / Global
In college, Nicolas Garcia Belmonte became interested in visualization engineering, and developed the JavaScript InfoVis Toolkit, a set of tools for creating interactive data visualizations on the web. In addition to making data visualization more accessible, open sourcing that project gave him global recognition, letting him travel from his native Argentina to conferences around the world.
For the last three years, Belmonte has worked at Uber, rising to his current position as Head of Visualization, and helping create open source software that makes data easier to analyze for users worldwide. We sat down with Belmonte to talk about his experience getting started in open source and the role it plays in his work at Uber:
What inspired you to study computer science in college?
I actually wanted to study things that are very theoretical, but probably not very useful. Computer science seemed like a good compromise, as it applies higher concepts to practical solutions. I began my studies at the Instituto Tecnologico de Buenos Aires in Argentina, and a few years into the program I discovered visualization, which is a sweet spot for me given my interests. This field involves using math, geometry, and computer graphics to render data into visual forms that people can interpret and analyze.
What was studying computer science like in Argentina when you were getting started?
My early years there were really enriching, but we did things that might seem a little outdated. For example, sometimes we wrote code by hand, on paper. We learned to do binary operations and write assembly code from scratch. It was a good, deep dive into things like object-oriented, imperative, and functional programming.
Later on, though, the program started focusing on preparing students for jobs in the industry, which in South America typically meant working for a company that does outsourced programming. That seemed pretty boring to me. Since I was already interested in visualization, I decided to go down that route for my career.
What was your initial exposure to open source software?
In college, I started contributing to open source visualization libraries, adding small modules for lighting, along with different objects. And then, in a visual programming class, the professor showed this amazing visualization called Hyperbolic Tree, which used hyperbolic geometry to show nodes in a graph. I was really excited about it, so I started reading papers on visualization.
To understand the algorithms, I reverse-engineered examples from these papers. I open sourced my code and, as I added to it, I ended up developing the JavaScript InfoVis Toolkit. At some point I started to have customers, a Google group where developers could discuss contributions, and, soon, thousands of people were using it, including organizations like Mozilla. Going open source seemed like a good way to both market my work and make it useful to others.
What is the biggest value of contributing to open source projects?
What really makes open source satisfying for my team at Uber is that our projects don’t just have internal impact. We have about 30 applications using these open source frameworks, but there are also more than 100,000 npm downloads a month, and that’s from students, individual engineers, and companies. There is a whole ecosystem of people who find our software valuable and contribute to make it even better.
Open source helps the engineers on my team get recognition for their work. They are very happy building things that are widely useful, and they get the opportunity to go to conferences and talk about what they do.
Did you feel that building the JavaScript InfoVis Toolkit as an open source project gave you international recognition?
Yes, absolutely. I did the biggest chunk of this work in France, where I was continuing my computer science coursework, and that gave me exposure beyond South America, in Europe and the U.S. As a byproduct of that, I traveled to lots of different countries. I gave presentations in French, English, and Spanish, and wrote book chapters and blog posts about my work.
I think open source is an honest way to market your work because people can actually see if you’re building good code and architecture. If it’s really valuable and well-built, then it will be more widely used.
What is the most interesting or valuable way somebody has used or contributed to your work in the open source community?
We get two different types of users. Some come from academia, and they use our tools to visualize interesting phenomena like vector fields and wind or to build games. Other folks work in the industry. Collaborating on open source projects can build relationships between companies in the context of pure engineering, where individuals contribute to making software work better, not only benefitting the individual companies involved, but anyone else who might have a use for the tool.
Using the deck.gl open source visualization library developed at Uber, researchers can view wind vector data in a web browser.