I have some exciting news! As you may already know if you follow me on Twitter, I've recently started my very own podcast!!
TLDR; - If you're not interested in the whys or hows, and just want to listen, then head over to The Unhandled Exception Podcast website. This includes show notes, and also links to the major podcast apps, so you can listen using your favourite podcast app (and hopefully subscribe!).
If you're interested in reading more about not just why I've started it, but also my learning and experience so far, then read on...
I've been an avid listener of podcasts for many years, and I've learnt a huge amount about various programming topics over time because of this. The great thing about podcasts, is that you can listen whilst doing other things - eg. your commute (pre-covid that is!); walks or runs; doing stuff around the house; mowing the lawn, etc. I find video content much more difficult to find time to consume.
The benefit to listening to podcasts for me also hasn't just been about learning either. Hearing the passion the hosts and guests have about both our industry and the wide range of technologies that we're lucky enough to have to play - is one of the reasons I've grown to become so passionate about software development myself, and got into blogging, started .NET Oxford, and public speaking, and now this podcast.
I love chatting with people about programming technologies, and have quite often found myself thinking, when at user-groups or conferences, that an indepth conversation I'm in with one or more people would have made an awesome podcast episode if only it had been recorded! Through .NET Oxford and going to conferences, I've met so many amazing people. I really enjoy the tech talks at these events, but quite often find that the conversations inbetween the talks, or afterward are just as valuable. These aren't a one-way "one-to-many" talks, and can quite often go in different directions. This is what I want to try and capture in this podcast.
The rest of this blog post will focus on my initial setup, what tools I'm using, and some of the things I've learnt so far...
One of the first things I looked into was how to host the podcast. Being a developer, I can easily knock up a website and throw the mp3s onto something like Azure Storage. However, there are plenty of other things - eg. registering with all the major podcast services; generating stats; making sure the RSS feed is setup correctly, etc, etc. So I decided to go with one of the popular podcast hosting platforms, so all that stuff has been done for me, is tried and tested, so I can focus on the podcast.
After a bit of research, I chose BuzzSprout, which seemed to tick all the boxes, and was well spoken about in my research. I'm quite happy with this choice so far. It's been very easy, and was effortless to add my podcast to all the major providers.
Here's a screenshot of the management toolbar...
The Episodes tab is obviously where you manage all your episodes.
The Players tab gives you embeddable HTML that you can put on websites, etc. You can embed players for single episodes (like I do on the website, which I'll talk about shortly), or you can create players for multiple episodes.
The Website tab allows you to create a website. The preview for this looks pretty much what you'd expect. I decided to create my own site though. Not because there was anything wrong with the Buzzsprout generated site - but more because I had been looking for an excuse to play with Hugo and GitHub Actions! It also gives me more scope to expand and improve the site how I want over time.
The Directories tab gives you a list of the main podcast services (Apple Podcast, Spotify, Stitcher, etc), and allows you to click each to register. It was super-simple to register on each, and it just worked.
Monetization allows you to add sponsors. I haven't used this yet. Currently, the Podcast's current only sponsor is my own company, Everstack.
The Stats tab gives you charts and numbers about downloads...
The first bump you see there is the day I first announced the podcast on Twitter, and the second is when I mentioned it on LinkedIn.
You also get various other stats - breakdowns per episode, podcast app, locations, devices, etc.
With all that in place - how do we do remote interviews? I wanted to ensure that each persons' audio was recorded to a separate channel (the importance of which was confirmed when I was editing the first guest episode!). Also, it's better to have audio recorded on each persons' computer locally, rather than me recording everything on my end. You can do this manually and ask guests to record their audio themselves and send it to you. Or you can use a service to do this for you. Two popular ones are Squadcast and ZenCastR. They record each guest locally in high quality wav format, then automatically upload it to your account. Both have high praise when reading about them online. I went with Squadcast because they also support video during the call. Recording the video isn't support, but it's still nice to be able to see the other person during the interview. ZenCastR does have a video in beta, but when I went to try it, I had to go on a waiting list. This was my deciding factor, as I wanted to use it straight away, and Squadcast worked really well during my first guest episode with Derek Comartin! So I'm going to stick with this for the time being.
At the start of lock down I invested in a Blue Yeti X microphone. This has served me really well, as I've been remotely pair programming all day, so it gets used all the time. It's also great when I'm in meetings, as I can walk around the room and my voice still gets picked up almost as if I was right next to it. However, I'm finding for podcasting, this is a big disadvantage. It literally picks up everything - from room echo, to my kids shouting upstairs.
My first couple of episode were recorded with the Blue Yeti, and whilst you couldn't call it an echo as such - there's definitely an 'in a box' kind of sound to it. I've heard of people doing all sorts of things to get around this - eg. putting pillows and blankets all over their walls, even recording under a duvet! Doing a bit of reading on this, it turns out that there are two types of microphones - condenser and dynamic. The Blue Yeti is a condenser mic, which due to the way it works, picks up everything (as I've found out). For dynamic mics, you want to be much closer to the microphone and it picks up a lot less background noise. I don't regret getting the Blue Yeti, as it's certainly had a lot of use over the past seven months, and it's probably a great mic for podcasting if you're in a treated quiet room with no background noise. But it's not really working for me and my home-office setup as far as podcast recordings are concerned. I wanted to try out a dynamic mic, and coincidentally I found a very old Behringer XM8500 budget mic in one of my cupboards (£15!). According to Amazon, I bought this in 2013. This would have been when I was playing the guitar a lot more and tried a bit of singing whilst playing (probably a good job I didn't continue with that!). Either way, this is a dynamic microphone (albeit quite a cheap one). It's XLR, meaning I also needed an audio interface or mixer - so last week I ordered a Focusrite Scarlett 2i2 audio interface, and did a few test recordings with the XM8500. And I found that there's a huge difference in lack of background noise compared to the Blue Yeti! Remember this is a £15 mic! Although, obviously there's the additional cost of the external audio interface, which the Blue Yeti doesn't require. Whilst the XM8500 sounds pretty good for a £15 mic - given I've now invested in the audio interface, I've decided to upgrade to the Rod Podcaster, which is also a dynamic mic, and should hopefully sound better than the XM8500. I'm looking forward to this arriving next week so that I can compare all three mics - the Rode, XM8500, and the Blue Yeti! Either way - the moral of the story is that if you're buying a mic for podcasting and you're not in a treated studio - do some research on dynamic vs condensor mics. It's too early for me to say I recommend a dynamic mic over a condenser mic - but from what I've experienced so far (and my various readings), it definitely feels that way.
Another part of all this is the audio editing. This is actually something I'm quite enjoying. So far I've been using Audacity, which is a fantastic open-source cross-platform application. It's super-easy to modify multiple tracks, chop out bits, and move stuff around. I'm finding it amazing how easy it is to tidy up audio without being able to tell when listening back. Eg. removing erms, and ums, pauses, etc. Also because each speaker's audio is recorded to a separate channel, it's easy to clean up cross-talk where both speakers start to talk at the same time, and make it sound seamless. Once used to using Audacity, especially if you learn a few of the keyboard shortcuts - it becomes very efficient to do this editing.
I'm also currently trialing Adobe Audition to see which I prefer. I've quite often found that it would be useful to have some of Adobe's other apps - eg. Photoshop, Illustrator, etc. But couldn't really justify the ongoing subscription cost. However, having all of those, plus now having Adobe Audition for podcast editing - it's probably going to be enough to warrent the all-apps subscription.
As mentioned above, I could have just used the automatically generated Buzzsprout website. But I decided to create my own to (a) give me greater flexibilty to grow and change it over time, but also (b) to have an excuse to play with the Hugo static site generator, and also GitHub Actions! The details of these are best saved for a different blog post, but I've been very impressed with both! Hugo makes it very easy to create these sites (The UEP website source code can be found here), and GitHub actions build/deploy time is insanely quick! I normally use Azure Pipelines, but GHA seems to deploy so much faster. But that might be a Hugo thing too.
The show notes will appear both on the website, and also in your podcast app. This will include all relevant links from each show.
I also plan on adding support for comments to the website fairly soon.
A huge part of podcasting is the guests. Whilst I'll do some episodes solo, I'll try to keep them short, as a big part of this is the conversational aspect - eg. it's not just someone doing a talk. I have a list in my notes of people I'd love to have on, including a couple I've asked already and have agreed to join me for an episode.
I was extremely lucky in that for my first guest episode, Derek was extremely helpful and supportive, and made it super-easy. That was the first time I've ever done something like that, and I quickly learnt an awful lot through doing it. Enough that I can hopefully at least sound like I know what I'm doing next time! So a huge thank you to Derek for being such an awesome first guest!
I hope this post has been useful if you've been considering doing similar yourself. Or even if you've not, but are interested in my initial experiences.
This is early days yet, but I'm really enjoying this so far. Feedback has been positive so far too. I have some great guests in the pipeline which I'm really looking forward to recording episodes with.
The more popular this becomes, the more content I'll be able to create - so if you can help me out by sharing on social media, and rating the podcast in your favourite podcast app, that would be amazing!
Happy listening! :)