# Coding with Jess
## Background Music
Check out [Free Music Archive](https://freemusicarchive.org/License_Guide) to see how I can play music in the background while coding.
## Other
Goal: Get feedback from others.
Coding with Jess Goals:
- 1,000 mailing list subscribers in 2020
- 10,000 hours of video watched in 2020
Hi and welcome to Coding With Jess - where you code along with me while I build a thing!
I've been building web applications professionally for over a decade and have shipped dozens of products, from MVPs for brand new startups to enterprise software for Fortune 100 companies. I've also had my share of bumps and bruises along the way.
Every week, I livestream a coding session working on a variety of web applications and related software. We use technologies ranging from Ruby on Rails to Javascript, Postgres to Amazon Web Services.
But *this is not a how-to for a particular technology!* It's about **how to think and work as a software engineer.** I focus on the fundamentals of software development: how to plan, design, develop, and ship production-quality features.
Livestream episodes are usually two hours long, and we use a pomodoro timer to keep the energy high - 25 minutes of focused work followed by a 5 minute break.
So tune in every Thursday at 11AM eastern and code with Jess!
If you'd like to watch some of the past live streams, I recommend you check out Spotify New Releases, where I build a simple app to showcase new releases by artists you follow on Spotify. If that sounds awesome, and it is, then click on the playlist on the right.
Or, you can check out the most recent livestream video by clicking on the video on the left.
See you on Thursday!
I often bring in a guest to work with me. Pair programming can be a more natural mode of teaching since we have to talk aloud as we work. If you'd like to pair with me, reach out at
[email protected].
- - - -
## 2020-08-06
Inspiration from [Adam Wathan - YouTube](https://www.youtube.com/adamwathan)
- [ ] Split "Coding with Jess" into different tracks:
* Building Spotify New Releases with Rails
* Building the RedwoodJS Tutorial
* Building jessmart.in with GatsbyJS

- [x] Fast forward the pomodoros
- [x] Mixdown the audio
- [x] Upload all videos to YouTube
- [ ] Post videos to jessmart.in
- [ ] Write show notes for each episode
- [ ] Buy codingwithjess.com
- [ ] Design and launch web site
- [ ] Watch [TED talk on streaming](https://www.ted.com/talks/emmett_shear_what_streaming_means_for_the_future_of_entertainment/up-next?language=en)
- [x] Check out GitDuck.com
## First Livestream
Happy Halloween! 🎃
Excited to announce a project I've been working on for a few months! I'm 15 hours in to building a product from whiteboard to real users and I've recorded every minute of my work.
Today I'll be live-coding from 11am ET to 1pm ET if you want to follow along! Here's the link - join me here in 45 minutes! https://youtu.be/QrwlwoHhqqQ
## Examples I like:
- [Twitch](https://www.twitch.tv/jitterted)
- [My blog - tedmyoung.com](https://www.tedmyoung.com/)
- Requesting pair programming partners: [Remote Pair Programming on Twitch with Zoom - tedmyoung.com](https://www.tedmyoung.com/remote-pair-programming-on-twitch-with-zoom/)
- [Courses | Lets Build That App](https://www.letsbuildthatapp.com/)
- [Lets Build That App - YouTube](https://www.youtube.com/channel/UCuP2vJ6kRutQBfRmdcI92mA/about)
- [The Tech Lead](https://www.youtube.com/channel/UC4xKdmAXFh4ACyhpiQ_3qBw)
- [The Complete Guide to Rails Performance](https://www.railsspeed.com/)
- - - -
## Episode 1
- 1:39 - Pomodoro Technique - Wikipedia: https://en.wikipedia.org/wiki/Pomodoro_Technique
- 1:59 - Pomodoro #1 Begins
- UI sketch at whiteboard
- 4:02 - Spike
- A spike is a
- Exploring the Spotify API Docs
- 5:51 - First discussion of performance issues
- 8:20 - Release Date Precision discussion
- 8:38 - Get something working as soon as possible
- 9:04 - Working Scratchpad
- What are the goals for the session I'm working on
- 10:05 - Technology choices - going with a Rails app
- 11:00 - How to evaluate open source libraries
- "Any time I say 'just build it myself', that's a really
- 12:16 - Making the git repository
- 14:25 - Creating a README
- 16:30 - Using GitHub with ssh versus https
- 19:00 - How to evaluate open source libraries
- 27:00 - Pomodoro #1 timer goes off
- 27:24 - Stop talking
- 32:00 - Pomodoro #2 Begins
- 32:00 - Expunging Client Secrets
- 38:40 - REPL-driven development
- 39:02 - Spotify API OAuth flow
-
- - - -
Email to Jeremy Coleman:
So after digging around for a few weeks, my "mildly-crazy YouTube idea" is probably just that - only mildly-crazy. There are other people doing variants of the idea with some success, so in some ways that's validation that it's possible.
A few weeks ago, an experienced CTO and startup guy challenged me to "sell my knowledge, not my time." That got me thinking...
Basically, my idea is this: record unedited videos of (or just livestream) me "pair programming", either pretending that the viewer is my pair programming partner or actually pairing with other developers, while working on*real*applications. Not toys, not teaching videos, but building real-world products.
Why?
* Show how an experienced senior developer really works. How often we get stuck, have to look up documentation, how we debug, how quickly some things can be done. Not understanding *how* to work really held me up for a long time until I pair programmed with a lot of other senior developers and slowly absorbed their tricks and their mindset.
* Show how to build *real* things from scratch. Not teaching videos where the toy project is sanitized and pre-defined. But building real products while also exploring the requirements, hitting technical challenges, etc. Too often I think developers get stuck working on "one piece of the pie" and don't realize that it's entirely possible to actually build the whole thing yourself. (not necessarily recommended)
* Teach about how to pair program. If you haven't had a good experience pair programming with others, some people write it off as "not for me" when it can be a super productive and fun way to build software.
I think it's a good fit for me because I already verbally process while I'm coding, I love teaching, and I already have enough experience with video and sound production stuff to be able to put together decent quality stuff.
Anyways, that's the idea. And it's not only an idea. [Here's the first episode](https://youtu.be/FBjOTqMG0kc) . Be warned, it's long (1h50m) and I haven't yet perfected my audio/video setup, so the quality isn't what I know I can produce. My main question is: is this at all interesting? If so, what parts are *most* interesting, and what should be cut.
I'll probably record a couple more episodes then start releasing them weekly, but curious to hear your feedback. Feel free to share that link with others. I'm going to hit "publish" on it as soon as I can fill out the show notes.
If I keep doing this, would you be interested in being a guest pair programmer on the show?
- - - -
Episode 2 recap
- By the light of a brand new day, we actually made more progress than I realized:
1. We implemented a simple OAuth flow which would allow any user to connect to our app using their Spotify creds
2. We improved the overall look of the albums page
3. We discovered some silly things we were doing with secrets and fixed them
- Thinking more about how we want to store the access key and refresh token for the user. Three choices, really.
1. User's browser, in memory
2. Rails app, in memory
3. In database
- Today I want to focus on doing OAuth right and having a really clean, simple authorization strategy that doesn't require the user to do any account creation on our side