Reflections after 2 months of live coding
I started streaming on Twitch this summer. I have been streaming Rust development once a week.
The opportunity presented itself for reasons related to the current state of travel industries (and the economic consequences that followed). It has been an interesting learning experience.
After experimenting with something, it’s always good to take time to stop and reflect on what has been successful and where there’s room for improvement. The time I’ve spent so far has been challenging and confusing – but also enjoyable. This post is for anyone interested in the experiences of a beginning streamer, or anyone considering dipping their toes into the Twitch pool.
I’ll organize my reflections into 3 sections:
- Things completely in my control
- Short-term objectives that I can influence
- Long-term aspirations
If you’re interested how I got started, I wrote a post about it that you can check out!
Things completely in my control🔗
Like most things in life, there’s not much completely within my control. But I can tinker with my channel's look and feel, the time and duration I stream, and what I work on during each stream.
Working on a project provides natural boundaries. Before beginning a stream, I don’t need to know 100% what I’m going to accomplish or how. But I’m more mentally present if I am not thinking too much about what I need to do next. To help with that, I like to plan a predetermined, single direction per stream. I choose a reasonably-sized goal to work on for each stream, and try to roughly break down the steps so I have a small map to follow during the stream.
I also expose project management over stream (via Github projects), which keeps me focused on individual tasks and keeps my stream content on track.
Learn from my mistake. If you cross-stream to YouTube, be mindful of Content ID. I experimented with background music and naively loaded up another YouTube steam for a short moment. Don’t do this! Pretty quickly it was automatically flagged. Look for royalty-free music instead.
As I’ve continued on, I've put more effort into improving the experience of viewing my stream These are my key takeaways:
Know your limits. I’ve learned that 3 hours is about my maximum session length. Any longer and I start to feel low energy and my voice gets tired from all the talking. Not to mention, my current viewership and audience engagement doesn't justify being online for that long.
Show your process. There are two steps (where I’m not actively coding) that I include on my stream as part of my process: diagrams and project management.
- Writing code is a lot of effort, especially if you don’t know where you’re going. For me, drawing out diagrams of structures or algorithms is like writing an outline before I start coding. I’ve been learning Figma to make nice diagrams for streams.
- If I’m practicing project management, I’ll do it live. Lately, I’ve been using Github projects to manage my roadmap and planning.
This is an opportunity to show real parts of my process, and there’s no reason to hide that from viewers.
If you don’t know, now you know. If I don’t know something, I'll open a browser and look up documentation and examples or ask my viewers. It won’t benefit anyone if I’m just struggling. Plus, sometimes the audience can help out . Looking for answers is also a very normal part of coding – no one knows everything, and searching for things effectively is a skill in and of itself.
Talk it out. It takes some practice, but speaking out my thought process has definitely from when I first started. I realized as I was watching other live-coding streamers for research that it’s not exactly interesting to watch in silence as someone types. People usually will help if they know what you're trying to figure out, or ask questions to feel involved.
Don’t stress. I also found it helpful to turn off the viewers count if you have the stream manager open. It serves no real time purpose and causes unnecessary mental stress if you're alone in your stream. Always talk like someone is watching.
Back in five. Have OBS scenes to switch to for bathroom breaks or intentional moments away from the keyboard. I think this is just polite as a non-gamer stream. It’s a bit of a bummer to open up a stream to an empty chair and no indication of when the person will be coming back.
Short-term objectives I can influence🔗
I have set a few new long-term goals for myself. But I'll always need to deal with the same obstacles to broadcasting effectively, and get viewers to agree to hang out and talk to me.
Asking myself questions first🔗
Practice makes perfect. If you are going to be exploring a new library on your stream, then practice using it for a non-trivial amount of time prior to broadcast. This will serve the purpose of defining a direction for the stream, in addition to building familiarity of where some of the pitfalls are in case of roadblocks. Having some familiarity with the tools or systems I’m working with also makes me feel more confident in demonstrating it, even when I don’t know how to do everything I plan on doing.
<human> has entered the chat. People who chat will often not talk about the code you're writing. This isn't a negative! People usually just want to get to know me. Keep in mind, Twitch is not a lecture hall (unless that’s actually what your stream actually is).
Yes, it can feel a little disruptive to your train of thought if you’re only prepared to talk about what you’re working on. But that's another reason why to prepare with a plan and practice with any new tools.
Reaching an audience🔗
On Twitch. Twitch does little to promote for you as a small streamer. So experimenting with self-promotion is a must.
The lack of promotion can be a double-edged sword, compared to YouTube. The requirements for Twitch Affiliate are more modest but still take effort.
On YouTube. YouTube technically promotes you through search results, but I still need to experiment with self-promotion. The bar for reaching YouTube Partner is significantly higher. It definitely requires a different strategy to build an audience than Twitch. I am not actively focused on building my audience here... I just use Restream.io to simultaneously go live on YouTube and Twitch.
Truthfully, I don’t have any desire to make a living as a full-time streamer. However, I would like to have diverse sources of income, including anything I can make through streaming and anything I create while streaming. So for that reason alone, it makes it feel more important to take this a little seriously so that I will be able to meet the requirements for Twitch Affiliate.
Twitch-specific channel improvements🔗
If I look at the more successful live-coding streamers, they have been on Twitch for a while, they’ve put some effort in their visual branding, and they are on a Twitch team. I believe that these are all realistically achievable for me if I put in the work. Here are improvements I am actively planning or working on:
- Visual improvements to my OBS scenes
- Making my Twitch profile more interesting
- Coming up with project ideas that are interesting and/or novel
- Determining what time of day to start my stream, so people are more likely to stop by and stick around for a while
- Reaching the requirements for Twitch Affiliate
- Joining a team: my goal is to join the Rustaceans Twitch team once I reach Affiliate status.
I stated before that Twitch doesn’t do much to promote small streamers. Promotion seems to be geared toward creators who are already reaching an audience. Networking is a creative skill I get to build that wouldn’t normally present itself in the Software industry in this capacity. It will certainly benefit me outside the context of streaming. Here are a few paths for networking:
Pre-stream promotion. It can be hard to find the appropriate venue for pre-stream promotion. I’ve personally found that Twitter is not a great place to promote if you don’t have an existing audience. My engagement is very low on my tweets for good reason. But it isn’t the only option I have.
Find an audience by being active in communities. I wasn’t really watching other live-coding streams on Twitch prior to doing it myself, but I have noticed that I learn a lot by watching other streamers that are about the same size as myself or larger and taking note of what they do “right”. As well as interacting with them and their audience.
One nice surprise was finding that there are a lot of small channel live-coders or Rust language enthusiasts like me who show up in my chat to talk, and I’ve been able to make some connections this way.
I’m also working on being a more active member of the Rust community. I’ve been using this language for a while. I don’t consider myself an expert, but I do feel like the community can benefit from my voice and experience.
Talk to the people around me. I hear that Seattle has a pretty active tech scene (For reasons, I need to state that this is a joke).
This is a bit of my insecurity presenting itself. But I notice improvements the longer I continue, which encourages me to keep going. I hope to:
- Come to terms with my self-consciousness about not being “a good programmer”.
- Write more blog posts(I’m near the end of this one. It gets easier the more I do it.)
- Producing videos for YouTube as companions to blog posts
If you’ve made it this far, thanks for reading!
I could not have predicted where I’d be this year. It has not shaped up to be anywhere near what I thought it might be. But I am fortunate that I was able to try something I would have normally not done before.
If you’re interested in how my story continues to procedurally generate, follow me on Twitch.