I played Hearthstone obsessively in college.
Part of what made the game so addicting to play was the surrounding community. From internet forums to online tournaments, there were a ton of different ways to connect, learn from, and compete against other Hearthstone players. But, the most iconic members of the community were all on one platform. Twitch.
Throughout college I watched gaming influencers grow their audiences and make a living off of playing video games. They were living their childhood dreams. I felt compelled to do the same. However, I couldn’t justify my career being based around playing a video game. But what about my actual software engineering career?
I spend 4 - 10 hours each day hacking away on my laptop. Hearthstone streamers simply do their jobs in front of an audience. Why can’t I do the same thing? I’ve already decided to make the output of my work publicly accessible through open source. Why not open source the process as well?
Most people who don’t play video games struggle to understand the value that popular streamers bring their audience. I’ve identified three ways, and none of them are specific to video games. I plan to use all three to grow my new software development Twitch channel.
Strategy In Public
We often get stuck in the same thought patterns when isolated from others. Watching someone else practicing the same craft opens us up to unfamiliar perspectives.
Hearthstone, for example, contains multiple decision points throughout the game. Players of all skill levels could come up with their own line of play when confronted with someone else’s situation. Comparing that line of play with the streamer forces them to challenge their assumptions. They ask themselves “why is what I wanted to do better than what the streamer did?” It could also validate their strategy.
Strategy in public is a two way street. Not only does the audience learn from the streamer, the streamer learns from the audience! By broadcasting games publicly, the streamer allows the audience to catch them before making a fatal mistake. The streamer’s opinions are rigorously tested at scale to hundreds, thousands, even millions of other people.
This value proposition is relevant in software engineering. “Pair Programming” is a practice that involves two engineers working on the same bug or feature. One acts as the “driver” writing the code. The other acts as the “navigator” by researching the task and catching issues before the driver commits them. Both engineers learn immensely from each other as a result.
Twitch streaming would allow me to implement pair programming at scale. The few times I’ve done it, I learned a ton from vocalizing my decision making to another person. I also saved a ton of time debugging because my navigator pointed out a bug as I was writing it. I want to take the projects I’m already working on and continue building them in public.
My audience will gain insight into how I develop Roam JS Extensions and other web apps. I will gain insight from my audience as to how I could improve these projects. This back and forth leads to the second way streamers provide value.
Commentary In Public
Accurately predicting the future is difficult. But it’s also incredibly fun, so we do it anyway.
Almost every successful game on Twitch has a metagame that over arches each individual match. Which strategies achieve the highest win rate? What characters are most players sleeping on? Which ones are overrated? Imagine stock market speculation but on game plans over thousands of iterations.
We all love to speculate. We also love being right. Since we can’t fast forward to the future to validate our predictions, we do the next best thing and research the speculation of experts we trust as a way to validate our predictions in the near term.
Streamers play this role by commenting in public. Successful gaming streamers constantly evaluate trends and give their opinions on what strategies to play. It’s a great way to engage with an audience looking to test their own theories. A week before a new set of cards were released was one of the most exciting times within the Hearthstone community. Hundreds of streamers created content on which cards they thought would make the most impact on the metagame.
The idea of a metagame is not unique to video games. There is a metagame that surrounds the most popular programming languages, libraries, and software design principles. Software engineers are some of the most opinionated people on the internet. As a consequence, they are constantly writing blog posts and sharing content expressing views on which technologies are about trends they are noticing. Cassidy Williams often holds a Q&A with her audience in the beginning of each stream, giving advice learned from her experiences to up and coming engineers.
Twitch streaming will accelerate testing my own theories of where the industry is going. I want to field questions from my audience and share my take. Over time, I will gain a ton of experience pursuing building in public and could distill this knowledge to others. By expressing my commentary online, I will be able to share what I’ve learned and also learn from others responding to my expressed opinions.
Entertainment In Public
Twitch became popular mostly due to its ability to recreate the childhood living room experience: watching our friends play video games. Watching someone else play a game builds comradery. Almost as if you are playing the game with them.
Successful streamers make their channels engaging. They play games where there is a low ramp up time to tuning in and gaining enough context to understand. They hold polls that give their audience a say in how they play the next game. Subscribers are often given a shoutout in the middle of the stream, broadcasted to the rest of the audience.
Successful streamers also make their channels welcoming. They are proactive in their channel’s chat to try to foster an inclusive culture. They make the environment more vibrant with opinionated commentary and music in the background. They express gratitude to their audience often, giving the audience motivation to stay.
Making a channel both welcoming and engaging are essential components to making it entertaining. Just as in the previous two sections, these properties are achievable outside of gaming. Seeking out feature suggestions and constantly providing context to what I’m working on will create audience engagement. Creating a vibrant and inclusive environment may be easier in non gaming channels since gaming communities are notoriously toxic.
This model has framed my strategy for an entertaining Twitch channel. I want to engage with my audience by seeking them out for help, answering their questions, and at times deciding what to work on next by polling them. I want to make it welcoming by allowing those with all sorts of opinions to express them in the chat. In short, I want my audience to feel as though they are building software with me.
I have learned enough from both gaming and non-gaming twitch streamers that I’m really excited to dive in! My plan is to broadcast what I’m working on right now. Strategy in public allows me to take a pair programming approach, helping my productivity. Commentary in public frequently tests my theories. Entertainment in public pushes me to clarify and have fun with what I’m working on.
My work is already entirely open source. But even with open source projects, there is a ton that happens behind the scenes related to how I prioritize work, how I think about design decisions, and how I debug tricky issues. Open sourcing this process through Twitch will help others who tackle the same questions every day. It will also help me by stress testing my answers to these questions in public.
My starting schedule will be Mondays, Wednesdays, and Fridays from 12pm - 5pm EST. Want to learn, share, and engage in public? Tune in on October 14th for my first stream!