μTorrent - a small footprint BitTorrent client for Microsoft Windows and OS X
ScummVM - an interpreter for adventure game engines, notably LucasArts's SCUMM
OpenTTD - a reverse-engineered game engine of Transport Tycoon, which led to numerous ports and improvements over the original
Ports of Dr. Mario and Kwirk for the TI-89 calculator
"The Idiot" - a card game for Windows
WebWorks - a text HTML editor
Spotify - a commercial music streaming service
Spotiamp - a lightweight Spotify Premium client for Windows, created as a tribute to Winamp
TunSafe - a VPN client for Windows using the WireGuard protocol
It's clear that some programmers have far-above-average productivity and a keen sense for solutions that the world still needs. Having success with one program might be luck or coincidence, but there seems to be a system to this series of successes. Any of the above programs could easily become the life's work for many developers.What's the secret?
I am not an Outstanding Programmer, but I like the advice on productivity from Jonathan Blow, paraphrased: "you don't need time management or productivity tips. If you want to complete a project, maximise the time you spend sat on your chair, with the editor open." That's all there is to it.
The best way to build a cathedral is one brick at a time. Effort and consistency trumps all. Being a 10x developer has no effect whatsoever on what you can accomplish in work or in life.
The overwhelming vast majority of people (in any industry, art or craft) will never achieve fame, fortune and recognition, and many that DO actually find it to be an empty, existentially-void experience. Others receive it posthumously, at which point you could argue 'does it even matter?'
Just write programs if you love to do it! Your ideas aren't that good (mine aren't either), and you aren't special (nor am I), but plenty of 'unremarkable' people have conjured pure magic out of seemingly-mediocre concepts that end up helping people solve a problem, or bring them delight, or impact their lives positively.
I personally believe anybody can find success if they just focus on the journey and the joy of coding, make sure they show up and participate, be present, stay curious and playful, and don't expect any rewards for their efforts. The real reward is having fun and feeling fulfilled while you're creating something.
Build two. Then you can procrastinate on each by working on the other.
I'm just gonna throw in this link because I think it's great:
https://internetmuseum.se/english/
Among other crazy stories, Daniel is featured there. My favourite story is that the TLD .se was was ran by a guy in in his living room for years until The Swedish Internet foundation took it over.
There's also Kazaa and the guys behind The Pirate Bay. Real OG hackers from that era.
W.r.t. to your question I think it's relevant to say that "most things invented then" were "simple" ideas but hard to implement due to the tooling in that time and lack of programmers. But if you were good, you could go at it alone or with a small team. I think that it's a little bit inverted now: finding good, novel ideas in the space that can be done by one person or a small team is hard, but building and shipping it, if you do, is probably a lot easier due to OSS.
Oh and naturally the all-Swedish version is better at https://internetmuseum.se/
my history: https://www.adama-platform.com/2024/01/28/euler.html
To take nothing from Ludvig, simply explaining why not everyone can be him.
Publish games (with an 's') on 16 bit computers when he was a teenagers (and good games at that)
Industrial software to minimize cuts and losses when cutting sheets of metal
Write tools easing the creation of games for smartphone when they came out and put a commercial game in the top 3 of the Apple appstore
Before that : he wrote several apps for Nokia phones (pre Android era) and serve them using a provisioning server he wrote and hosted himself
Write code to port Java code to COBOL for legacy bank infrastructure
Write some sort of Google maps before the days, from aerial pictures he managed to fetch through some people he knew
Created a software company, got funding
Got interested I cryptocurrencies, wrote several wallets, including for smartphones
Wrote servers transcoding videos in real time
Wrote an Amiga mod player for the Atari ST (that one was really cool
Find and write detailed reports about JVM bugs
There are many standards he knows by heart
Countless websites
He was doing ML before it LLM broke through: teaching 3D "things" to learn to move
Monitoring and visualization on embedded devices for solar panels/micro inverters efficiency
He moved to devops and loves it. And he still codes.His secret is a life of passion for the trade.
There s nothing he s worked on that didn't become faster, cleaner. There s not a single place he s been too where he didn't have things to teach people (and things to learn too: passion and curiosity).
He knows so many languages: from assembly to C to C++ to Java to Kotlin to Lua to ML languages to so many scripting languages.
Front end, back end, from huge servers to tiny embedded stuff. Dumbphones. Smartphones.
The only family of language I know he s never done is Lisp (so I get some creds).
He s not just a developer: he manages servers too, both for fun and professionally... and found a recent love for devops (working for a major payment processor as I type this).
He s 50 y/o and he ll kick your sorry ass like you have no idea.
He happens to be a very good friend of mine and when I hear that there are no 10x programmers I cannot help but laugh in a condescending manner.
He is, unlike me, humble. He ll say he doesn't know much. He s always got a desire to learn.
And I think most of all: when he was 30 he thought programmers who were 50 had many things to teach him.
Ive build close to 100 projects and companies that have generated over 1B in revenue combined with only one other person (the non-tech owner). I dont have a team, I just build alone on all these.
A few notes:
I have programmed for over 30,000 hours. 3x what people say the time is to mastery is
I look at things in a way that i haven’t really ever heard anyone else explain. I’m not sure if it’s unique but it IS the reason. Everything in my mind is a complex web of cause and effect down to the most nuanced level. In my mind it has a visual aspect even. You have causes (knobs and dials you can turn) to produce effects.
Part of meditation is that you can learn an idea more deeply (insight). This same idea sort of applies to what I said above. People miss the magnitude of this cause and effect statement. I’ve told many people and they’re like sure cool. In my mind this statement is like standing next to the tallest mountain. The magnitude and depth is profound. It’s of this magnitude because it means you are in direct control of your own outcomes. Anything you want, is a solvable puzzle. Literally. And the deeper level of insight you feel about this idea the more you are capable of.
Now for the actual process of how to navigate this cause and effect. My mind operates on a value formula. Every single decision, word, line of code, micro decision is basically a tradeoff decision. Not in terms of code performance but in terms of this cause and effect web, of EVERY action in physical reality. I have excellent ability to “project” causes outward and then find the “end result”, and essentially find the fastest path from A->B to get there. And this value formula always optimizes RESULTS over other things many other great programmers optimize for like knowledge. I just have a different style. So basically I'm always analyzing every single tradeoff as if I see “threads” of reality extending from every decision and what path I go down. As a simple example I might learn linear algebra and Bayesian statistics extremely intensely for 7 days to learn or build an algorithm, but then I hit a diminishing return where I will switch to something else knowing i can hire someone later to teach me and fill in gaps.
This is an extremely simple contrived example. In real life, instead of there being 2 variables there would be like 50.
I don't have a better answer for you than the ones already posted here, but I am genuinely curious to read the responses to this.
Another well-known example: https://bellard.org/
I'm a very good programmer, but not that motivated. Given the right effort I'm reasonably sure I could build a number of successful apps. I just don't want to spend my life doing that. Instead I'm a hobbyist creative writer, an excellent cook, a father who's there for his kids, and a helpful husband. After I'm through with those things, there isn't much time left to build anything.
Others want to build software products and make money from them, and those who have the motivation to do this, usually do.
You only get one life, choose wisely.
You can be a brilliant programmer, but there's zero hope of building anything like Serenity as a one man band.
The problem is that most developers see programming as their 9 to 5 and outside of that, in little free time they have, they have other pursuits and hobbies.
When you see what other programmers achieve who have the time and treat it as an art (Vs work) it's natural for them to have higher productivity.
IMHO, the more you look up to those people, the more agony you shoot at yourself. You can't "learn" what is natural to these guys.
Just don't do it. Don't even read about those guys -- ordinary programmers don't understand them anyway. Find some happiness FIRST.
Maybe block HN. Why am I even here?
Could it be that these are just projects that use libcurl in some way?
I'm having trouble finding any sources that say that Daniel Stenberg actually worked on spotify, utorrent or openttd directly - just to test three of them.
not having unpaid oncall forcing you to wake up 3 times on Friday night for years
having enough savings and legal residence status to be able to take risks
not working for compulsory military substitution without option to quit for years
not having your government to kidnap males in broad daylight to be sent to die in trenches at war
Probably just time. If we assume that the time frame for all of this was 30 years, this means that he completed one of this projects aprox. every 3 years. This does not look that exceptional to me. The question is, what else he did during this time. In order to assess his work efficiency, we would need to know how many hours he really had to spend on this projects.
There are people who can build ambitious things at higher performance and durability while expending dramatically low comparative effort. Then there are people with influence.
It’s typically the later group that gets 80% of the attention because it’s challenging to discern expertise without being an expert yourself. So, forget all that if you want to become a much better programmer.
How to become an expert (many comments here already mention this)?
- know your compile target
- know your current projects goal
- write code
- provide iterative improvements
Where most people fail is impatience, as in skipping directly to the end state, probably by skinning some prior existing solution. This is bad because you’ve learned nothing and released a solution where everything that doesn’t scale.