Bloomberg at NodeConf EU 2019

Our Commitment to Open Source

At Bloomberg, we <3 open source. This might come as a shocker to those who view Bloomberg solely as a giant financial news company. Truth is, we’re a tech company. Surprise!

As a tech company, we’ve been around a lot longer than many of our peers. Mike Bloomberg set up shop in 1981. A decade later, Linus Torvalds announced his new creation, Linux. Today, the use of and contribution to open source software is at the heart of our engineering culture. Many of our 5,500+ software engineers around the globe contribute to open source projects. This is good for us, good for our engineers, and good for the open source community. A large part of this relates to our deep investment in JavaScript.

JavaScript, Node.js and TypeScript

We also <3 JavaScript (the good parts). We have one of the largest JavaScript codebases in the world. In 2001, we started down this path with Mozilla’s SpiderMonkey. Now we have over 10,000 front-end apps and tens of millions of lines of code.

My story with Node.js and TypeScript starts back in 2013 when I joined Bloomberg. I had been hired as a Ruby on Rails developer, but the team decided to switch to Express, a web framework built on Node.js. I found this choice to be quite bold. Turns out, it was a pretty safe bet, since the company had a vast pool of JavaScript developers and knowledge.

This got me curious. Why were there so many JS developers at Bloomberg? The answer: the “Terminal,” the desktop application that is core to Bloomberg’s business. It is architected around JavaScript, starting with SpiderMonkey and more recently, Chromium. From this perspective, the switch made perfect sense. Engineers with top JavaScript skills could easily move between the Terminal and web products.

We’ve run every major version of Node.js in production since v0.8 and the upgrade process is so much simpler now. Switching to Node.js for that first web app was the right choice for us. We’re now using Node.js for more important projects, including, our flagship media site.

Along the way, I joined up with both the web and JavaScript technical communities at Bloomberg. We call these communities Guilds, and this is where I was able to watch our use of Node.js diversify and grow. We now use Node.js in ways I never would have expected.

We use it for desktop application development, web apps, networking tools, and back-end services.

We’ve expanded beyond our first projects with Node.js and are now rapidly increasing our use of TypeScript. We’ve ported millions of lines of JavaScript to TypeScript. The results are impressive, so much so that we are now contributing back to the TypeScript code base.

To summarize, we currently:

  • Use Node.js, Chromium, and V8 throughout the organization, and actively contribute to both V8 and Chromium, sponsoring such features as async / await and BigInt.
  • Participate in steering the direction of the JavaScript language as part of TC39, helping to advance new features, like Class Fields, Temporal, and Records & Tuples.
  • Participate in JavaScript’s amazing ecosystem as users and contributors to a wide variety of JavaScript frameworks and libraries like React Native, Rollup.js, TypeScript, Babel and Ioredis.

NodeConf EU 2019 Sponsorship and TypeScript Workshop

We are proud to sponsor NodeConf EU 2019. JavaScript and Node.js are important to us, and TypeScript is becoming so as well. As a major player in the JavaScript community, it just makes sense for us to support this important conference.

A couple of us will be hosting a TypeScript Workshop at NodeConf EU 2019 on Wednesday, November 13th from 14:00 to 15:30 (“How to Add Two Numbers in TypeScript”). Developers with any levels of TypeScript experience are welcome. We designed the exercises with a wide variety of experience levels in mind. Attendees should be able to go through the exercises with our step-by-step instructions. There are jumping-off points for those who are looking for more difficult challenges. We will also be available to help out those with questions. TypeScript’s typing system is actually “Turing Complete”. We’ll get to see that by the end of the workshop by using it for some basic arithmetic! We hope you share our enthusiasm for these terrific technologies and hope to see you there.

– Albert Lash

A huge thank you for all the help and input to put this article together:

  • Neil Kakkar
  • Robert Pamely
  • Joseph Mordetsky
  • Jason Williams
  • Robert Palmer
  • Andrew Paprocki
  • Chaim Haas
  • Kevin P. Fleming

keep in touch