Why I Stream Live Coding on Twitch
Tags: livecoding, development, twitch, streaming
Published: 2020-11-17 20:38:04

I was recently asked to present a talk at the IBM Technical Consulting Group (aka the Totally Cool Geeks) about live streaming technical sessions. This was part of the 2H2020 two-day event they had running. The section of the day I was speaking in was around the topic of social media and digital eminence. With permission of those involved, I have published the recording of the session above.

I broadcast a weekly show on the [IBM Developer Twitch channel](https://twitch.tv/ibmdeveloper) called "ML for Everyone" in which I try to give some real world examples of how to use machine learning and AI in projects. Much of the material I use for examples comes from open source projects, side projects, and hackathons that I'm involved in.

In the talk, I detail a little bit about my setup both in terms of hardware and software to produce the effect I use on my Twitch streams. I plan to blog in more detail the exact details of the setup in some more technical posts, but what I really wanted to touch on is "*why*?".

*Why do I stream live coding sessions on Twitch?* The goal of what I am doing as a Developer Advocate is to built a relationship and empathy with developers. It is my role to understand how our products and services work and how they fit into the wider world of cloud, AI, app modernisation, etc. *from a developer point of view*. As part of that, I need to both understand exactly the frustrations a developer is feeling, and also to inspire developers to build great things. I am to educate them on the tools available, both from IBM and the wider ecosystem.

How many times have you seen a demo of some API, service, software or library and it *looks so easy* – and yet you try it yourself and it doesn't work? The examples have been chosen to exactly fit the problem. The libraries have been pre-installed. That little tweak that is needed has already been done. The point of the live coding sessions I do is that they are exactly that – they are live. They are unrehearsed. You will see the mistakes I make. You will see me google basic stuff like where to import a library from that I use every day but can never remember.

Why?

Because we are human.

All developers suffer some form of imposter syndrome at some time. You only see the takes where it works. You only see the rehearsed presentations in which it all goes well. You don't see the bad bits. You don't see the mistakes. The head scratching. The development dead ends.

In the video, I reference an academic paper recently published: [Towards Supporting Programming Education at Scale via Live Streaming by Yan Chen, Walter S. Lasecki, Tao Dong](https://arxiv.org/abs/2010.15015) which interviewed a number of Twitch streamers and developers on their views on the process. The main overriding comment is that you get to "look over the shoulder" of someone and see exactly how they go about writing code. You get to see and hear their thought processes. You get to learn why they did what they did, why they wrote that line of code that way. You get to see the lines of code they deleted before they finished.

So the entire setup of my Twitch streaming is to try and connect with developers. To try and break the formal presentation style used so often in educational videos. To try and connect to them. And to that end, to be able to actually visually reach into the code and point to what I'm talking about.

The talk is about 10 minutes long, with another 5 of questions after.