Stack Overflow Contributions
Stack Overflow Contributions
Stack Overflow is a developers friend, but too many developers consume its content without adding to it.
Here is the story of what drove me to change that habit, what I'm doing now, and what results I've seen from this effort.
Background
I started contributing to Stack Overflow in 2018. At the time I was in my first proper development job I was the only official web developer and I had to build a lot complicated apps.
Stack Overflow was my oasis when I would get stuck. I also never posted questions, I was scared of looking silly, I was worried of the responses I might get, so I just consumed.
A few years later I started doing a small amount of open source maintaining and it massively expanded both my knowledge and self-awareness.
From open source I also learned how maintainers get paid nothing or poorly, even when their software is used by big businesses.
Open source made reassess my approach with Stack Overflow and I wanted to start contributing again.
To my surprise when I returned to Stack Overflow and signed in with an old account I realised that some of the questions from the start of my development journey were receiving thousands of views.
My early Electron questions were collectively getting 10,000 views!
Epiphany
I didn't want to share my questions with the Stack Overflow because I thought they were basic. My Electron posts were proof that actually I was an early adopter and as others were coming over to Electron they were encountering similar problems.
I was validating my ideas instead of allowing the community to choose.
Analysis
After the penny dropped I renamed by Stack Overflow account to match my name. I wanted to act as another element of my digital persona.
Now I started analysing my Stack Overflow posts and uncovered some trends:
- most of my posts were targeted at beginners
- most of the posts were on new tech with growing market shares
- some of my posts covered obscure behavior from common tasks
- my best answers were long, simple to follow, and shared example code snippets
- most of my questions had a lot of comments
Process
From the analysis there's a clear process developing.
Niche
Having a niche on Stack Overflow is really important. The community mimics the tech landscape so there is a lot of topics to contribute to.
Each topic comes with it's own caveats too. For example, the javascript
topic is difficult to support since there are many followers and questions get answers instantly. This makes it unlikely to provide an answer that gets voted or accepted as an answer.
On the other hand new technologies are barren, partly because the Venn diagram of new adopters and Stack Overflow posters is really small.
It's in new technologies that you have a better chance at receiving votes and getting answers accepted.
Posts content and quality
Stack Overflow allows you to answer your own question and I've learned early on that this system can help with my problem solving: I would find a problem, post it on Stack Overflow, and keep working on the problem. Some times I would get an answer and other times I would uncover the solution myself.
I found this pattern to be similar to rubber-ducking aka talking to yourself expect instead of talking to myself I'd be talking to the internet.
Questions on Stack Overflow have to be specific. This in itself helped my problem solving because I would usually find a solution during the question submition screen from Stack Overflow.
Poorly written questions get negative feedback from Stack Overflow. This can be to do with the question framing, lack of context, or a lack of difficulty. If you ask a stupid question you will know about it!
I realised that 'performant' questions usually are procedural: if I do X, I get Y, but I expect Z. Code samples, short copy, and useful headings make it more likely for a question to be answered or interacted with in a positive way.
Answers follow similar patterns: good formatting, clear headlines, and sample code. In addition to this, answers benefit from multiple scenario handling: if you want Z do this, if you use Y do this.
Bigger answers are RARE on Stack Overflow because the community values brevity and chases the accepted answer metric. When you write long-form answers you essentially give more context and cover more scenarios, so overall your performance is better.
Do notice however that this only works with niche threads, since that is where knowledge is missing. To someone learning a new technology a lengthy, in-depth explanation is just what they require.
Writing style
Stack Overflow has a lot of resources on how to write a good answer and it is crucial guidance to follow.
It helped me learn how to write with a neutral tone where no one is offended by the answer and the logic of the answers is enough to avoid personal preferences or fanboy behaviour.
Post frequency and lifecycle
Finding a fresh pool of new questions without answers and crafting thoughtful answers takes some time so I set myself the goal to post up to 5 answers per week.
Both questions and answers are actually evergreen and I decided early on that there are no benefits to answering early. I wanted to produce quality content that over time would be more valuable.
Results
I ran the above process in August 2020 and kept up with it for two weeks.
At the time I was reaching 22,000 people through my questions and answers.
I focused mainly on the NextJS topic since it was a technology I knew and liked. The community on Stack Overflow was also lackluster even though every day there would be 10 new questions.
I decided to check into my account again this month - January 2021.
I have now reached 106,000 people!
For January 2021 I ranked in the top 14% percentile, with a rank of #28778.
I also gained +67800 change points - which outlines growth and an increase in ranking. This puts me in a group on only 5 other users.
Closing remarks
I'm astonished of what can be achieved with such a small amount of effort.
I can't believe that my content has reached 100k people and the stream of positive comments and upvotes is heart warming.
I wanted to expand my contribution to the platform I feel like I have achieved that goal. Little did I know that I would also improve how I write technical instructions, how to deal with online negativity, and how to problem solve.
I also received a book offer request through Stack Overflow.