
Lessons from my first year of live coding on Twitch - ingve
https://medium.com/@suzhinton/lessons-from-my-first-year-of-live-coding-on-twitch-41a32e2f41c1
======
jzelinskie
I've streamed myself programming on Twitch, and can echo some additional
knowledge in addition to what's shared in the article:

Don't expect anyone from Twitch to randomly discover your stream and have any
idea what you're doing. Programming anything that isn't a video game on Twitch
will be totally unfamiliar to their primary demographics. That said, use
Twitter or something else to BRING YOUR OWN AUDIENCE. Be prepared to stream
for a few hours or else you will likely never build up traction in your chat.

As this post says, vocalizing your stream of consciousness is vital; think of
it like pair programming with the chat. I try to engage the chat without
getting totally nerd sniped and ending up off topic.

I think the best way to really kick the tires on Twitch programming content
would be to stream podcasts and/or have a joint channel of shared programming
content and have many different programmers participating either via a shared
account or Twitch Teams[0].

[0]: [https://twitchtips.com/twitch-teams/](https://twitchtips.com/twitch-
teams/)

~~~
mdmnk
> a joint channel of shared programming content and have many different
> programmers participating

I like that idea a lot -- have been wanting to team up with other devs on live
twitch projects. If anyone is interested in getting this set up be sure to PM
me -- I have 14 years of dev experience in a plethora of languages:

\- Python \- C# \- Ruby \- PHP \- Javascript (front and backend) \- HTML / CSS

~~~
tekknolagi
I would be interested in joining! I'm working on (among some other things) a
compiler right now that could be fun to live stream.

------
Steeeve
So my kids watch people streaming non-stop. At first I had no opinion. Then it
seemed like they did it way too much and I fought it. Then I started paying
attention and found it interesting as well. For them it's gaming, game
discovery, and seeing personalities they enjoy regularly.

Something like this... I would really enjoy. Bookmarking this page so I can
have a look at all your streams. I would like to do this myself. It would be
interesting to be able to share exactly what it is that I try to get done on a
daily basis. It would be useful to show my colleagues and management
interests. I don't know how much they would pay attention, but even being able
to point back to a video at a specific time to share something would be
useful.

Unfortunately, I don't have a solo office, so figuring out a regular location
to stream from will be a challenge, but that's neither here nor there. I can
do it from home a few times without bothering anyone to figure out all the
logistics before I actually try to do anything real.

~~~
HiroshiSan
I wanted to see what imaqtpie's hype was all about and he ended up being my
morning coffee routine. That man is wholesome.

~~~
ikurei
I'm curious. Please, what's so "wholesome" about him?

I like him, he's fine. But I'm curious what converted you to stream-watching
in him.

~~~
HiroshiSan
Few reasons off the top of my head:

He works incredibly hard, is one of the best LoL players on the planet, he
loves his cat (SMOL CAT WHAT YOU WANT!?) & gf, I enjoy his wit, love when he
reads his new subscribers list, and so forth.

I like his personality, plain and simple. Couldn't care less about league of
legends.

------
noopkat
wow, author here. I didn't post this to Hacker News (I didn't even have an
account on here until 30 seconds ago), but thanks for the thoughtful comments
everyone! Is it weird if I address some of the questions in here or is that
odd etiquette? :)

~~~
TimJRobinson
Thanks for writing the article! It was really helpful for me.

One technical question: How do you make OBS switch to showing your browser
when you open it up to look at docs? Do you manually toggle it in OBS or is
there a tool available for this?

I was doing JS development using OBS and couldn't find a good way to make the
IDE show when it had focus and make the Browser automatically show when it has
focus. So I was frequently showing the wrong window to my viewers.

~~~
noopkat
> How do you make OBS switch to showing your browser when you open it up to
> look at docs? Do you manually toggle it in OBS or is there a tool available
> for this?

I keep things as lazy as possible, and just stream my entire desktop (with
slight crop) instead of a specific window. I have my browser window lined up
and positioned on the left so the webcam doesn't cover up anything. I then can
just CMD-tab to it quickly.

The benefit of this is that folks also see your development flow in a more
realistic way, as switching scenes can look slick but departs from how you
normally work.

~~~
glhaynes
Forgive my focusing on the unimportant things, but: what’s the slight crop
for?

~~~
noopkat
Sorry that probably sounded confusing - I was being pedantic in my
description. In the article I explain that I want private areas on my desktop
for watching chat and alert activity hence the crop of my desktop :)

~~~
glhaynes
Oh yeah I see that now. I was thinking that was all done in the scene devoted
to privacy but that makes sense. Thanks!

------
rctay89
I wonder if you could include all keystrokes like Ctrl-x in the screencast,
maybe even a timeline of the keystrokes; I imagined it to be "running" along
the screen like in Guitar hero. Nevertheless this is a great effort in
distributing latent/implicit knowledge, which I think coding to be heavy on;
for example, how would a terminal user know that Ctrl-R is reverse-search?
(don't get me started on finding out about going back to a _previous_
match...) I remember how I found out about Tab by accident... While being
ignorant of these epistemes are not barriers, they do slow down/kills joy.

~~~
bjterry
Most people who create Blender (a 3D graphics app) video tutorials use an
addon that includes the keys they are typing on the screen. It is very useful,
and would be interesting especially for emacs or Vim users who use a lot of
bindings.

~~~
jasonm23
I made a Twitter account called @emacs_gifs a while back and used a modified
version of KeyCastr (on Osx.) to display keystrokes...

Results were quite acceptable.

------
avitzurel
I started streaming a few months back and I absolutely love it.

Some solid tips on here and OBS is a surprisingly good piece of software but
it can be a resource hog at times.

The hardest thing about it is to keep the schedule and be emotionally
available when the stream comes on. I wrote about it here [1].

What I like the most is working through a project in stages on the stream.
People can connect with the project and also contribute to it. Working on one-
offs tutorial style did not really work for me.

I stream full stack content. From Node.js to Golang and even Devops. [2]

The screen to not show the desktop when doing secret things is good, however,
as mentioned here I would definitely recommend a second screen. It changes the
way you work a lot.

[1] [https://fullstack.network/announcing-my-most-ambitious-
strea...](https://fullstack.network/announcing-my-most-ambitious-streaming-
project-yet-4813a1b79cce)

[2] [https://www.twitch.tv/kensodev](https://www.twitch.tv/kensodev)

~~~
eropple
_> Some solid tips on here and OBS is a surprisingly good piece of software
but it can be a resource hog at times._

"Hog" implies bloat to me? Video's _hard work_ , though, and OBS will chew a
CPU but it really needs to (unless you use a GPU encoding solution like NVENC,
but there are quality concerns there). I have a second PC--actually a pretty
nice 4U rackmount in a 6U wheelie with my audio interface--dedicated to video
crunching and audio mixing for when I do livestreaming events for folks.

~~~
avitzurel
I use a 2017 iMac 5K with 32G memory and quad core and OBS is absolutely a
lightweight for this one.

Before, I was using a 2015 MBP and it was having a VERY hard time handling the
streaming at 1080P (mind you I was running 2 screens off of it).

I am not sure it's a hog because of bloat, it's just that you need a more than
average computer to stream with good quality.

Funny story is that once I clicked stop on the stream and it kept streaming.
Showing me having a phone call, going on Facebook and just continuing with my
day. I had to just shut down my computer because OBS would just not stop.

On the new iMac I had absolutely zero issues with it and I am running it with
2 screens and 5K on the main screen.

~~~
eropple
Fair enough. I also run an NDI sync, a browser overlay, and a _bunch_ of
cameras, which probably adds to the load.

------
thinkingemote
There is a game developer on twitch that uses his VODs (video replays) as a
versioning system as he doesn't use anything. "Wait, what and why did I do
this? Lemme look at yesterday's vod".

It suprisingly works quite well and is more entertaining for the viewers to
see what and how bugs get introduced.

~~~
stctgion
Sorry are there actually developers who don't use VCSs in 2017?

~~~
tokenizerrr
Yup. And it horrifies me every time.

------
rmccoy6435
I have live streamed some stuff before when coding, and I must say most of the
people who come into a channel doing coding are really nice people who ask
really insightful question, or offer good solutions. It's like Mob Programming
with the internet (or as the author here says an "MMOPP"), and it also makes
me a better programmer because before I even think about writing any code I'm
thinking about how it will be perceived by someone else peering over my
shoulder (akin to the pro arguments for TDD).

------
bleair
Nice writeup. I think the people who are good at twitch streaming are
charismatic and/or funny. Being entertaining is awesome, but isn't necessarily
the same as being good at reasoning through problems or engineering good
software.

As a watcher of such streams, be they game session I wonder how people don't
see something and go crazy because they can't actively participate - the
author does mention that some people will have contributed pull requests by
the end of the session. :)

~~~
markatkinson
I suppose that makes the twitch stream an important learning experience for
both parties. You can participate in the chat and make suggestions, ask
questions. If you are driven mad by someone doing something differently or
making a mistake well then it might be healthy to try and overcome that.

~~~
noopkat
this is a great answer. I have had viewers come in and become _very upset_
that I'm writing javascript in ES5 (usually this is because I'm maintaining a
library I wrote many years ago). I have a chat macro to explain why I'm not
upgrading the library to ES2015/2017 and hope folks can stay pragmatic and
respectful. Besides, I welcome pull requests ;)

------
stale2002
Hey! I do this too on twitch.

I mostly stream myself doing algorithms though. Basically I do the Google
Style interview questions, and almost run my stream like I am doing an actual
interview.

[https://www.twitch.tv/stale2000/videos/all](https://www.twitch.tv/stale2000/videos/all)

The reality of the livecoding scene is that most "real life" coding is
actually pretty boring to watch.

In order to be actually interesting, you have to be talking and explaining
what you are doing the entire time. I am glad that other people out there are
having success!

~~~
artosispylon
Watched your most recent algorithm video. Good quality stream!

P.S.: Sieve rhymes with live, as in "I live in California." :)

~~~
bigtunacan
But sieve also doesn't rhyme with live, as in "Live from California".

------
Kiro
I want to do this but I'm afraid of two things:

1\. Show how horrible my code is.

2\. Accidentally leaking sensitive stuff.

~~~
avitzurel
1\. Stop 2\. Just use a part of your screen that is off the recording. Never
open `.` files on the stream. Never login on the screen, always off of the
screen. If you are showing AWS cli console stuff, make sure you hide the
public IPs and public DNS of things.

~~~
Kiro
2 is related to 1 - there are credentials hard coded all over the place.

~~~
striking
Clean up your code before you start.

Maybe this exercise will make you a better programmer.

~~~
mdmnk
I do this sometimes -- however I also think that cleaning code on stream is
even more beneficial. Teaches you to code under pressure and scrutinize your
code more-so than when you're alone sometimes. Also its fun for people to see
how to reduce 30 lines to 5 etc.

------
ioddly
This is an interesting topic to me, as I'm giving a talk with some coding in
two weeks and a major concern of mine has been making sure that what I'm doing
is interesting and more importantly followable. Normal coding for me just is a
flurry of vim activity.

Questions for anyone who does this or views these sorts of streams:

Do you find that people can follow what's happening in vim well enough? I've
considered just using plain VSCode because I'm concerned jumping around too
much as I do normally might be hard to follow.

Do you feel that this might be good interview practice as well, since the
process of explaining code as we write it doesn't come naturally to some of
us?

Any additional tips to make sure what I'm doing is comprehensible would be
appreciated.

~~~
avitzurel
Talk!

Just talk your mouth off, seriously. It's the best tip I can give you to make
it interactive.

You gonna open a file and do something, say it, don't just do it. When you are
thinking of a problem, ask for suggestions from the crowd/viewers...

Also, ProTip. Vim is a problem if you navigate really quickly along splits
(like you should), people lose focus and will just stop following.

I switched to Atom for my last stream (I hate every minute of it) but it slows
me down enough so people can follow better.

Hope this helps

~~~
StavrosK
Huh, that's very good advice. I would never have thought about slowing myself
down, but now that you mentioned it, it makes perfect sense.

~~~
will_pseudonym
Just act like you're sitting next to a new coworker, teaching them what you're
doing.

~~~
avitzurel
Act like you're voice controlling your fingers

------
nightcracker
If you are programming, especially in a live studio environment, you should
really invest into multiple monitors.

~~~
elif
if you're trying to present to viewers, two monitors will make keeping them
focused into a ridiculous chore.

That is like telling a speaker to prepare two slide decks and switch between
them during the talk.

~~~
minimaxir
Using a second monitor for live streaming is more useful for things useful to
the streamer but which do not need to be shown on screen to readers (e.g.
frantic Stack Overflow research when the code breaks, or analytics as the
article mentions).

~~~
memco
While it may not work for everyone, Casey Muratori (of the Handmade Hero
referenced in the article) shows pretty much his whole desktop, including the
times he is looking up documentation. Granted, he's not searching SO, but
actual API documentation for Windows OpenGL or CPU instructions, he goes
through his whole thought process including the time and effort it takes to
understand and interpret documentation.

Then again, he also doesn't interact with chat at all while programming and
only looks back at the end and answers questions afterward. So he breaks a few
pieces of advice others might say are essential for a stream.

~~~
noopkat
I think showing your process is really important and helpful to those watching
your stream. I always show what I'm looking up in my browser. Folks at home
are really great at helping me read it, as I'm often talking while trying to
skim the docs quickly - not a good combination!

------
gallerdude
I'm really inarticulate, so my biggest fear would be people not able to
understand what I'm saying...

~~~
jonlawlor
Then live coding might be a way to improve that skill and get over your fear!
Nothing feels quite like facing a fear head on.

------
mb_72
Very interesting, however as comfortable as I am after 20+ years with some
degree of coding in front of others (pair programming, fixing something with
the boss breathing down my neck) I couldn't imagine doing this as strangers
watch on; it's, at least for me, sharing a too intimate or personal
experience. I also have a long-standing habit of using four-letter comments as
attention-grabbing and transitory 'to-do' markers, which would likely be in
breach of any kind of streaming service's TOS.

~~~
Buttons840
There's lots of bad language on twitch. Racial slurs are not acceptable
though.

------
rmason
Been learning the serverless framework and found a couple of videos on YouTube
from people live coding on Twitch.tv.

I'm not a gamer and would have never thought to look on there for tutorials.
Their search isn't very good and I've found YouTube is the best place to find
out who is using Twitch. There are guys with a thousand followers who don't
show up on search! Still a very valuable outlet that I bet most coders don't
know about.

------
mdmnk
i do this a lot at twitch.tv/mdmnk (less so recently due to losing a job and
moving to a new state, then getting a new job and once again moving to a new
state).

It was stressful at first... had to deal with trolls (and also about 80% sure
hackers that were trying to get me to root my system live). After I got the
hang of it all though it became a lot of fun.

I stream game development which is a hobby of mine (software engineer for the
interwebs by day). Being that it is a hobby I am still learning. I've been
able to make some internet friends, pick up techniques and learn more about C#
thanks to twitch streaming. One day I would absolutely love to transition to
full-time independent game development and do it all live on Twitch.

Another thing to note - although I have 14 years of professional experience, I
used to get nervous coding in front of people, thanks to streaming on Twitch
that went away -- I'm no longer afraid to fail or mistype. My overall
confidence has improved. I strongly recommend live coding.

edit: I've also gotten MUCH better at talking through my code because to
maintain an audience on twitch you have to talk and explain what you're doing
almost the entire time.

~~~
arcaster
I haven't tried but it seems like a good way to linearize my thought process
at times and give myself some form of accountability to prevent getting
distracted as often.

However, I'd be worried about accidentally revealing a system password or
credentials by accident.

------
alexashka
Suggestion: include a link to your twitch channel, in the first paragraph of
this blog post.

It's good advertisement, and it lets people have a look at the results of your
streaming. For all we know, your stream could be great, good, bad or not at
all. We don't know.

Without that information, it is hard to know what to make of the rest of the
blog post.

~~~
noopkat
Thanks for the advice! I went ahead and did just that.

------
pacaro
It would appear that the author is trying to post as noopkat and has been
declared dead (new account?)

~~~
mkl
New accounts that post a lot right away sometimes get their comments killed
automatically, yeah.

You can vouch for a comment to resurrect it by clicking on the "2 hours ago"
or whatever (to get to the comment's page), then clicking "vouch". (Vouching
requires 30 karma, according to
[https://news.ycombinator.com/item?id=14326108](https://news.ycombinator.com/item?id=14326108)
.)

~~~
noopkat
thanks to those for resurrecting me! I'm new around here :D

------
ranman
I started the twitch.tv/aws stream and we've seen some success. I like these
tips!

One issue I have is the balance between high quality broadcasts that don't
have the opportunity for frequent audience input - or lower quality broadcasts
that are more interactive.

------
dsjoerg
Thanks for this — I've been thinking about doing the same thing and this is
super helpful.

------
manbearpigg
liveedu.tv (formerly LiveCoding) has a coding audience orders of magnitude
larger than that on Twitch at this moment.

~~~
stale2002
I don't think this is really true.

Right now there are 300 live viewers watching people in twitch Game Dev.

And going to the website of liveedu.... well it is aweful hard to find a list
of live streams ordered by number of currently active viewers. It almost seems
like they are trying to hide the number of active viewers, perhaps because
they are so low.

The closest thing that I found to a list of active live streamers shows me
that there are 2 streams running right now, with a total of 15 users watch.

~~~
pbhjpbhj
It could have changed within the hour, especially if - as others said - it's a
morning routine thing. In that case almost all users/streams could stop across
a one hour period.

