Hello friend! 👋 I'm CJ. I run a YouTube channel / twitch stream called Coding Garden with CJ. I have been live streaming myself teaching coding and building apps for about 2.5 years now, and I have been asked a lot of the same questions... frequently. This post is meant to answer most of them.
If you have not heard of my channel you can check it out here:
If you have a question that you believe should be listed here, please open an issue.
- Most Asked
- History of Coding Garden
Twitch / Stream
- Why don't you stream on YouTube anymore?
- What is your schedule?
- Do you do this fulltime?
- What are the rules of the chat?
- Why is everyone typing !drop?
- Why is the chat in slow mode?
- How is your chair (and hair) green?
- What are those LEDS on screen?
- What are cjClap POGGERS PogU OMEGALUL etc. I see in the chat?
- What are channel points / seedlings?
- How did you make those overlays / chat window?
- Will this stream be available later?
- Can I be a mod?
- Tech Preferences
- Setup / Computer
Right now, Just Black (with a few modifications).
You can get a link to my current theme (including the settings to modify it), as well as theme's I've used in the past in my settings repo:
This is not a VSCode plugin. This is just built in to a Mac and works anywhere:
- Mac: CMD + CTRL + Space
This also works on Windows 10:
- Windows: Windows Key + Period or Windows Key + Colon
It's called Time Out by Dejal. It is Mac only software.
I have it setup to show:
- 10 second micro break every 15 minutes
- 5 minute long break every 60 minutes
There is also a cross platform break timer call Stretchly. I have not used it but a lot of people have recommended it.
It is an inexpensive 60% mechanical keyboard from a company called E-Element. I got the black version with brown switches. I don't know much about mechanical keyboards, and I got this one just to try it out. It works well enough for me.
- Affiliate link (support me) - https://amzn.to/2nFa2wo
- Direct link (protect your privacy) - https://www.amazon.com/gp/product/B01M3UQX1Y/
Also checkout https://coding.garden/gear for more info on my setup.
Some of the ones I use most often:
- !npm - npm
- !mdn - Mozilla Developer Network
- !gh - Github
- !w - Wikipedia
- !g - google
No. I have a full time job.
I have been live streaming for 2.5+ years.
My first live stream was broadcasted to YouTube on February 19th, 2018. My YouTube channel had about 300 subscribers at the time, and there were a max of 3 people in the chat.
Between February 2018 and October 2019, I did 158 live streams on YouTube only.
On October 2nd, 2019, I did my first live stream on Twitch + YouTube. I was using some open source software called docker-multistreamer to do this. At the time I was not a twitch affiliate, so I was able to cross-stream without violating any terms.
This began my slow transition from YouTube to Twitch.
Between October 2019 and April 2020, I did 100 live streams on YouTube + Twitch.
On April 27th 2020, I signed the Twitch affiliate agreement and started streaming only on Twitch.
Between April 2020 and July 2020, I did 52 live streams on Twitch only.
On July 20th 2020, I got accepted into the Twitch Partner program.
In total between February 2018 and July 2020, I have done 311 live streams.
I'm an educator at heart. My live streams started as a way for me to continue teaching outside of the classroom.
I taught Full Stack Web Development at a code school for 3+ years. I taught 150+ students and 6+ cohorts. That's over 700+ in person lessons, breakouts, presentations and 1 on 1s with students. During this time, I honed my teaching, mentoring and presentation skills. My live streams are very similar to how I ran and structured my in person lessons.
My students were often at many different stages of learning, so my teaching style reflected that. Instead of pre-planning all of my lessons, my lessons were planned the day of, based on where my students were and based on what they needed to learn next. This was the beginnings of my improvisational style. My lessons were often live code-alongs, and I often would need to quickly code an example from scratch to demonstrate a concept.
My early YouTube videos were actually meant for my students. I was teaching a class of 30 students with 1 assistant, and we needed a way to efficiently provide help to all of the students in a timely manner. My YouTube videos were a way for me to "clone" myself. If a student was having trouble with a topic, I could point them to a video.
I took a 3 month break from that job in early 2018, and my live streams were a way for me to continue teaching outside of the classroom. I returned to that job in mid 2018, but I continued to live stream in my spare time, and continued to grow my channel.
In terms of getting started with live streaming hardware / tech / logistics: I used to play and record music, so I already had microphones / audio recording equipment on hand. Also, before I began live streaming myself, I had started to live stream my students' project presentations, so I already had an HDMI capture card on hand. I'm also just generally knowledgeable / handy when it comes to computers / tech, so setting up live stream equipment was second nature for me.
The same way I name most of my projects 😀. I searched for a domain!
The coding.garden domain was available, so I went with that. The garden theme is nice because it plays right into the idea of growing as a software developer.
I switched to twitch fully at the end of April 2020. I will do an exclusive live stream on YouTube occasionally, and a supporters only stream on YouTube occasionally, but my contract with twitch restricts me from cross streaming to Twitch + YouTube simultaneously.
There are several reasons I switched to twitch:
- Better APIs / Integrations
- Lower Latency
- Stream Clips (created by anyone)
- Community support
- The majority of live coders in this space are on Twitch, not YouTube
- Community features like teams, raids, hosts and watch parties.
- More emotes!!
View my schedule here: https://www.twitch.tv/codinggarden/schedule
Also, join the discord for updates, unplanned streams and go live notifications: https://coding.garden/discord
No. Just part time. See the personal questions section for more info.
All chat messages should abide by the Coding Garden code of conduct: https://cdg.sh/conduct
- Be kind.
- Be mindful of your language.
- Be respectful.
- Be considerate.
- Be open minded.
This is the drop game! The garden of seedlings at the bottom center of my screen are all of the drops that have landed there.
- Drop a seed: !drop
- Drop your twitch avatar: !drop me
- Drop any twitch / BTTV / FFZ emote: !drop codinggHeart
- Drop an emoji: !drop 💚
I used to be able to respond to every single message in the chat, but this is just not possible anymore. Slow mode gives me a fighting chance 😅.
The mods (and I) adjust slow mode based on how many people are watching and how busy the chat is.
Whatever the slow mode is set to, use that time to construct a beautiful and thoughtful message instead of just spamming.
I use a blue screen. In the early days, I used a green screen, but with the garden theme, things are often green, so I switched to a blue screen.
They are controlled by twitch chat. I built it live on stream: https://www.youtube.com/watch?v=onkzhfXJlp0
You can make the LEDs on the screen change state using "!led (8-digit binary number)". 1 is on, 0 is off.
You can see a list of the Frankerfacez emotes enabled for my channel here.
You can see the list of BTTV emotes enabled for my channel here.
You can earn channel points (seedlings) by watching the stream. Learn more about how much you will earn here.
Seedlings can be used to redeem rewards like stretch, hydrate, focus mode, code reviews and more.
Click the icon below the twitch chat to redeem them.
All of my overlays were created live on stream and all of the code is open source under the MIT license! Read more about that here.
Yes. You can find the most recent live streams on my twitch video page.
Live streams are archived / clipped and uploaded to YouTube about 48 hours after they have happened.
The first rule of being a mod, is you do not ask to be a mod.
All of my mods are long time viewers of the stream, have gained my trust over time and positively contribute to the streams / chat.
I have a Bachelor of Science in Computer Science and a Minor in Mathematics. My university did not offer any CS specializations at the time, but I did take a few courses in Cybersecurity / Computer Forensics.
I have a highly technical education / background, but I've been self learning all my life. I started teaching myself basic programming and building websites when I was in middle school.
I work full time as the Chief Full Stack Engineer at a Software Consultancy in Denver, Colorado.
Whatever you want it to stand for.
Everyone has always called me CJ. Just call me CJ.
Please don't ask about my first / last name, or share my first / last name in the chat if you do know it.
You don't want to know. You will either be disappointed, surprised, or it will have no effect. Either way, you really don't want to know.
I usually say I'm 75+ on stream as a joke. I'm a bit younger than that. Please don't ask about my age, or share my age in the chat if you do know it.
I do have a dog! His name is Panzer. He is a ~4 year old Saint Bernard. He weighs about 120+ lbs. He is a very good boy, but he is afraid of the stairs, so he will not come down stairs to where I stream.
I was streaming at an undisclosed location once, and he did make an appearance.
One day I'll setup my stream upstairs and have a dog cam 🐶.
- The days of needing to ssh into a remote computer to edit code in a terminal are long gone.
- Terminal based editors make it very hard for viewers to follow what is happening, especially beginners.
- I prefer to not memorize specific / custom keyboard shortcuts and instead rely on global / universal keyboard shortcuts.
- I also prefer to use the intellisense / autocomplete / snippets provided by VSCode. I realize these can be setup in VIM, but this requires a lot of setup / configuration / tweaking that I do not want to do.
I have talked about this in depth on many different live streams.
Here are a few timestamped links that will answer your question:
It really depends. Some services I use:
Vercel formerly now.sh
- Good for static websites (hosted on a CDN)
- Serverless functions
- Good for long running processes (think websocket connections) with easy deployment
- Cheap VPS, requires linux system administration / setup
- Good for static websites (hosted on a CDN)
I have done a live stream where I setup my Macbook for development from scratch and answer several of the questions you see below here.
I have streamed myself setting up / talking about my equipment here. My setup these days is mostly the same, I just use a desktop gaming PC for streaming instead of a gaming laptop, and I stream at home in my basement instead of in an office space.
Preface: I am not an apple "fan boy". My macbook is the only apple product I use.
- I don't have an icloud account.
- I don't use siri.
- I have some old iPhones I use for testing occasionally, but I use an Android phone as my daily driver.
Reasons I use a mac:
- Everything just works™️ on my Mac.
- I spent 6+ years in Windows IT support. I've used Windows 95, XP, Me, 7, Vista, 8 and 10. The amount of things that have gone wrong on my Windows machines is immeasurable.
- Most of my old windows laptops have become linux machines. I prefer Ubuntu because I'm used to it and it mostly just works, but I've used / installed linux distros since before point and click installers were the norm. I've spent weeks searching for working drivers and tweaking linux systems to get them working. Even today, there are quite a few proprietary video drivers still required to get things working fully.
- OS X is based on FreeBSD.
- Most tools / utilities for linux are supported / work out of the box.
- I can use a native Bash shell.
- I can run Xcode and build / test iOS / mac apps without the need for any 3rd party tools / services.
- I do creative things outside of coding. The Adobe Suite, Abelton live / logic pro all work flawlessly on my Mac.
- If I want to use Windows / Linux, I can dual boot or use a virtual machine.
Bash is my preferred shell. I have aliases setup in my
You can see my
.bash_profile including all of my aliases here.
I use a tool called iStat Menus. I have version 5.
I switched to Google Chrome for a while, but Firefox has caught up in terms of performance / features, so I'm back to Firefox.
I use the following Privacy Related Extensions. Firefox + these extensions is my preferred way of browsing the web instead of using a browser that has these features "bundled" in:
- Adblocker - uBlock Origin
- Tracker Blocker - Privacy Badger
- Firefox now includes tracker blocking, but I leave Privacy Badger enabled.
- Removes cookies from websites that are not in my whitelist whenever a tab is closed. An additional precaution to tracker blocking.
- Caches CDN links locally and intercepts requests to serve from the cache. Prevents CDNs from tracking you across websites.
- This isn't needed as much these days, as most websites use HTTPS, but this prevents certain redirect / plain text attacks from occurring.
Themes / customization:
They respect my privacy.
They have a great way to search across other websites with bang commands.
I use an extension called Enhancer for Youtube
You can search across all of my past videos / livestreams here.
You can also try searching on YouTube directly.
I use an Ikea Markus chair. They don't sell the green one anymore, but you can still get a black / grey one here.
It's not. The measurement displayed is in degrees fahrenheit.
This seems to be an issue a lot of people have at random.
- Try refreshing the page.
- Log out / Log in.
- Try a different browser.
- Try using a different device.
- Try disabling extensions.
- Try a different operating system.
- Try using the twitch app instead of the browser.
- Try using a twitch chat client like Chatty or Chatterino.
- Write your own twitch client with tmi.js...
- Try all the things.
Sorry this is happening. If none of these things work, contact twitch support: https://help.twitch.tv/s/contactsupport