In June 2018, Ryan Dahl took the stage at JSConf EU in Berlin, the largest nonprofit JavaScript conference in the world. Despite it being a high-profile event (and the fact that the majority of the 1,500 conference attendees had filed into this particular warehouse just to see him), Dahl wore a loose-fitting black T-shirt and jeans and kept things casual. “So, I kinda wanted to give a different talk about some other stuff, but that wasn’t ready, so this is kind of a make-up talk,” he began.
Dahl seemed nervous. Given what he was about to do, nerves made sense. Nine years earlier, on this stage, Dahl had introduced an embryonic JavaScript runtime platform, a free, open-source environment for JavaScript programming. This platform, he had announced, was faster and simpler than anything in use. But, most important, historically JavaScript had only been used for a website or app’s design, or “front end.” This platform allowed developers to use JavaScript to build a website or web app’s functionality, or “back end,” too, unifying web development into a single programming language. The platform was called Node.js, and it would establish JavaScript as the dominant coding language for the web, today used by 98 percent of websites.
Between the time he’d debuted Node in 2009 and his return to the conference stage in 2018, it wasn’t just the platform that had evolved (thanks to his contributions, and those of hundreds of global open-source collaborators); Node had also transformed Dahl. He’d become a household name among the Hacker News and TechCrunch set. Now, Dahl had returned to Berlin to tear his former creation apart.
“It’s been some years since Node came out,” he started. “And it’s kind of stabilized, and…it’s a thing,” he began noncommittally. “And it’s kind of going into this…direction,” a scowl coming across his face. “So I thought I’d kind of look back on it, and tell you what I think about…,” a pause, “…Node.” Dahl offered a 30-second Node primer: “My goal was really around doing event-driven I/O in JavaScript, and that was important in 2009 for getting server-side JavaScript off the ground. JavaScript is single threaded, that allowed Node to succeed”—before launching into a 16-minute litany of regrets, kicked off with a slide that read, “At times Node is like nails on a chalkboard to me. It could have been so much nicer.”
The list included the fact that Node has basically “zero security.” It took to task Node’s original outdated Build System, and it highlighted the complicated packaging of code modules by NPM, the Node Package Manager. And by “so much nicer,” Dahl meant easier to use, more elegantly designed. So as to avoid coming off as a troll, and from a place of genuine affection for his creation and its impact, Dahl sprinkled in praise: “I think Node is quite nice. JavaScript is really quite nice.” He also called out the tremendous effort from Node’s community. Most of all, he touted the ways Node, in creating a runtime environment that allowed web developers to code their full stack in JavaScript, had helped reinforce JavaScript’s position as “the language of the web.”
He saved his toughest criticism for himself. Dahl apologized to his audience, with a pained look, for decisions that he said “cannot be corrected now, because there’s just so much software that uses it.” There were so many layers of code, and so many users of his platform—hundreds of whom were in this room—watching him pick apart the platform that helped make JavaScript the most commonly used programming language for all developers—web or otherwise—for nearly a decade.
In this act, Dahl was joining a cadre of artists and inventors, like Willa Cather, who implored in the foreword of a reprint of her first novel for readers to consider the book a historical artifact of an early attempt, not a representation of her current artistic merits. Or the godfather of conceptual art, John Baldessari, who burned 100 of his early paintings and baked the ashes into cookies. Dahl, without the ability to cremate his digital creation, was, in effect, asking everyone in the room, and the half a million that would watch his talk online, to relegate Node to a pile of his “early work.”
Then, with the air of someone who’s gotten a weight off his chest: “I thought it was shitty to come up in front of people and complain about stuff without giving some sort of solution,” he said, introducing a prototype he’d hacked together over the last month. “You might want to check out Deno; Deno is a secure runtime on V8.” This new platform, he explained, would be a corrective to Node. A JavaScript runtime, but faster, more secure, more elegant—and, if it eventually did everything he mapped out, it might just supplant Node as the runtime of choice for the world’s coding language of choice. Dahl was launching his next era as only software engineers can, performing the oratory equivalent of iterating on his code in real time, calling out the bugs, talking about preserving elements he liked, and describing how he’d rebuild the rest.
“I think I’m mildly happy with it so far,” Dahl offered. He then quickly thanked the audience and walked off stage with three minutes left in his allotted time.
“I think I’m mildly happy with it so far.”
ryan dahl, introducing deno in 2018
Dahl’s mother, a math professor at a San Diego community college, had always been a technophile. “Super early, we had a computer, and she got me a book on how to program BASIC. I was just very much exposed to computers at an earlier age than other folks,” says Dahl. Using his mom’s Apple IIc, Dahl mastered BASIC’s basics, before deciding he wanted to run the Linux operating system. He saved $300 from a job as a movie theater projectionist, and bought a used PC. The sparse early-’90s coding environment felt exciting, like a puzzle to solve. “It was a very hands-on learning experience where I knew nothing; there’s nobody there to tell you anything. It was just kind of actually physically smashing the keyboard until you got it to work,” he says.
Dahl preferred learning by doing, and found high school understimulating: “I barely graduated. It seemed stupid and pointless,” Dahl says, before adding, “I’m sure I was just an asshole 17-year-old back then.” But in Dahl’s senior year of high school, a new peer-to-peer file-sharing application came out that let users upload and download audio files. Napster only worked on the Windows operating system, and Dahl, instead of accepting this status quo, decided it deserved a home on his favorite operating system, Linux, as well. So he built one called gnap, compatible with Linux’s desktop environment, Gnome. The first Napster clone to arrive on the scene, gnap earned Dahl his first brush with viral success, and coverage on a proto-Hacker News tech blog called Slashdot. Here was a way that he could have real impact, Dahl thought.
After graduating (he squeaked by with a C average), and without the grades for a university, Dahl enrolled in math classes at his mother’s community college. In a more technical environment—one of his own choosing—he thrived. After two years of straight A’s, he transferred to the University of California San Diego, then continued on to a PhD in math at the University of Rochester in upstate New York. Three years in, Dahl experienced a familiar feeling, like the things that were being asked of him weren’t meaningful, or even particularly useful. “Math just didn’t feel necessarily connected to reality. There’s just all of these structures and abstractions. At some point you’re just like, ‘Yeah, I want to do something that is actually connected to reality.’” So Dahl dropped out. Within weeks, he and his girlfriend were on a one-way flight to Chile.
Seeking sunny and quaint conditions, they landed on the coast in Valparaíso. Unfortunately, they had arrived in June, winter in the Southern Hemisphere.
With only grad student savings, Dahl and his girlfriend booked a shared room in a hostel, a temporary solution, they reasoned, until they found jobs teaching English. If Dahl was looking for something real after years of academic abstractions, he’d found it. “There was no heat. There was mold everywhere. There was a mattress on the floor with some dirty bed sheets,” he remembers. “It was like, ‘What are we doing here? This is awful.’”
They lasted a few months before relocating to Buenos Aires. By then, skeptical of his teaching prospects given his questionable credentials (“I paid like $100 for some sketchy online English teacher certificate”), Dahl turned to Craigslist for work. One ad caught his eye, mostly because it had the word snowboarding in the title: a winter sports gear company needed help building their e-commerce site. The gig was not necessarily Dahl’s dream project, but, “I had no money. I was pretty eager to help him out.”
Even though it’d been years since he’d spent meaningful time coding, Dahl’s high school hacking gave him a solid foundation (his years studying math didn’t hurt, either). Building their site helped Dahl feel like he’d again found a tangible problem to solve. That contract turned into another, and then another through referrals. This was 2007. Dahl and his girlfriend were early digital nomads, taking on remote work as they moved around South America, and eventually to her home country of Germany. With each project, Dahl was exposed to new layers of the coding stack: “I started doing, basically, front-end development with this snowboarding website, and, kind of slowly, it became, ‘Okay, now I’m working on the framework itself, and now I’m thinking about the web server itself. Now I’m thinking about non-blocking I/O.’” Just like he had in high school with his Apple IIc, Dahl figured it out, using online resources and inventing solutions of his own.
One morning in the Cologne apartment he shared with his girlfriend, Dahl woke up to a life-changing email. A San Francisco-based cloud application management platform, Engine Yard, reached out via referral to offer Dahl a $60,000 contract to work on their support team, the most lucrative job he’d ever had. That was the moment Dahl stopped conceiving of software engineering just as a means of funding his itinerant lifestyle. This could be his lifestyle.
“When Chrome came out, it was just very clear. If I had not done this, somebody else would’ve discovered this.”
ryan dahl
Engine Yard’s engineering needs were the most complex Dahl had encountered. They asked him to build a plugin using non-blocking, or asynchronous operations, a new time-saving method that allowed software to keep executing JavaScript operations without waiting for the non-JavaScript operations in the code to complete. Months after this job, in September 2008, Google released Chrome, with a new JavaScript engine called V8. Still with non-blocking operations on the mind, something clicked. If he could pair Chrome’s new JavaScript engine with non-blocking operations, he could create a platform where JavaScript could handle back-end development as well as front end, supplanting developer favorite Ruby on Rails on the back-end and becoming a full-stack language. “When Chrome came out,” says Dahl, “it was just very clear. If I had not done this, somebody else would’ve discovered this.”
The “this” Dahl is referring to, of course, is Node.js. And thanks to his $60,000 from Engine Yard, Dahl had a little runway to build it—hacking it together in daily eight-hour coding sprints over six months in a WiFi-less Starbucks on the corner of Rudolfplatz in Cologne. “I think in a very real sense, I was thinking about the right stuff at the right time. I saw this and I was just like, ‘I must implement this now.’”
The story of Node is the stuff of Silicon Valley legend, one of those paradigm-shifting moments (at least in the world of JavaScript coding). It was late 2009 and Dahl had just heard about a new JavaScript conference coming to Europe. Buoyed by his prototype’s success on the nascent code-sharing site GitHub (Dahl says he was one of the first 100 people on GitHub, so good traction meant tens of users), Dahl reached out to JSConf EU’s organizer, asking for a speaking slot.
Dahl debuted Node in front of an audience of 150 in Berlin in November 2009, earning a standing ovation—a conference first. The talk went viral in JavaScript circles, and within months, those tens of users had grown to tens of thousands. Users flocked to Node not just because it made it possible to use JavaScript in a new way, but also because it was faster, more elegant, and easier to use than anything else—and it made developers’ websites and web apps that much faster as well.
After toiling on his own in a coffee shop, there was something about seeing the live JSConf crowd’s response that made Dahl realize that, after years of vagabonding, he was ready for stability and community. In the weeks after his talk, a handful of San Francisco-based startups reached out. He accepted an offer from a cloud-hosting company called Joyent; their expertise seemed most aligned with his, and more important, they wanted him to develop Node in-house.
In the process of hiring Dahl, Joyent gained control of Node’s business interests, which, for an open-source project meant, “I gave them the website; I transferred the credentials to them. We changed all of the copyrights in the source code from copyright Ryan Dahl to copyright Joyent. I gave them the ability to apply for the trademark,” says Dahl. As for what he got out of this acqui-hire: “I got paid out very early and it super de-risked the situation for me.”
In the months after joining Joyent, Node exploded. Tim Becker, a friend of Dahl’s from JavaScript circles, remembers the moment he realized what a big deal Node was becoming. During a 2011 JavaScript meetup in his hometown of Cologne, Becker sent a casual message to Dahl saying it might be fun to host a Node-specific conference in town. “It was really just a spontaneous idea. And he ended up tweeting it, although we weren’t even ready yet,” Becker says. By the end of the meetup, Becker had 10 emails offering to sponsor their conference. “Everybody wanted to be involved in Node,” he says.
But Dahl quickly realized stability came at a price. Despite Node (and Dahl) becoming an increasingly big deal, Joyent wanted to keep overhead low. They wouldn’t allow Dahl to hire engineers to help keep pace with Node’s exploding popularity, seeing Node more as a nice-to-have marketing tool for their existing cloud project. In order to keep up, Dahl moved fast. Critical decisions that would intractably shape the platform had to be made without second-guessing. Bert Belder, an early Node collaborator who built Libuv, a Microsoft-compatible version of Node, remembers Dahl at that time being “a bit uncompromising. He had the tendency to sometimes very aggressively remove things from Node.” One of those things was Promises, a piece of software built to make asynchronous operations smoother. Dahl found its design inelegant. “The next day, an enormous amount of code was ripped out,” remembers Belder, “and everybody had to rewrite their Node.js software because, you know, now everything worked differently.”
Then there was the matter of his public profile. Dahl had always relished his anonymity. It allowed him to blog and tweet freely, to make the occasional programming screw-up, and subsequent fix, without backlash. But as Node’s profile rose, so did his. Already predisposed to irreverence, and with a degree of naivete about his newfound celebrity, Dahl was dismayed that when he wrote a blog post titled, “I hate almost all software,” a Hacker News thread about the post garnered hundreds of comments. Close friends like Isaac Schleuter, the mind behind NPM, could see the backlash coming: “I saw that go down and I was like, ‘Oh God, Ryan, what are you doing to yourself?’”
But what bothered Dahl more than any attack (and what he perhaps should’ve anticipated, given his own vocal critiques) was when users took Node itself to task. “I remember one post in particular called ‘Node.js a cancer.’ At the time, I was just like, ‘Oh no, I’ve made a mistake somewhere,’” says Dahl. “It affected me emotionally. I was just trying to make some technology, and I guess wasn’t super-prepared for this thing to be as big as it was. I didn’t want to be the face of it.’” So Dahl stopped posting and weighing in, and in late 2013, he deactivated his Twitter.
By early 2014, Dahl was ready for a change. After eight years, he’d just broken up with his girlfriend, and startup fatigue had set in. It was the strain of managing such a high-profile, complex project, but he also felt like he’d done what he’d set out to do. Node had made the impact he’d hoped for—and with most of the ongoing development happening in open-source communities, Dahl felt it no longer needed him. He felt ready to create something new. So Dahl put in his notice, booked a flight to New York City, and walked away from Node.
“There’s nothing more eye-opening than when you go back and look at your own code and you’re just like, ‘Oh my God, this is terrible.’”
ryan dahl
On a late summer day in 2017, Dahl called Belder from his office in Google’s Manhattan campus. He had a proposition. After three years of toying around with startup ideas, Dahl had accepted a role at Google Brain, the team developing Google’s Machine Learning engine, TensorFlow. Until now, TensorFlow had mostly been built in Python, but a new project called deeplearn.js was making it possible to build models in JavaScript, Dahl’s language of choice. “Let’s take TensorFlow, and bind it to Node and make a kind of better JavaScript machine-learning framework,” Dahl told Belder. The opportunity seemed obvious to Belder. “In the back of my mind there is always like, okay, maybe this could be something big,” he remembers. Within weeks, Belder quit his job as IBM’s internal Node.js expert.
At first, diving into Node felt like a homecoming, but soon Dahl was looking upon his creation with five years’ worth of new skills, insights and awareness of all the progress made in coding globally. “We quickly realized that there were all these problems with Node. Man, there’s nothing more eye-opening than when you go back and look at your own code and you’re just like, ‘Oh my God, this is terrible.’” Dahl couldn’t stand the thought of his name being attached to something he now saw as so…amateur, so flawed. He briefly entertained the idea of trying to fix the problems from within, but quickly concluded that the platform’s problems were too fundamental, and the open-source leadership too decentralized, to ever be able to resolve the issues. Instead, he decided to build something new that would clear his name and do what Node couldn’t. A few months later, in June 2018, having recently quit his job at Google, Dahl took the stage at JSConf EU in Berlin to introduce Deno.
When I speak with Dahl in late 2022, I notice another subtle way he’s distancing himself from his past. The name of his new company, pronounced during his 2018 JSConf presentation ‘DEH-NO,’ has shifted to the simpler, funner, arguably more elegant ‘DEE-NO.’ “It is the proper English pronunciation of those letters,” Dahl says, “and we liked the dinosaur association.”
The platform behind the brontosaurus branding is now a far cry from the barely functional demo of 2018. It’s faster than Node, built on Rust, a newer, more secure programming language. “We’re trying to just generally take advantage of the fact that we’re in the future now, and things are great,” Dahl says. It enables the use of TypeScript, simplified bundles of JavaScript code, right out of the box. And whereas Node had “zero security”—“when you install an NPM module, this is essentially running untrusted code from random people on the internet on your computer”—Deno is built to operate within the secure sandbox of a web browser.
Deno’s biggest innovation is starting a migration toward edge computing, which Dahl sees as the next big shift in web development. “Particularly serverless at edge, that is, running your server everywhere all at once in every region around the world,” he says, “that’s where I see Deno moving us in five years.” Deno’s version of edge computing, what it calls an isolate cloud, runs little bits of JavaScript in data centers all around the world. This helps cut down the time it takes to reach a data center by allowing programs to get responses from the data center closest to where the requests are being made.
Dahl is rewriting the way he works, too. He didn’t want to be in the same position he’d been in with Node, unable to hire as many engineers as he needed, so this time, he opted for funding in addition to open-sourcing, a decision that led him to Mike Vernal and Lauren Reeder, partners at Sequoia Capital, in January 2022. Vernal found Dahl endearing on an early phone call. “He felt a little bit like someone who is set up on a date they really didn’t want to go on. And so they’re like, ‘Okay, let’s finish this thing off and then let me get back to work,’” says Vernal. “You could tell he wanted to go back to building the thing that he wanted to build. And he was very transparent about that, which, in a weird way, I liked.”
Today Deno is based in New York City, has 15 full-time employees, and is in the process of hiring 10 more, mostly engineers. Sequoia led the company’s Series A, announced in June 2022. The platform has nearly 100,000 developers using it every week, it’s one of the top 50 projects on GitHub of all time and more and more enterprises, like Netlify and Slack, are using its enterprise offering, Deno Deploy, to build their web apps and websites. Becker credits some of the success to Dahl directly: “There are enough people who are convinced by him and who, just because of his involvement, are willing to dive right into Deno.”
Dahl hopes to do a push on Deno’s general release by summer of 2023 to bring in more individual users—the people Node currently serves. His urgency has only increased as competitors have debuted. But he sees others in the space as evidence that he’s on to something, an incentive for his team to stay focused. “Having a little competition on the performance side means that I can very much justify putting effort into that, and performance is what I would love to do day in and day out,” says Dahl.
“Having a little competition on the performance side means that I can very much justify putting effort into that, and performance is what I would love to do day in and day out.”
ryan dahl
With Deno, Dahl isn’t so much trying to fix the status quo as build a new one. “When we launched Deno in 2018, Node was an industry standard that everybody in that conference room had used professionally for many years,” Dahl says. “I think a lot of those things, Node’s bugs and flaws, were just taken as a given. Like, ‘It just works this way.’ And I hope that hearing how it ought to have been done, and things that could be done better, was really an eye opener.”
Just like when he noticed an opportunity to build Napster on Linux, or when he realized that Chrome’s V8 engine could forever transform the way people use JavaScript, Dahl is primed to keep reinventing. And he attributes this fortunate position to timing, more than a little kismet and the perspective he gained as the main mind behind Node. “I don’t know if obligation is the right word, but I have the right vantage point to be able to say, ‘Yeah, actually we can just do this differently.’”
He cares so much about doing web development differently because he sees it as the “medium of human information.” If he can make web development easier, Dahl says, “in particular on the server side, the area that I have ideas in and influence over, then we can make things faster. And I think sometimes making things faster does actually change the nature of what people can do. Faster means smoother online experiences, better real-time communications. Faster means more people interacting simultaneously online. There’s a vast opportunity to have a real impact.” Until then, he’ll keep refining. “Everything’s a work in progress,” he tells me toward the end of our call. He’s polite, but eager to get off Zoom and back to building what he hopes won’t be another important yet flawed early work, but instead, a truly great one.