Hi! Tell us about who you are and what you do
My name is Daniel Stenberg. I am a Swedish software developer. Mostly known for being the founder and lead developer of the curl project. I work full-time on Open Source from my home office.
What is your hardware setup?
My hardware and office setup is focused on my curl work. I develop software as my primary thing. I run two 27-inch screens attached to my desktop PC as my primary workhorse. I have some additional computers around for when my desktop is not enough. I run Debian Linux on my machines when I get to choose, but I have some other alternatives for when those are needed.
I have been working from home exclusively for over nine years now. I do Open Source development and the occasional live stream and webinar from this place. I spend all my work days here and often a few additional spare time hours later. I never game.
My home office is on the upper floor of my house in a southern suburb of Stockholm, Sweden.
The desk is a 300cm wide, 60cm deep homemade creation, designed to fit within the doors in the wall immediately next to the table on both sides. My original idea was to leave space to allow more than one person to work at it.
Office overview
A - Here are boxes from recent purchases and gifts that arrived. Not really for my work benefit, but good to keep it around for a while before recycling in case I need to return stuff or similar.
B - This is the new development machine that I was preparing to switch to and use as my main driver “any day now.” It is a PC running a recent Intel CPU and Debian Unstable Linux, with a fast SSD and fast memory. Meant to compile fast. I have since switched it with the machine in E.
C - An old loudspeaker from a long time ago for when I want sound. I often just use headphones (to save my family from my sounds and let the noise canceling save me from my family’s sounds) so this is not used terribly much. My wireless headphones (Bose Quiet Comfort 35) are not in this photo.
D - cable mess. I counted 29 used power plugs a while ago. I have a plan to do something to hide this better, but that has not materialized yet, obviously.
E - My old trusted old development machine. Runs Debian Unstable, with two 27 inch 4K screens. Nowadays, switched with the (A) machine.
F - backpacks. One for short stay-over trips and one I use for day trips when I do talks etc. They usually should not just be out on the floor like this, but when I took this photo, I had not done my job right.
G - my work laptop. It’s a 14-inch Lenovo 540s running Debian Unstable. I never work a lot from a laptop but when I do this is my machine. It is light enough to be easy to bring with me wherever I like. Not very powerful.
H - my headset. A light Sennheiser set with a cable for meetings, talks, webinars etc.
I - A USB hub to provide a set of extra USB ports for when the ones in the PC are not enough or not close enough.
J - Mechanical keyboard with Cherry MX Red switches. I average at some 8 million key presses per year.
K - USB charger. A micro USB, USB-C and my Fitbit cables are on the table. Next to that is my ethernet to USB “dongle,” as one of my laptops doesn’t have an RJ45.
L - Two extra computers: this is a Lenovo 13 on top that runs Windows, which I use for video conferencing and the like when those glitch, or work suboptimally on Linux. Underneath is one of my Mac Minis I use for curl development when I need to work on macOS specific issues. This is the M1 version. I also have an x86 version, but that is not in this picture.
M - Extra temp screen and keyboard. Right now, this set is attached to computer (B) but I also use it for the ones in (L) when necessary. Depending on work.
N - Led light, for when I need extra bright lighting, perhaps when doing video conferences or streaming. (A gift from GitHub)
O - Kid drawings with curl theme. To keep my spirits up! The left one is from my daughter from many years back, and the right one is a more recent one from a friend’s daughter.
P - I have three of these spotlights to provide pleasant light during the dark hours. The two ceiling windows do provide adequate and rather nice light for the bright hours, but I live in Sweden and we have extended periods of darkness during winter.
Q - GitHub coasters. I need to put my coffee cup on something!
Extras explained
A - art work. A gift from curl’s 20th birthday. It features 20 * 365 small lines for everyday curl had existed, but with a twitch: they also form the big letter ‘c’ in a kind of subtle way.
B - a wooden robot that can be modified to stand or sit in different positions.
C - a GitHub star logo led thing. Powered by USB and controlled with the little remote that is on the table next to it. It can be set to different colors and numerous different light patterns. From mildly disturbing to highly annoying.
D - A wooden 3d puzzle thing in its solved shape. A gift from GitHub.
E - My Polhem Prize award. A gold medal. But in this picture there are two old chocolate fake Polhem Prize awards lying on top of, hiding the real medal.
F - A “korpen” medal I received a few years ago when my team won a floorball tournament. Gold-colored plastic.
And what are the favorite items in your workspace?
My gold medal award from the Polhem Prize. I keep it on my desk to remind me and keep me happy. I’m a pragmatic and my things are generally in place and in use for their practical purposes, not so much for their aesthetics. My workspace items are there to help me be productive in what I do during my time at the desk.
What is your software setup?
I run Debian Linux on most of my computers. On Linux, I prefer using KDE/Plasma on the desktop. On the desktop, I run Emacs for coding and development, I use Konsole as terminal and I use make, C compilers and gdb a lot. Old style development I guess you would call it. I use Firefox for browsing.
What are your favorite programming or scripting languages?
Most of my programming is done with C (not C++ if I have a say). The main projects I maintain are written in C. But when I need to hack something quick together or perhaps parse a lot of text, I like doing such things in Perl. Or when even simpler: in shell scripts.
Is there anything you are missing in your setup?
I have thought about a HDMI/keyboard switch to allow me more easily switch between my different spare computers into the left “backup screen” to make it a lesser hassle to alter between those machines, but I haven’t yet decided nor found a product that would be suitable.
I need to do something about the cable mess underneath the desk. Either hide them in a container of some sorts or attach a “cable basket/holder” to the underside of the table to make them less visible. And to make it easier to vacuum under the table.