The most successful developers share more than they take
Ever since I started programming and discovered the open source world, I confess I’ve been a little obsessed with the elite developers in our communities. People who lead large open source projects (and often many of them) or direct large teams commercially. What is about them that got them to where they are? The software community has an abundance of advice and support on how to become a better developer, how to progress your career, and develop personally; I like to think programmers are pretty good at self-introspection and closing their own feedback loops. So amid a sea of extremely qualified professionals, what does it take to lead and create successfully?
To answer this question, and because I have a general curiosity around the topic, I set up a podcast, Distinguished Devs. Talking to top developers has been fascinating, and I’ve learned more than I thought was possible when I started the podcast. So I’d like to share some of that knowledge in this article.
What’s the common factor?
After interviewing several developers, a pattern started to become clear: great developers share a lot. This takes different forms for different people, but is very often a blog. “So what?” you might say, you would expect successful people—“thought leaders”—to use their position and platform to share their own ideas and projects. But the interesting thing is that for many top developers, their sharing mindset came before their success, and was the direct cause of it, not the result of it.
Take Jeff Atwood, for example. Jeff co-founded Stack Overflow and Stack Exchange and went on to later found Discourse. The reason this all started is entirely due to his blog, Coding Horror.
On my podcast, Jeff tells the story of how one day he checked the stats on his blog and realized he had 40,000 subscribers. He’d been sharing his thoughts on software and a little bit of everything else since 2004, and he realized he wanted to do something with the energy and following that he had. After reaching out to Joel Spolsky (who also happened to have a very successful blog, joelonsoftware), they started Stack Overflow.
Without the critical mass of users from their blogs to kickstart Stack Overflow, its fate might have been very different. But more than that—the idea would never have been realized at all if either of them hadn’t blogged.
For yourself, not the audience
One of the questions I always ask successful bloggers is: what motivated you to start?
The answer is always the same: I did it for myself.
This is an example of survivor bias; those who start a blog with the aim of attracting a following will lose motivation and grow impatient with the short term results. Successful bloggers have the personal confidence and passion for the topic to document and share stuff they think is cool.
Miguel Grinberg, the author of the Flask Mega Tutorial (regarded by many as the top Flask resource) talks on my podcast about how the first installment received a single like and retweet on Twitter. Months of writing new installments brought little more engagement, it took years for it to gain traction. But it didn’t matter to him, because “I was having fun, following my interests, doing it for myself.”
Martijn Pieters, the world’s top contributor to Python on Stackoverflow, discussed on my podcast his motivation for answering the volume of questions with the quality he does. For him, it’s about curiosity and expertise. Quoting Eric Lippert (a core engineer of the Microsoft C# compiler, and also a blogger), he says “How do you become an expert on something? Well, find a pile of questions or a place where people are asking questions about your topic. If you try and answer each one, you’ll become an expert quickly enough.”
That’s not to say there’s no reward or motivation in answering questions to help others, just that the personal benefits of doing so often go underestimated.
The same is true for many successful open source projects, which often start out as personal projects, only to later be adapted for general use. When I interviewed John Leider, the creator of Vuetify, about how the project started, he initially built it just for himself to enable rapid prototyping of sites for his consulting business. “I actually never planned to release it, it was going to be a thing for me. One of my buddies at work was walking by one day and said, that looks really cool. After a bit of talking, he convinced me to release it as an open source project.”
From the outside, the idea of doing something for yourself, not the audience looks like the main benefits of sharing come from the network of people you attract, and the opportunities created by a raised profile, such as new jobs, consulting, project offers and speaking opportunities. While this is true, top software engineers have told me that this long-term benefit was never their goal—the act of sharing creates significant short-term personal benefit.
Public by default
Though it’s important to create things for yourself, this shouldn’t mean you keep them to yourself. Carsten Haitzler (AKA Rasterman), the creator of the Enlightenment window manager, started the project only for himself, simply because he wanted a prettier desktop environment. On a whim, he shared some of the screenshots online, and all of a sudden began receiving emails from people asking for the source code. Fast forward to today, and the Enlightenment libraries are used in millions of phones, desktops, and even Samsung smartwatches and smart TVs.
The key point is that whilst the motivation for any successful project has to come from within yourself, you shouldn’t stop yourself sharing it because it was never meant for an audience. This idea surfaces frequently when I’m talking to podcast guests, because it’s always surprising how people react. Whatever your work, you should embrace the philosophy of “public by default”.
Public-by-default means this: everytime you create something, learn something, or just notice something’s interesting, do it in public. This may seem daunting—writing blog posts, helping the community and transforming ideas from thoughts into words all takes time. But sharing is like a muscle, and by committing to a regular schedule, you become much more efficient. This consistency of volume is also key to reaping the benefits of sharing.
There are a number of reasons why the public-by-default principle accelerates your personal development so rapidly. Firstly, on a technical level, there’s an immediate feedback loop. If you’re answering questions on forums or online communities, considering strategy or contributing to open source, you have such a swift feedback loop that it’s impossible not to improve.
What’s more, the hive-mind of the internet has a habit of taking ideas you might have which are ok and turning them into something worth pursuing, adding value through different angles or directions. Blogs in particular are excellent idea generation platforms. I’ve had personal experience with this—as a freelance writer, some of my best leads for new pieces and learning opportunities come from comments people have left on my posts.
To truly embrace public-by-default, it’s not enough to share your successful projects and knowledge, but additionally to bring the humility to share your learning and failures. In general, it’s hard to argue with the sentiment that you think harder about everything you do if you’re going to share instead of just do it for yourself, no matter how trivial it might be. There’s a lot of value to be had from being public-by-default, and often in ways which we don’t expect.
Sharing makes you stronger
For top software developers, sharing isn’t a byproduct of their success—it’s often the cause of it. The reasons for this are many and varied, but having the confidence to share more, for yourself, can be extremely rewarding.
So the next time you make a weekend project, learn something or discover anything you think is cool, be sure to share it; you’ll be in good company.
The Distinguished Devs podcast is available on iTunes, Spotify, and other podcasting platforms.Tags: bulletin, open source, stackoverflow
Is there an RSS feed for the podcast?
Correlation fallacy. Sharing doesn’t make you good (see: CodeProject.com). Authoring a post can make you better, but don’t share it unless it’s good.
How are the people you’ve mentioned great developers? They have successfull products, that does not make them great(not saying they aren’t), you just declared them to be. In what regards are they better than any other average developer?
Adding on: sharing takes many forms. Many exceptional devs I know are not super social outside the workplace.
You’ll never see them write to blogs or answer posts on Stack Overflow. Or even share code on GitHub. But they will happily share their knowledge with others, and take great pride in doing so. They will mentor the less experienced and take them under their wing.
Doing it socially/online is doing just that but at a much much bigger scale.
I second this
How many successful but not sharing were studied? To me it sounds like none
here is a thought. maybe you’ve interviewed these developers because they did share a lot and you knew about them through sharing, that’s why its the common thing they had . what about great devs who don’t share a lot. how do you know there not succesful
Thank you for sharing this! Personally, I’ve also started writing technical posts on some of the learnings I have had encountered at work as a software engineer.
Really thankful to know that I am not alone in this journey and it is once again crucial to remind myself that my writing isnt solely to attract following, but first and foremost enjoy my the entire process, even if that means writing solely for myself.
Once again, thank you so much!
Ya..and final product is a outcome of several people hard work,team work & time from thier life
I do not say you are wrong, but for me that’s just one way.
For me managing to be a great dev because of your blog is like pretending that most people that play music or sing will manage to be a rock star or that most people that create a youtube channel will make something big out of it. This doesn’t work. The way such things works, we all read/listen/look at the same things and only few select people are going to really benefit of it.
And actually being a software dev and sharing things on a blog is not the same job. Most of the information you see in blogs, video and alike either has no success at all or come from professionnals that are paid by their employer to do just that. I know quite a few of them. They provide training for a given software stack and make videos and blog post. They are evengelists and alike.
They actually are paid for it, are not necessarily the best experts and because they can devote that level of time to it on top on going to conferences all over the year and providing support to various companies they soon know lot of people and yeah have a quite significant presence. But they didn’t do that by random.
Most developpers are paid by a company for their trade and that allows them to do it full time and gain experience. That’s the core. A good share of them are great developpers and will lead projects for their employer and make big things. I think there are order of magnitude more in that case than the one that managed it because of their blog.
Great article. I think sharing is caring +
I am a newbie developer at a prime age of 41 and I have learnt more by using confluence to share my ideas with my colleagues and actually writing things up. The process of writing can really make things more clear in my head. Also the advice on making things for yourself was spot on. If you need it then the chances are that someone else would as well.
Ranjana, it would appear that maybe I was coding before you were born. But I do really appreciate it when I find solutions that you younger guys have come up with which save me time and effort. I’m now 77 years old, and still spend many hours in my office learning new things, mostly about SQL Server and related tools.
My quitting time is usually about 3:00 pm when I stop to share ‘merlot time’ with my wife on our deck or patio. One can only do so much coding in a (short) day. We mostly begin the day with coffee in bed while reading the news around 9:00 am.
Cheers to all of you !
I like that rather than pointing out what successful people are currently doing in life, you are sharing a common thread that has helped many to get exposure and business opportunities.
Great food for thought, thanks for sharing 😉
I love my friends and they love me
We’re just as close as we can be
And just because we really care
Whatever we get, we share!
This makes a very good point. All of my career in IT was BEFORE the open source movement, but after 42 years of it I still do coding and development for myself, and greatly appreciate seeing how other folks have answers for what I need. And I still try to share, even if sometimes it’s just encouragement. Who knows, if you help someone do a better job of things, you may be avoiding having to work with bad things if you should happen to replace someone you helped.
I have followed many of the big names in the SQL community and always wondered “how can I contribute”? I have been doing this for years and finally have a project that I started off the books and convinced the bosses it was worth converting to a “on the clock” project. It centers around retrieving information from the MSDB and SSISDB databases for our On-call folks to trouble-shoot job/package failures. We have hundreds of jobs and thousand of packages so it is no small task. Fortunately, the majority of this information is accessed from SQL Server system tables available to everyone so no confidentiality or propriety information.
I have been in the insurance industry for some time so most of what I do would violate laws if I shared. This is generic enough that it would not. What is the best way to share what I can? I have learned so much from the bigger specifically SQL Server blogs that I want to give back.
“There is a frustrating of plans where there is no confidential talk, but in the multitude of counselors there is accomplishment.”