It’s been a little over 5 months since I started writing code on a live video stream on Twitch. What started as an experiment, writing code with folks watching, has become a full-fledged pair-programming experience with participants joining in-person and pull-requests being reviewed on a regular basis. My goal was, and continued to be simple: make learning about software development easy and accessible to everyone.
A lot has changed since I started streaming: we’ve learned a lot together, we’ve gone on the road together, and we’ve even done a live stream in front of a live audience. I want to take a moment and reflect on what has worked well, what has not worked well, and talk about the future of the live stream.
Starting in December, the live coding stream was syndicated to both Twitch and Mixer. It was a great experiment and enabled folks who couldn’t access Twitch to be able to still participate through the Mixer service.
At the end of January, we completed the first Follower Goal of the stream, 500 followers across Twitch and Mixer. This was a tremendous milestone, and as promised, I delivered an 8 hour ASP.NET Core workshop on Friday February 16th with guests Shayne Boyer, Jon Galloway, and Julie Lerman. It was an AMAZING day of coding, interacting with viewers, and working with friends. The workshop was viewed by more than two-thousand people, and I continue to get requests from folks that want to watch and re-watch this video. Today, I have exported and made the workshop video available on my YouTube channel FOR FREE.
In March, we crossed the one thousand follower mark, and started seeing an average of more than 50 concurrent viewers watching the stream live. The month started with a live pair-programming stream from the Channel 9 studios at Microsoft, and the month ended with a live stream from the DevIntersection conference with a live audience. The stream in front of a live audience was the first of what I expect to be a long series of pair-programming with an in-person audience.
April brought more guest pair-programmers and the beginning developments of two important projects:
- A moderation bot that SHOULD help answer questions in the chat room and enforce the stream’s rules for participation
- A beginners-targeted project called CoreWiki that demonstrates the basics for building a data-backed application.
Great Guests and Topics
We’ve had a great group of MVPs, Microsoft folks, and tech influencers join the stream to pair-program and teach on various topics. Some highlights of the guest pair-programmers on stream include:
- Maira Wenzel showing how easy it is to build great documentation and contribute to docs.microsoft.com
- Steve Smith helped improve the patterns used in our StreamTools ASP.NET Core project
- Scott Hanselman shared his experience upgrading from an ASP.NET Website to ASP.NET Core razor pages
- Maria Naggaga showed the Try.NET service, where we can write .NET code in the browser
- Jon Skeet helped us with date management and accommodating timezone information in the browser.
Cool New Tools!
Starting in February, we were granted preview access to Visual Studio Live Share. Live Share is a tool that allows you to work together on Visual Studio and Visual Studio Code. Introducing this tool started an amazing set of interactions on stream that really takes the practice of pair-programming to another level. I can now show my Visual Studio instance on screen and the guests can join my Visual Studio instance to participate. Check out this clip of Jon Galloway and I writing code on screen in Visual Studio together.
Viewership by the numbers
I have been very transparent with the number of followers and the number of viewers on stream. I’m thrilled with the community that we have built, the code contributions and questions we have received, and the interactions on stream. Since January, I have been tracking the number of viewers on stream to help me identify which topics are working well and which times have worked well to present the stream.
The maximum number of concurrent viewers on each stream, averaged per month has been on a steady increase, going up by 20+ viewers each month:
Meaningful Messages from the Chat Room
Viewer participation means a LOT to me. I refer to the stream as “pair-programming with the internet” because I want your questions, comments, and contributions. We learn together as a community, and new folks can benefit from all of us. Your comments, telling me of our successes and how the stream has helped you mean THE WORLD TO ME. Here are a few of the (abridged) comments that I absolutely cherish and make me want to do more:
- “I saw you coding with C#, and I really like what you can do with it.”
- “I learned a lot from your stream and Microsoft Virtual Academy. Monday, I start my first job in software development”
- “Visual Studio does a lot more than I expected… I’ll have to give it a try”
Twitch Affiliate and Charity
Twitch affiliates receive several benefits from the service, including transcoding video to other resolutions. This is a priority for me, as I want anyone and everyone to be able to participate live on stream regardless of your network speed. Twitch also offer subscriptions to Affiliates streams and the ability for viewers to “cheer” during a live broadcast, effectively giving the streamer a monetary donation.
My goal is not to make money from the stream, and as such, I’ve previously announced my intention to match subscriptions and cheers then contribute those monies to a charitable cause: GirlDevelopIt. I never imagined that the growth of the stream would happen so quickly, and I will need to put an annual cap on my personal match on those contributions… but I maintain that proceeds paid out on my Twitch affiliate agreement will be donated to GirlDevelopIt.
My employer has a policy to match charitable donations, and I will be submitting them for matching.
Finally, I am completely flattered by the contributions of our community. I have never asked for them, and am honored to be able to make a contribution to GirlDevelopIt. As a father of two daughters, I am truly touched by the contribution we are able to make. Keep an eye on the stream in the next month, as I expect to receive the first payment from Twitch and make our first contribution to GirlDevelopIt.
We’ve had success with guests, success with new projects, and I want to explore new options going forward. The statistics delivered from Twitch have helped me identify the topics and things that have made the stream more successful. I am making the following changes in the short-term to help the live-coding stream grow:
- I will no longer broadcast to Mixer. There are several problems that I am having with Mixer, and reducing the broadcast to one streaming service will help me to focus the delivery, interaction with viewers, and features of the stream.
- I will limit the scheduling of guests to at most twice a week, and regularly on Tuesdays.
- Once a week, typically Thursdays, I will dedicate an entire stream to answering viewer questions.
Going forward, I am proposing the following additional features to the live stream:
- I have received requests from organizations wishing to sponsor a stream, with a guest that will help show their product. I intend to accept some of these sponsorships that do not conflict with my employer’s products. Proceeds from the sponsorship will be reinvested into the stream and at least 50% will be donated to our charitable cause. These streams will be aired at special times, and announced ahead of time.
- I am proposing starting a regular 8-12 hour workshop schedule. It could be monthly or every other month, I’m not sure yet of when it will start or the exact frequency yet. Our first workshop went VERY well, and it fits into my goals for the stream. I think I can get the time and contributors to build towards these workshops, and I will make them available for any and all to watch and participate in. Tentatively, I’m thinking of calling them “Fritz’s Free First Fridays” and schedule them for the first Friday of a month. I may be able to get some support from my employer, but I know I can manage this production by myself.
There are several needs that I must address in the next few months:
- The stream desperately needs an intro video and exit video. These will help set the tone on the live broadcast and provide a standard look and feel on the YouTube archive.
- I’m looking at a better camera or two that I could use both in my home-office and on the road.
- My lighting is “bargain basement” quality, and I would like to improve them to ensure a consistent lighting of my green-screen background.
- I would like to get a professional sound-mixer in use at my home studio so that I can better manage sound levels and introduce sound effects into the stream.
- I need a desktop computer with high-end video cards to do my production. The Surface Book 2 I am using works well for me, but I see skips and issues with Skype calls when pair-programming.
All of the resources I use on stream except the Surface Book 2 are my personal equipment, and that protects me from any changes or questions with my employment situation. I hope to keep it that way. Beyond the computers that I would normally use, I have invested approximately $300 in equipment for the stream, and I know that in order for me to raise the quality of my content it would benefit the production to invest a little more in equipment and content licensing.
The live coding stream fits my current goals of making technology accessible to everyone everywhere. I want everyone to be able to learn how to use these amazing tools, and I’m going to continue to work to bring that experience to you. I will continue to control the content and direction of the stream, and I want you to know that creative control will not be swayed.
I hope you continue to join me on stream as pair-programmers in the weeks and months ahead. See you on the stream!