Software Sessions
by Jeremy JungPractical conversations about software development.
Copyright: © 2022 Jeremy Jung
Episodes
Building Indie Hackers with Courtland Allen
1h 10m · PublishedCourtland Allen is the founder of Indie Hackers, a community for people who want to start bootstrapped and profitable businesses. It was acquired by Stripe in 2017.
We discuss:
- Why a SPA was the wrong choice
- Caching strategies
- Using firebase and algolia
- Fighting spam
- Why he hasn't hired another engineer
- Focusing on the right problems
- Being a part of Stripe
Related Links:
- Indie Hackers
- @csallen
- Stripe
- How to Build a Life You Love by Quitting Everything Else with Lynne Tye of Key Values (One of Courtland's favorite podcast episodes)
- Ember (SPA framework)
- Ember fastboot (Server Side Rendering)
- Firebase (Authentication provider and NoSQL database)
- Algolia (Provides search for posts)
- Render (Web Host)
- Dribbble (Site to find design inspiration)
- Egghead (Developer video courses, got started selling zip files of videos to mailing lists)
- Balsamiq (Wireframing tool, added inspirational quotes to their loading screen so that people wouldn't complain about loading time)
- Dan Luu (Popular tech blog with no styling)
Music by Crystal Cola: Orion
Visit the Software Sessions website for a full transcript of the episode.
League of Legends Gameplay Engineering with Iris Zhang
53m · PublishedIris Zhang is a gameplay engineer at Riot Games on the League of Legends Champions Engineering team. She previously worked on backend services at Microsoft.
We discuss:
- Working at Microsoft and Riot Games
- Finding a role and team that fits you
- Backend services vs gameplay engineering
- Building features, testing, and debugging gameplay
- Using internal tools to create game logic
Related Links:
- Personal Site
- @riotnyanbun
- Clean Code (Book used by Microsoft team)
- Spring Framework (Java web framework used by League of Legends)
- Chef (Deployment tool used at Riot)
- Hazelcast (Cache that Riot Games switched to)
- What it's like to work on League of Legends
- Sylas (Champion that can steal ultimates)
- Clash (Public facing mode worked on by backend team)
Music by Crystal Cola: 12:30 AM / Orion
Async Programming and TCP Sockets in C# with Stephen Cleary
55m · PublishedStephen Cleary is the author of the Concurrency in C# Cookbook and a Microsoft MVP. He has also written many blog posts on asynchronous programming.
We discuss:
- Why he calls manual thread creation legacy code
- Using Async/Await and the Task Parallel Library instead of Threads
- APIs to avoid when writing concurrent applications
- Why you shouldn't write TCP Sockets
- Continuously reading from a socket to detect errors
- Building state machines to manage socket connections
Related Links:
- @aSteveCleary
- Getting Started with Async/Await
- TCP/IP Sockets
- There is no Thread
- Concurrency in C# Cookbook
Music by Crystal Cola:
- Intro: 12:30 AM
- Outro: Orion
How I write backends with Federico Pereiro
1h 13m · PublishedFederico has been writing backends for web applications since 2012 and is the co-founder and chef of alto;code. He wrote a post on GitHub named "How I write backends" that summarizes his process.
We discuss:
- His current stack
- Redis as a primary data store
- Reducing the number of layers in your software
- How duplicating input validation makes code harder to understand
- Integration tests over unit tests
- Minimizing dependencies
- Why you should never normalize alerts
Federico Pereiro
- Personal Site
- How I write backends
- Our company
- ac;pic, our pictures application
- ac;tools, our backend services
Related Links
Fred Brooks & The Mythical Man Month (conceptual integrity)
Steve Yegge - Code's worst enemy
Steve Yegge - Platforms rant (no backdoors, all services talking through the wire as if they were external actors)
Book of Hook - Suffer no jankiness
Taiichi Ohno & the Toyota Production System
Auto-activation in software
From agency to startup with Noah Labhart
53m · PublishedNoah is the CTO and cofounder of Veryable, an on-demand marketplace for manufacturing, logistics, and warehousing labor.
He's also the host of the Code Story podcast where tech leaders reflect on the path they took to create their products.
We talk about:
- Leaving the corporate world
- How poor estimation and scoping nearly sunk his agency
- Why bad software is worse than no software
- Hiring for an agency vs a startup
- Validating ideas and finding your first customers
Noah Labhart
- Personal Site
Other Links
- Code Story (Noah's podcast)
- Veryable (Current startup)
- Touchtap (Mobile app agency being wound down)
- Alcon (Previous employer)
- Dev Mountain Bootcamp (Bootcamp that Noah hired from)
Music by Crystal Cola
The good parts of AWS with Daniel Vassallo
1h 14m · PublishedDaniel is the co-author of the book "The Good Parts of AWS" and previously worked at AWS on the CloudWatch team. He left last year after over 8 years at Amazon to work on his own projects.
He's currently working on an end-to-end encrypted user database SaaS called Userbase. Daniel is also openly sharing his experiences building an audience, writing a book, and building Userbase on twitter.
We talk about:
- Why AWS has so many services
- His default AWS stack and how he chose it (Dynamo, SQS, S3 and EC2)
- Why he uses EC2 over ECS or EBS
- Why services like RDS and ElastiCache aren't in his book
- The difference between SQS and Kinesis
- Why AWS will probably never build a Heroku-like service
- The future of AWS
Daniel Vassallo
- Personal Site
- @dvassallo
Other Links
- The Good Parts of AWS
- Userbase
- Only Intrinsic Motivation Lasts
A decade long retrospective with Ben Orenstein
1h 0m · PublishedBen is the CEO of Tuple, a pair programming application for remote developers.
He currently co-hosts The Art of Product with Derrick Reimer.
We talk about:
- His first crazy programming job
- Why you should speak at conferences
- The trade-offs of remote work
- Why great coworkers should be the #1 priority for new developers
- How these are "the good old days" of Tuple
- Ben's favorite smash bros character
- ...and much more!
Ben Orenstein
- Personal Site
- @r00k
Podcasts
- The Art of Product
- Giant Robots (Ben hosted this podcast until episode 240)
Other Links
- Tuple (Remote pair programming application)
- Refactoring Rails (Ben's video course)
- How to talk to developers (Fantastic talk for anyone giving presentations)
- Upcase (Rails, vim, and tmux video tutorials)
Bringing GeoCities Back with Kyle Drake
1h 33m · PublishedKyle is the creator of Neocities a free web hosting site that encourages people to build creative personal websites in the spirit of GeoCities. He's currently working on restorativland where people interested in the history of the web can discover websites originally hosted at places like GeoCities and Myspace Music.
Kyle Drake
- Personal Site
- @kyledrake
Projects
- Neocities
- restorativland
Other Links
- Yahoo! Geocities - Wikipedia
- What is BGP?
- What is Anycast?
- Vultr (Neocities hosting provider)
Timestamps
- [00:00:50] What GeoCities was
- [00:06:45] Why the old web failed
- [00:15:06] Reasons to create Neocities
- [00:21:04] Fighting phishing, spam, and DMCA takedowns
- [00:27:17] Purchasing an IPv4 address block and building an Anycast CDN
- [00:43:28] Why create your own CDN? (Takedown requests come directly to you, reduced chances of hosting provider shutting you down)
- [00:51:09] The costs of running a CDN ($130 a month)
- [01:07:11] Restorativland (Curating and archiving old internet communities)
- [01:11:53] The staying power of HTML vs modern apps (You can still open sites from the 90s)
- [01:14:21] Categorizing old webpages and the problems with current recommendation algorithms
Music in this episode is VHS s k y l i n e by Crystal Cola.
Rebuilding Fathom Analytics on Serverless Infrastructure with Jack Ellis
59m · PublishedJack Ellis
- Personal Site
- @JackEllis
Fathom Analytics
- Fathom Analytics (SAAS version, Affiliate link with $10 discount)
- Fathom Lite (Open-source, original Golang version)
- We rebuilt Fathom Analytics from the ground up and moved to Laravel Vapor
- How we built a GDPR compliant website analytics platform without using cookies
Laravel
- Laravel (PHP web framework)
- Laravel Vapor (Serverless provisioning and deployment tool)
Hosting Providers
- Digital Ocean (Host for Open-source version)
- Heroku (Host for 1st rewrite)
- AWS (Host for 2nd rewrite)
AWS Services Used
- ElastiCache (Redis)
- Elastic Load Balancing (Handles web requests and triggers Lambda functions)
- Relational Database Service (MySQL)
- Simple Queue Service (Message Queue)
- Lambda (Run functions without managing a server)
Other Links
- Things you should never do (Post Jack mentions on never rewriting software)
Timestamps
- [00:00:58] What's Fathom Analytics and how is it different from Google Analytics?
- [00:03:35] When was the project started?
- [00:06:00] Limiting what we know about our users
- [00:08:11] Tracking unique page views without cookies
- [00:11:50] The original Open Source Golang version of Fathom
- [00:14:06] The case for rewriting Fathom
- [00:17:46] The process of rewriting Fathom
- [00:20:49] Migrating from individual SQLite instances to multitenant MySQL
- [00:24:10] Working with DNS Caching, running the old and new application simultaneously while migrating
- [00:26:40] Moving from Digital Ocean, to Heroku, to AWS (using Laravel Vapor)
- [00:34:07] What's Laravel Vapor? (Provisioning and deployment tool for AWS serverless offerings)
- [00:37:06] Comparing how Fathom used Heroku vs AWS (Heroku Redis -> ElasticCache + SQS, Web/Worker Dynos -> SQS + Lambda functions)
- [00:40:25] Moving from Heroku Web/Worker dynos to Lambda functions
- [00:42:25] Using Elastic Load Balancer instead of API Gateway
- [00:44:01] Tracking load, downtime, maintaining availability
- [00:51:22] Walkthrough of what happens when a user visits a site running Fathom
- [00:52:50] Dealing with the AWS lambda cold start problem
- [00:54:04] Why serverless was a good fit and when to use it
Theme music is 12:30 AM by Crystal Cola.
Creating Static Sites in Rust with Vincent Prouillet
53m · PublishedVincent is the creator of Zola (Formerly Gutenburg), a Static Site Generator built with Rust and Tera, a Jinja2-like template engine.
If you create a site with Zola, Vincent would appreciate you adding your site to the EXAMPLES file in the repository.
You can also take a look at the source for this website which is currently built with Zola.
Vincent Prouillet
- Personal Site
- @20100Prouillet
Zola
- Zola Website
- Zola Forum
Tools/Crates used by Zola
- pulldown-cmark (Markdown)
- syntec (Syntax highlighting using Sublime Text definitions)
- rayon (Parallel computation)
- heaptrack (Memory Profiler)
Static Site Hosts
- Github Pages
- Netlify
Crates for Web Applications
- jsonwebtoken
- Bcrypt
- Validator
Compiled Template Engines
- askama
- maud
- horrowshow
Runtime Template Engines
- Tera (Jinja2-like HTML template engine)
- ramhorns
- rust-mustache
Static Site Generators
- Hugo
- Jekyll
- Pelican
Other links
- Forestry (WYSIWYG CMS for Static Sites)
- Keyword Arguments RFC
- kickstart (Scaffolding tool)
Timestamps
- [00:00:19] What's a static site generator?
- [00:03:12] How easy is it to build and edit a site?
- [00:07:18] Why create a new static site generator?
- [00:11:55] The Tera template engine and Vincent's experience building it
- [00:17:13] Creating filters and tests to use with Tera
- [00:23:49] What's a taxonomy?
- [00:25:08] Mapping content to URLs
- [00:30:13] The experience of being an open source maintainer
- [00:33:17] Rust crates and features used by Zola
- [00:36:17] How the Rust ecosystem ensured fast performance
- [00:39:55] Is Rust ready for web applications?
- [00:42:45] What applications are best suited to Rust now?
- [00:46:10] Issues or things you wish existed in Rust?
- [00:50:28] Helping out with Zola
Software Sessions has 58 episodes in total of non- explicit content. Total playtime is 61:46:50. The language of the podcast is English. This podcast has been added on November 25th 2022. It might contain more episodes than the ones shown here. It was last updated on May 31st, 2024 12:43.