Daniel Stenberg is a Swedish computer programmer who created one of the internet’s most important components: cURL, a tool that enables the transfer of data to and from servers using various protocols.
If you use the internet on any device — computer, phone, TV, smart appliance, car dashboard — chances are that cURL is making it possible. It runs on virtually every OS and has been installed over 10 billion times, making it one of the most widespread pieces of software ever written.
And it all stems from the ingenuity — and dedication — of one man.
Daniel Stenberg at a Glance
- Swedish-born Daniel Stenberg began programming with his brother and friends in 1985, teaching himself the dense and difficult 6510 Assembly language in order to make video games.
- After spending his adolescence in the amateur coding “demo scene”, Stenberg landed a job with IBM in 1991.
- He began experimenting with new operating systems and programming languages, and within a few years was creating his own languages and feature-rich software.
- Stenberg loved to chat with other coders on IRC, which eventually led to the creation of cURL in 1996.
- cURL radically simplified the transfer of data between user and web server, giving programmers an easy way to utilize and interact with websites via command line.
- In 2000, Stenberg released the library version of cURL, libcurl, which could be seamlessly integrated into other software.
- Within a couple of years, massive companies like Apple and Adobe were including libcurl with their software — and funding Stenberg’s continued development of the cURL project.
- Today, every major OS ships with cURL, and it’s relied upon by virtually every internet user worldwide.
The Life of Daniel Stenberg
Daniel Stenberg’s Early Life
Daniel Stenberg was born in 1970 in Huddinge, a suburb of Stockholm, Sweden. His early childhood was decidedly non-digital: his mother was an artist, his father worked in construction, and he himself was a devoted soccer player who loved math and the outdoors.
Stenberg’s first introduction to computers came when he was a teenager. His friend Kjell had a Commodore 64, and the two boys spent many hours flipping through Commodore 64 magazines and testing out the simple data sets and programs found in their pages.
Soon, Stenberg’s brother Björn took an interest in the C64 as well. In 1985, the two brothers pooled their savings to buy their own, and Stenberg immediately became hooked on programming it.
Stenberg started off with BASIC code, but when he learned that most computer games were programmed in 6510 Assembly, he teamed up with Kjell and Björn to master the complicated new language. He spent at least several hours a day studying and practicing it, yearning to gain enough proficiency to make his own games.
Join Our Community
Stenberg and the Demo Scene
Before long, the trio became immersed in the demo scene: a subculture of hackers and programmers who created their own small programs, called demos, and shared them amongst each other.
By 1988, they were an integral part of the Scandinavian demo scene, regularly attending large meetups and showing off their latest demos. These included a music editor, a music player, a racing game, and a shooter game.
When Stenberg was 19, he put his programming on hold to fulfill his year of mandatory military service. In 1991, after completing his service, he worked briefly as a substitute teacher and applied to university.
But when a friend offered him a job at IBM, he decided to take it — he could always go back to school, but the opportunity to work at such an important company was too good to pass up.
Stenberg’s Journey to cURL
At IBM, Stenberg was introduced to the Unix operating system and the C programming language, both of which he found revolutionary. He also gained access to many new programs and their source codes, including the feature-rich Emacs text editor.
But at home, Stenberg didn’t have Unix access. His home computer was an Amiga, which was more limited in its capabilities — and though there was an Amiga version of Emacs, it paled in comparison to the Unix version.
So Stenberg created his own customizable, programmable text editor: FrexxEd. It had its own programming language, FPL, and worked on both the Amiga and multiple Unix variants.
In 1993, Stenberg left IBM to work at Frontec Railway Systems, where he programmed railway temperature sensors and cameras. There, he was introduced to even more OSes, including Dell Unix and SunOS, as well as the IRC chat system.
Stenberg was highly active in various programming-related IRC channels, and soon began developing an IRC bot called Dancer. Dancer could be programmed with FPL and was able to automate various administrative tasks: display rules and announcements, manage users, perform calculations and more.
In 1996, Stenberg noticed that many people on his IRC channel discussed shopping and money, which gave him an idea for a new Dancer feature. He wanted the bot to display accurate currency exchange rates, but to do that, it would need to be able to download the current rates regularly from a website.
It seems like a simple task now, but at the time it was a convoluted undertaking, one that involved a complex series of commands that varied from OS to OS. For Stenberg’s new bot feature to work, he needed to simplify the process of transferring data to and from web servers.
Initially, Stenberg used an existing tool called httpget, which simplified command-line data transfer using the HTTP protocol. But httpget’s creator wasn’t interested in maintaining the project anymore, so he soon transferred ownership of httpget to Stenberg, who had been contributing patches and updates to the tool.
Stenberg began adding new features to httpget, starting with support for the GOPHER protocol and URLs. Now that it had expanded beyond HTTP, the tool needed a new name, so Stenberg renamed it urlget.
In 1998, after adding support for FTP downloads and uploads, Stenberg renamed the project one last time: cURL, meaning “see URL” or “client for URLs”. By this time, it had developed a sizeable following of programmers who now had a much simpler way of interacting with the rapidly-expanding internet.
The Birth of libcurl
cURL allowed programmers to use the command line to transfer data, but it was a standalone piece of software that couldn’t be easily integrated within programs themselves. To do that, it needed to take the form of a library: a collection of resources that could be included in a program’s code.
In 2000, Stenberg released libcurl, a free and open-source URL transfer library. Now, software developers could freely integrate cURL’s functions directly into their own programs, making for seamless use across multiple programming languages and much easier distribution.
libcurl was an immediate success: almost instantly, it was integrated into the PHP language, the ubiquitous code used to create dynamic web pages and web apps.
By this time, Stenberg had added support for even more protocols, including HTTPS, DICT and Telnet. And in 2001, his project truly hit the big time when Apple announced that cURL would be included as a core component of OS X.
Stenberg’s Profile Grows
Meanwhile, Stenberg’s life was changing in other ways — he got married, bought a house, and had a child. He was still working as an embedded systems consultant during the day, and at night he split his time between cURL and Rockbox, a custom firmware for MP3 players.
But as libcurl took off, new opportunities presented themselves to Stenberg. In 2005, the Internet Foundation in Sweden gave him a grant to work full-time on cURL for several months, and the following year Adobe did the same.
By 2008, Stenberg was working with the Internet Engineering Task Force, the group that defines and manages the technical standards for the entire internet. He helped them develop new specs for the HTTP protocol, cookies, and other basic components of the web.
In 2009, Stenberg quit his job and began working full-time for his own company, Haxx AB, alongside his brother Björn and his friend Linus. That year, he also received the Nordic Free Software Award for his work in free, open source software.
All the while, Stenberg continued his work on cURL, eventually drawing the attention of Mozilla. The company behind Firefox asked him to work for them on their networking team, and in 2014, he accepted their proposal.
Stenberg became a regular presenter at tech conferences, and in 2017 he was given the prestigious Polhem Prize, an award for innovation in tech, by the King of Sweden. The following year, he left Mozilla to resume full-time work on cURL.
Today, cURL is a standard component of every major operating system, and each of the world’s seven most valuable companies uses libcurl in their products. 22 car companies run cURL in their vehicles’ computers, and NASA relies on it to communicate with the Ingenuity helicopter on Mars.
Daniel Stenberg: The Internet’s Unsung Hero
Most internet users will never use cURL directly, but it runs behind the scenes on virtually every internet-connected device every single day — including ones that are literally out of this world.
It’s a scenario that Daniel Stenberg, when he first released his free and open source creation, could never possibly have seen coming.
But today, we know one thing for sure: without Stenberg’s efforts to simplify and universalize the transfer of data with cURL and libcurl, the internet as we know it wouldn’t exist.
Curl with Rust by Daniel Stenberg (Video)
"Amateurs hack systems, professionals hack people."
-- Bruce Schneier, a renown computer security professional