Nicolò Ribaudo
Highlights
Full profile
Career: 4
Maintainer and Developer
BabelJS
Remote
Talks & sessions: 13
Fine-tuning native ESM performance
20 min
TC39 is working on two proposals, import defer and export defer, whose goal is to allow developers to extract better performance from native ESM, both in the browser and on the server. Let's go together through how they work, and when and where you'll be able to use them!
Delivered once · latest 2026 · AmsterdamJS
AmsterdamJS · May 21, 2026 · Amsterdam · Presenter · In person
Source maps: how does the magic work?
25 min
Your app breaks. Users are reporting problems. Tests are failing. You look at your code, and it all seems correct at a first glance (you wrote it, how could it be anything other than perfect!). Luckily, we have a stack trace that is going to tell us where the problem is: in function `rB()`, file `cHuNk-h5tY7y.js`, line 1, column 2734942, in `rB(x=(y,!0)){return-c||x,[pH]}`. You remember writing exactly that code yesterday evening, right? Most JavaScript code nowadays goes through a myriad of tools from when it leaves our fingertips to when it actually runs in a browser: it gets transformed, compressed, ripped apart, and put back together in pieces upside down. All these tools bring great benefits, but at a cost: debugging becomes incredibly hard. The good news? We have a solution for this: source maps! And they are becoming even better. Source maps are a set of instructions that the various build tools generate to tell the debugging tools how to undo the transformations that the code went through, so that we can pretend we are debugging the code we wrote rather than the code that is running. Their capabilities have been stagnant for many years, but recently TC39 started a group with the goal of standardizing and expanding what they are capable of. Let’s learn together how they work, and what’s coming next!
Delivered 2x · latest 2025 · SquiggleConf, JSDC Taiwan
SquiggleConf · Sep 19, 2025 · Boston, United States · Presenter · In person
JSDC Taiwan · Dec 21, 2024 · Presenter · Virtual
Teaching your editor a new programming language
QueerJS · Oct 15, 2024 · Paris, France · Presenter · In person
What's coming next to ECMAScript?
30 min
JavaScript is continuously evolving, with new features coming every year. Some say that it happens to fast, but everybody wishes some specific proposal would be implemented by browser right now. What new features can we use in now, and what can we expect soon? What are some more long-term proposed features that will have a potential huge impact of the ecosystem? We'll go together through these questions, while learning at the same time how JavaScript gets standardized!
Delivered 2x · latest 2024 · JSConf BP, RomaJS
JSConf BP · Jun 27, 2024 · Budapest, Hungary · Presenter · In person
Modern JavaScript application are built on top of an immense stack of tools: transpilers, bundlers, minifiers… The code we write goes through multiple transforms before being sent to the browser. Yet, Source Maps let us debug our application and decode errors as if we were directly running our original source files. How are they able to undo any transformation applied to your code? Can they actually do it, or is there something that they cannot represent? How do different tools decide what to encode to and decode from source maps? We will explore together how the source maps format works and which data they encode, as well as a new standardization effort to align all tools and expand what source maps are capable of.
Delivered once · latest 2024 · JSHeroes
JSHeroes · May 24, 2024 · Cluj-Napoca, Romaina · In person
Migrating Babel from CommonJS to ESM
25 min
CommonJS has been the go-to module system for Node.js for more than a decade, but the ecosystem is slowly moving to ECMAScript Modules. CommonJS and ESM have different features, and they are not fully compatible with each other: should existing libraries migrate to ESM? Should they keep using ESM forever? Are JavaScript tools ready for native ESM? Babel is one of the most used packages on npm, and we have been slowly working to move away from CommonJS. What obstacles have we found? How did we overcome them? What have we learned in the process? How do we ensure a smooth transition for our users?
Delivered 2x · latest 2023 · NodeConf EU, jsday
NodeConf EU · Nov 5, 2023 · Kilkenny, Ireland · Presenter
jsday · Apr 12, 2023 · Verona, Italy · Presenter
Past and future of server-side runtimes
NodeConf EU · Nov 5, 2023 · Kilkenny, Ireland · Presenter
JavaScript Modules: Past, Present, and Future
30 min
For decades, JavaScript developers have relied on a multitude of module systems to organize and share code. But in 2015, ECMAScript finally introduced built-in standard semantics for modules, providing a long-awaited solution for the language. While ECMAScript modules have quickly become a popular format for writing code, most published code is still compiled to a single bundle or to a legacy module system. The TC39 committee, which designs the ECMAScript language, is actively exploring this design space: are there any missing functionalities compared to previous systems? Do JavaScript developers need any capabilities that the language does not currently provide? What problems do ECMAScript modules currently cause? This talk will walk you through the answers to those questions and show you current developments, giving a sneak peek at possible future modules features!
Delivered 2x · latest 2023 · Web Engines Hackfest, JSHeroes
Web Engines Hackfest · Jun 5, 2023 · A Coruña, Spain · Presenter · In person
JSHeroes · May 19, 2023 · Cluj-Napoca, Romania · Presenter · In person
Synchronously call your asynchronous functions
BeJS · May 12, 2023 · Brussels, Belgium · Presenter · In person
25 min
Immutability and deep equality. Two keywords that were initially relegated to strict functional programming environments, but have been popularized across the JavaScript community thanks to libraries like Immutable.js, Immer and React. 'Records & Tuples' is a new ECMAScript proposal that brings two new immutable primitives to the language: what do they look like, what capabilities do they bring, and when will you finally be able to use them?
Delivered once · latest 2022 · jsday
jsday · Apr 22, 2022 · Verona, Italy · Presenter
30 min
Development is a creative act. However, we spend a lot of time cleaning up our code, refactoring and doing other repetitive tasks. What if we could automate it? This talk will show an alternative way of using Babel: usually, everyone thinks about it as a modern-to-old ECMAScript compiler, which also supports a few additional syntaxes like JSX or types. But what if it wasn't just that? Babel is a general-purpose ECMAScript code analyzer and transformer. It could be used to create linters, minifiers, static analysis in IDEs, or... codemods! How can we leverage the Babel APIs to efficiently refactor hundreds of files, without manually doing the same thing over and over?
Delivered once · latest 2020 · HolyJS Moscow
HolyJS Moscow · Nov 26, 2020 · Presenter · Virtual
30 min
More and more developers are using Babel in their build process, but do you know how it internally works? We will first briefly discuss the different parts that compose a JavaScript to JavaScript compiler, and how it tries to reduce the complexity of implementing a custom code transformer: it's not just a search & replace based on regular expressions! Then, we will learn how Babel implements support for new ECMAScript proposals, by going through a plugin which will transform future syntax to old ECMAScript. In order to code it correctly, we will need to understand the proposed semantics, and we will discuss the trade-offs between specification compliance and output complexity.
Delivered 3x · latest 2019 · D2 Forun, JavaScript Community Day, HolyJS Moscow
D2 Forun · Nov 30, 2019 · Hangzhou, China · Presenter · In person
JavaScript Community Day · Nov 22, 2019 · Milan, Italy · Presenter · In person
HolyJS Moscow · Nov 9, 2019 · Moscow, Russia · Presenter · In person
Publications: 1
Education: 2
Università degli Studi di Torino
Mathematics
Politecnico di Torino
BSc, Mathematics
Languages: 3
Also find Nicolò Ribaudo on…
What else would you like to see here?
Missing something? Tell us what would make this page more useful.
Sign in to share an idea.