Podcast Summary: Software Engineering Daily – Episode on RxJS with Ben Lesh
Podcast Information:
- Title: Software Engineering Daily
- Host/Author: Software Engineering Daily
- Description: Technical interviews about software topics.
- Episode: RxJS with Ben Lesh
- Release Date: July 29, 2025
Introduction
In this episode of Software Engineering Daily, host Josh Goldberg engages in an insightful conversation with Ben Lesh, the creator of RxJS, a prominent library in the JavaScript ecosystem for handling asynchronous data streams. The discussion delves into Ben’s journey into software engineering, the evolution of RxJS, its applications, and its future within the web platform.
Ben Lesh’s Path into Engineering
Ben Lesh shares his unconventional path into software development, illustrating his transition from art to programming:
-
Early Interest and Education:
- Ben began with basic programming during his childhood but initially pursued art, attending art school for three years before dropping out to work in graphic design at Ohio State University.
-
Learning to Code:
- Curiosity about website development led him to self-teach HTML and JavaScript. Without the vast resources available today, Ben relied on books from Barnes and Noble and hands-on practice with his compact Presario laptop.
-
First Programming Job:
- Through persistence, Ben secured his first programming gig by underselling himself, offering to work for $10 an hour to prove his capabilities. His honesty and willingness to learn earned him the position, which evolved into further opportunities in programming.
Notable Quote:
“I really think I can do what you need done and I'm willing to learn and I'll work for $10 an hour. So if I work for two days and you don't like me, then you've only paid me for what you're going to pay somebody else for one hour.”
— Ben Lesh [03:24]
Transition to RxJS and JavaScript Development
Ben details his shift from Visual Basic and .NET development to JavaScript, sparked by his role at a company focused on pharmaceutical robotics:
-
Embracing JavaScript:
- Despite prevailing skepticism about JavaScript's viability, Ben took on the challenge of developing a feature-rich client application using Angular. This experience deepened his engagement with JavaScript and led him to contribute actively on Stack Overflow, where his expertise began to gain recognition.
-
Joining Netflix and Discovering RxJS:
- His contributions on Stack Overflow caught the attention of Netflix, leading to his recruitment. At Netflix, Ben was introduced to RxJS, which he then utilized to enhance real-time streaming dashboards, particularly improving memory management for complex data visualizations.
Notable Quote:
“So since I had a lot of open source experience, I was approached by Jafar Hussain ... and they said, hey, we want to talk to you. And they said they wanted me to work on RxJS to rewrite it.”
— Ben Lesh [05:08]
Understanding RxJS and Observables
The conversation shifts to the core of RxJS—Observables—and their distinction from traditional Iterables:
- Iterables vs. Observables:
- Iterables are pull-based, where the consumer requests data using constructs like
for...ofloops. - Observables are push-based, where the producer emits data to subscribers, ideal for handling events and asynchronous data streams.
- Iterables are pull-based, where the consumer requests data using constructs like
Notable Quote:
“Instead of you, the producer saying, oh, or the consumer saying, I'm gonna do something, I'm ready, give me the next value, you're saying, I'm waiting for you to give me a value and I will do something with it when you give it to me.”
— Ben Lesh [14:51]
Use Cases and Advantages of RxJS
Ben elaborates on scenarios where RxJS excels, emphasizing its ability to handle multiple values over time and facilitate complex event coordination:
-
Handling Multiple Values:
- RxJS is ideal for scenarios involving streams of data, such as user inputs, web requests, and real-time updates.
-
Cancellation and Resource Management:
- Unlike Promises, Observables support cancellation, allowing developers to abort ongoing operations gracefully without the overhead of managing multiple states or handling unwanted responses.
Notable Quote:
“Observables are good candidates for anything where you get more than one value or maybe no values, synchronous or asynchronous, it doesn't matter.”
— Ben Lesh [23:47]
Future of RxJS and Standardization
The discussion moves towards the future integration of Observables into the web platform and the ongoing evolution of RxJS:
-
Standardization Efforts:
- Observables are being standardized through the W3C, aiming to integrate them directly into browsers. This includes additions like the
whenmethod for event targets, enabling native support for Observables in handling events.
- Observables are being standardized through the W3C, aiming to integrate them directly into browsers. This includes additions like the
-
RxJS Evolution:
- Ben discusses plans for RxJS version 8, focusing on aligning with the standardized Observables and reducing the library's bundle size. The transition aims to make RxJS a thin wrapper around the platform’s native Observables, ensuring compatibility and efficiency.
-
Community and Maintenance:
- While RxJS has a vast array of operators, Ben expresses a desire to streamline the library, retaining only the most essential operators. He highlights the importance of community contributions in identifying and maintaining valuable features.
Notable Quote:
“RxJS is probably going to be kind of in the same path [as Lodash], which is fine. It's great. I'm happy to relinquish control of that to ... there’s no reason that Ben Lesh ... should be the arbiter of everyone's favorite async push based type.”
— Ben Lesh [38:27]
Challenges and Best Practices
Ben addresses common challenges developers face with RxJS, such as the complexity of asynchronous programming and misuse of the library for synchronous tasks:
-
Complexity of Async Programming:
- Asynchronous programming inherently introduces complexity, and RxJS simplifies it to an extent but can lead to intricate and hard-to-maintain code if not used judiciously.
-
Misuse of RxJS:
- Ben cautions against wrapping synchronous operations in Observables unnecessarily, advocating for the appropriate use of the library to avoid bloated code and performance issues.
Notable Quote:
“RXJs does have a bad name to some folks. And the reason is honestly, async programming is really hard.”
— Ben Lesh [22:15]
Personal Insights and Artistic Endeavors
Towards the end of the interview, Ben shares his personal side, discussing his artistic pursuits and how they intersect with his technical work:
- Artistic Expression:
- Despite his deep involvement in software engineering, Ben continues to engage in art, finding parallels between painting and coding in terms of creativity and problem-solving.
Notable Quote:
“The thing about it is that they both kind of do the same thing. You're building something from scratch... You're problem solving effectively in order to produce something that other people can enjoy.”
— Ben Lesh [48:18]
Closing Remarks
The episode concludes with Ben providing contact information for listeners interested in learning more or reaching out:
- Connect with Ben Lesh:
- Twitter: @Ben_Lesh
- Bluesky: BenLeschBSGuy
Ben emphasizes his willingness to engage with the community and assist others through platforms like GitHub.
Notable Quote:
“Feel free to ask me questions. I'm always, I'm always. I try to be helpful with people.”
— Ben Lesh [49:18]
Conclusion This episode offers a comprehensive exploration of RxJS through the lens of its creator, Ben Lesh. Listeners gain valuable insights into the library's foundational concepts, practical applications, and future trajectory within the evolving web platform. Additionally, Ben's personal anecdotes provide a relatable glimpse into the life of an influential open-source maintainer.
For those interested in deepening their understanding of RxJS or exploring its potential in their projects, this conversation serves as both an informative and inspiring resource.
