095 - Writing for Developers with Jordan Raine of GitHub
In this episode I talk with Jordan Raine, Senior Developer at GitHub, about writing. We talk about writing PRs and writing emails. We also discuss some of our favorite books and authors.
094 - Stimulus with Jesse Spevack, Staff Engineer at Ibotta
In this episode I talk with Jesse Spevack, Staff Engineer at Ibotta about Stimulus, conference talks, and hiring developers.
- Jesse Spevack on Twitter
- Refactoring Live: Primitive Obsession by James Dabbs
092 - Frontendless Rails Frontend with Vladimir Dementyev
In this episode I talk with Vladimir Dementyev, software engineer at Evil Martians, about "frontendless Rails frontend". We talk about what this means and how it relates to ViewComponent, StimulusReflex and Hotwire.
- Vladimir Dementyev on Twitter
- Evil Martians
- Slides for Vlad's RailsConf talk
- ViewComponent extensions
091 - Debugging Your Brain with Casey Watts
In this episode I talk with Casey Watts, author of Debugging Your Brain. We discuss modeling the brain, cognitive behavioral therapy, music, and bubbles.
- Debugging Your Brain
- Casey Watts on Twitter
- Thinking in Systems: A Primer
- The Fearless Organization
089 - Design Tips for Programmers with John Athayde, VP of Design at PowerFleet
In this episode I talk with John Athayde, VP of Design at PowerFleet. John and I discuss some design tips for developers who want to improve their design skills. We also talk about farming and presidents.
087 - The Shopify Upgrow Rorschach Test with Matt Swanson
In this episode I talk with Matt Swanson about the Shopify Upgrow guide (since taken offline), which recently made a small splash in the Rails community. Matt and I share our candid opinions regarding what in the Upgrow guide we agree with and what we disagree with.
086 - Keeping Rails Apps Organized with Tom Rossi
In this episode I talk with Tom Rossi about how to keep Rails apps organized. Tom and I talk about POROs, "service objects", /lib vs. /app, the "slots" Rails gives you, and the limits of Rails' ability to help organize application code.
085 - Systematic Debugging with Matt Swanson
In this episode I talk with Matt Swanson about how to debug systematically rather than haphazardly.
- A systematic methodology for solving any programming problem
- Matt Swanson on Twitter
083 - How to Estimate Accurately with Matt Swanson
If you've ever experienced the pain of having woefully underestimated something, this episode is for you. In this one I talk with Matt Swanson about how to estimate accurately as well as why I'm not a big fan of story points.
082 - Code Quality with Ernesto Tagwerker, Founder at FastRuby.io
In this episode I talk with Ernesto Tagwerker, founder of FastRuby.io, about the topic of code quality. We discuss what code quality means as well as some tools that can assist with giving code quality proper attention.
081 - RedwoodJS with Anthony Campolo, RedwoodJS Core Advocate
In this episode I talk with Anthony Campolo, RedwoodJS Core Advocate. Anthony and I talk about what RedwoodJS is as well as RedwoodJS's components, React, GraphQL, and Prisma.
- RedwoodJS Homepage
- RedwoodJS Forum
- RedwoodJS Discord
- Anthony Campolo on Twitter
- Anthony Campolo on GitHub
- Anthony Campolo's Blog
080 - Organizing Rails Code Outside of Active Record with Dave Copeland, Author of Sustainable Rails
In this episode I talk with Dave Copeland, author of Sustainable Web Development with Ruby on Rails, about organizing Rails code. Dave and I discuss why although many Rails developers are used to it, putting code in Active Record models isn't always the best move. We also share the various tactics we prefer to use in order to keep Rails code organized.
079 - Dockerizing Rails Applications with Mike Rogers, Founder of TypoCI
In this episode I talk with Mike Rogers about how to Dockerize Rails applications. We talk about the difference between Dockerizing for development and Dockerizing for production, mount volumes, performance trade-offs, and more.
078 - StimulusReflex with Jason Charnes
In this episode I talk with Jason Charnes about StimulusReflex. Jason and I cover what StimulusReflex is as well as some of the core concepts of the technology.
- Interactive Rails with StimulusReflex
- Jason Charnes on Twitter
- Official StimulusReflex documentation
076 - Heuristics for Object-Oriented Design in Ruby with Tyler Williams
In this episode I talk with Tyler Williams, Software Engineer at Home Game Poker, about the contents of a blog post he recently wrote entitled Heuristics for Object-Oriented Design in Ruby. Tyler and I discuss some of the ideas in his blog post, most of which came from Sandi Metz's book Practical Object-Oriented Design in Ruby (POODR).
075 - Puma, Front-End Performance and CLI Apps with Nate Berkopec
In this episode I talk with Nate Berkopec, author of The Complete Guide to Rails Performance. Nate and I discuss Puma, front-end performance and building command-line interface (CLI) apps.
074 - Molly Struve, Site Reliability Engineer at Forem (Dev.to)
In this episode I talk with Molly Struve, Site Reliability Engineer at Forem, about a variety of topics including performance, monitoring, types of incidents, dividing time between incident response and preventative work, and, of course, horses.
073 - [How I'd Build It] Building a Sailing Membership Feature with Adam Hawkins
This is another How I'd Build It episode, where listeners send in their feature requirements and we discuss them on the show. In this one we talk about a sailing application where there's a need to keep track of whether members' payments are up-to-date. Adam and I also talk about the YAGNI principle as well as why it's not possible to have high-quality code without tests.
072 - Release Toggles, Feature Branches and Continuous Deployment with Matt Swanson
It's commonly accepted that it's better to deploy frequently than to only deploy once in a while. However, an obstacle to achieving this ideal is when you have a long-running feature that can't be released until it's all the way done. In this episode Matt Swanson and I talk about the solution to this problem: release toggles, also known as feature flags.
071 - Stripe Checkout with CJ Avilla, Developer Advocate at Stripe
In this episode I talk with CJ Avilla, Developer Advocate at Stripe about integrating Stripe with web applications using Stripe Checkout. We also digress into mechanical keyboards and the challenges of keeping APIs up to date.
- Stripe Checkout Docs
- Sample of Stripe Developer Office Hours
- CJ Avilla on Twitter
- CJ's CODE Keyboard
- Stripe Developers on Twitter
- Stripe Developer Resources
- Stripe IRC Channel
- Stripe Support
070 - Determining What Tools You Need with Adam Hawkins
In this episode I talk with Adam Hawkins about determining what tools you need for a project. Where should you host? Should you use Docker? Kubernetes? Ansible? We touch on some general DevOps principles along the way.
068 - Dave Ceddia, Author of Pure React
In this episode I talk with Dave Ceddia, author of Pure React. Dave and I talk about some of the fundamental concepts of React, common libraries used with React, and how persistence and HTTP communication typically work in React apps.
067 - Rails, Ansible and AWS with Axel Kee, Author of RubyYagi.com
In this episode I talk with Axel Kee about Ansible. Axel hosts his Rails application on AWS using Ansible as an infrastructure management tool, and so do I, so Axel and I compared notes on our respective setups. We also raised a recurring topic on the podcast: goats.
066 - Tom Rossi, Co-Founder of Buzzsprout
In this episode I talk with Tom Rossi, co-founder of Buzzsprout, about his entrepreneurial story. We talk about Tom's agency, Higher Pixels, and the products that grew out of that agency, including the podcasting platform Buzzsprout and the healthcare-related product StreamCare.
065 - [How I'd Build It] Poker Turn Enforcement with Tyler Williams, Software Engineer at Home Game Poker
In this How I'd Build It episode I talk with Tyler Williams about an interesting challenge in an online poker program. Tyler and I discuss what would need to happen in order to ensure that a player only gets a specific amount of time on his or her turn without the player being able to cheat the system. We talk not only about the technical implementation but also the costs of preventing cheating relative to the likelihood that someone would have the willingness and ability to cheat.
- Tyler Williams on Twitter
- Ogden Studios
- Intro to RSpec Syntax (use discount code RWJ2020 to get 30% of the price listed on the site)
064 - [How I'd Build It] Third-Party API Interaction with Trae Robrock
In this episode, the first "How I'd Build It" episode, my guest Trae Robrock and I discuss a listener question about interacting with the Active Campaign API. Trae and I touch on testing, VCR, service objects, Interactors, and our general approaches for dealing with third-party APIs.
063 - Turning Around Legacy Projects with Robby Russell, CEO of Planet Argon
In this episode I talk with Robby Russell, CEO of Planet Argon, about improving legacy codebases. Robby and I discuss the "we'll fix it later" fallacy, whether to sacrifice quality for speed, the value of having a test suite, and Robby's and Jason's bands.
- Robby Russell on Twitter
- Planet Argon
- Maintainable Podcast
- Maintainable Rails Newsletter
- Oh My ZSH
- The Mighty Missoula
062 - Database Views with Mark Hutter, Lead Engineer at Landing
In this episode I talk with Mark Hutter, Lead Engineer at Landing, about database views. Mark and are discuss what views are, in what scenarios you'd use them, how we handle database modeling in general, and other topics.
061 - SRE and Incident Response with Erin Dees, Principal Software Engineer at Stitch Fix
In this episode I talk with Erin Dees, Principal Engineer at Stitch Fix, about Site Reliability Engineering. Topics discussed include being on-call, incident response, SLAs and SLOs, incident severity levels, recovering from incidents, and more.
- Effective Testing with RSpec 3
- Google Site Reliability Engineering book
- The Phoenix Project
060 - Andy Croll, Organizer of Brighton Ruby Conference and CTO of CoverageBook
In this wide-ranging episode I talk with Andy Croll about tech conferences, living in Singapore, spicy food, Andy's employer CoverageBook, and legacy code.
059 - Keeping Rails Apps Organized with Tim Canty, Senior Software Engineer at VTS
In this episode I talk with Tim Canty, Senior Software Engineer at VTS, about keeping Rails applications organized as they grow. Topics discussed include Plain Old Ruby Objects (POROs) and where to put them, Jason's enduring antipathy for service objects, and the pros and cons of using gems as a tactic for keeping code organized.
058 - Talking Technical Blogging with Ross Kaffenberger
In this episode Ross Kaffenberger and I talk about technical blogging. We discuss the benefits that blogging can bring to your career, how to get started, and whether you need to wait until you're an expert to start blogging.
057 - Matt Swanson, Creator of Boring Rails
In this episode I talk with Matt Swanson, creator of Boring Rails, about SPAs vs. traditional Rails apps, ways of structuring model code, POROs, service objects, Interactors, the merits of FormBuilder, and some other stuff.
056 - Rails Deployment using Docker and Kubernetes with Cameron Dutro
In this episode I talk with Cameron Dutro, software engineer at quip, about deploying Rails applications using Docker and Kubernetes. Cameron has built a tool called Kuby which helps with Rails/Kubernetes deployment.
055 - When NOT to use Rails with Noah Gibbs
In this episode I talk with Noah Gibbs about when NOT to use Rails. We also talk about aliens, cephalopods, and several other pertinent topics.
- Noah Gibbs on Twitter
- Ruby Mad Science
- Securing Rails Applications
- Squid Empire: The Rise and Fall of the Cephalopods
054 - Third-Party APIs, Refactoring and Roller Derby with Brittany Martin
In this episode I talk with Brittany Martin, Lead Web Developer at the Pittsburgh Cultural Trust and host of the 5x5 Ruby on Rails Podcast. Brittany and I talk about working successfully with poor-quality APIs, whether to extract application code into gems or not, and, of course, roller derby.
053 - Tim Cheadle, Director of Engineering at Resolve to Save Lives
In this episode I talk with Tim Cheadle, Director of Engineering at Resolve to Save Lives. Tim and I discuss the app Tim works on, called Simple, which helps healthcare professionals in India and elsewhere manage hypertension patients' needs. We also talk about scaling issues and usability testing.
052 - Debugging Techniques with Chelsea Troy
In this episode I talk with Chelsea Troy regarding the debugging techniques she shared in her recent RailsConf talk, "Debugging: Techniques for Uncertain Times". Chelsea and I talk about "progress mode" vs. "investigation mode", binary search, tests as scientific experiments, and, naturally, outer space.
051 - Developer Productivity with Itamar Turner-Trauring
In this episode I talk with Itamar Turner-Trauring, author of The Secret Skills of Productive Programmers. We share a number of productivity tips including don't get stuck, don't work long hours, implement the riskiest part first, write down what you're working on, and much more.
050 - DevOps for Beginners with Adam Hawkins
In this episode I talk with DevOps expert Adam Hawkins, who also appeared in episode 49. Adam and I talk about what DevOps is and how you can use DevOps principles to deliver better software faster.
- Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework
- The DevOps Handbook
- Accelerate: State of DevOps 2019 Report
- Small Batches Podcast
049 - Testing Your Deployment Pipeline with Adam Hawkins
In this episode I talk with Adam Hawkins about the concept of not just testing your application code, but testing your deployment pipeline so that you mitigate the risk of running bad deploys that take your site down.
- Software Development in 3 Ideas & 4 Metrics
- Products Over Projects
- DevOps Handbook Summary & Review
- Accelerate Summary & Review
- Small Batches Podcast
048 - Chad Pytel, Developer and CEO at thoughtbot
In this episode, packed with nuggets of wisdom, I talk with thoughtbot CEO Chad Pytel about the meaning of the terms "code quality" and "bad code", the ways in which poor-quality code comes into existence, how to add tests to a codebase that doesn't have much test coverage, and much more.
047 - Discussing Rails Deployment and Hosting Options with Nate Berkopec
In this episode I talk with Ruby performance consultant Nate Berkopec. This time Nate and I talk not about Rails performance but about hosting options for Rails including Heroku, Convox and bare AWS. We also touch on infrastructure management tools like Kubernetes, Terraform and Ansible.
046 - Tips for Working with Legacy Code with Nicolas Carlo
In this episode I talk with Nicolas Carlo, creator of UnderstandLegacyCode.com, about working with legacy code, adding tests to legacy code, how to safely make changes to legacy applications, and more.
045 - Jeff Geerling, Author of Ansible for DevOps
In this episode I talk with Jeff Geerling, author of Ansible for DevOps. Jeff and I talk about what Ansible is and why you would want to use it, some alternatives to Ansible and how Ansible is different, my experiences and Jeff's experiences with using Ansible, and much more.
044 - Cameron Gray, Co-Founder of Convox
In this episode I talk with Cameron Gray about Convox which is a free, open-source tool to assist with deploying applications to various cloud platforms. Cameron and I talk about how Convox works under the hood and how to get started with Convox for deploying an application. Technologies we touch on include AWS, Elastic Beanstalk, ECS, Docker and Kubernetes.
042 - Docker and Kubernetes with Kelsey Hightower
In this episode I ask Kelsey all kinds of noob questions such as "Under what scenarios should I use Docker?", "How does Kubernetes relate to Docker?" and "Can I borrow your toaster?" This is a great one for people who, like me, still have a hard time wrapping their head around Docker and K8s.
041 - Frank Rietta, Founder & CEO of Rietta.com
In this wide-ranging discussion about Rails security Frank and I talk about the security value of keeping gems updated, the security risk of infrequent deployment, state-sponsored hacking, and much more.
040 - Active Storage, CDNs and Image Performance with Mark Hutter, Lead Engineer at Landing
Mark and I talk about Active Storage, CDNs (including what one is and why you would use it), image performance, RailsConf, the Birmingham on Rails conference, and more.
- Mark Hutter on Twitter
- Birmingham on Rails
- Chromium Blog: Moving towards a faster web
- ActiveStorage Feature Request - Support for CDN (Cloudfront)
039 - Talking Software Consulting with Justin Searls, Co-Founder of Test Double
In this conversation Justin and I talk about our respective experiences in software consulting, the different types of consulting/agency work, and how to get started in consulting.
037 - Server Infrastructure, systemd, and the Business Side of Sidekiq with Mike Perham
Me and Mike start with a detailed discussion of how systemd and systemctl work in Linux, then transition into server infrastructure in general, then finally we talk about the business side of Sidekiq.
035 - [Solo Episode] How to Write a Test When the Implementation Isn't Obvious
In this solo episode I explain how to write a test when the implementation isn't obvious.
034 - David Bryant Copeland, Author of Sustainable Web Development with Ruby on Rails
It's a challenge to keep projects organized as they grow and to sustain a high level of productivity. In this episode me and David Bryant Copeland talk about techniques we've used to accomplish this. Among other things, we discuss presenters/decorators/facades, service objects, OOP vs. procedural, and monoliths vs. microservices.
- Sustainable Web Development with Ruby on Rails
- David Bryant Copeland on Twitter
- Gang of Four Design Patterns book
- P of EAA
033 - How to Speak at Conferences with Karl Hughes, Creator of CFP Land
Speaking can be a really effective way to advance your programming career. In this episode me and Karl Hughes both share our advice for landing speaking gigs at conferences and local meetups.
- Karl Hughes on Twitter
- CFP Land
- The Comprehensive Guide to Speaking at Technology Conferences in 2020
031 - Noah Gibbs on His New Book, Mastering Software Technique
Noah is working on a new book called Mastering Software Technique. In this episode Noah and I talk about his book, parallels between visual art and programming, French loanwords, and European history.
- Mastering Software Technique
- Noah Gibbs on Twitter
- Noah's RubyConf talk, Conscious Coding Practice: The Three Concrete Steps
- 99 Bottles of OOP by Sandi Metz
- Our Magnificent Bastard Tongue
Taking a break - see you in 2020
Taking a break from releasing episodes for a few weeks.
024 - Michael Hartl, Author of The Ruby on Rails Tutorial
I talk with Michael about various miscellaneous topics including evolution, Stephen Hawking, Tau (a number equal to two times pi), Michael’s time in Y Combinator, and Michael’s experience developing the Ruby on Rails Tutorial.
- Ruby on Rails Tutorial
- Learn Enough to Be Dangerous
- Michael Hartl's Website
- Michael Hartl on Twitter
- Michael Hartl on GitHub
021 - Nate Hopkins, Co-Founder of CodeFund
020 - Rails Upgrades with Ernesto Tagwerker
Ernesto is back and this time we're talking upgrading Rails, speaking at conferences, how to find freelancing clients, and how to assess code quality.
- Ernesto Tagwerker on Twitter
- Ernesto Tagwerker on GitHub
- Ombu Labs
- Fast Ruby
- Ernesto Tagwerker's Blog Posts at Fast Ruby
019 - Charles Nutter and Tom Enebo, Co-Leads of the JRuby Project
Charles and Tom, co-leads of the JRuby project, explain what JRuby is, how it works and who it’s for. Our guests also patiently answer Jason’s numerous and excruciatingly fine-grained questions. Charles and Jason also discuss their respective endeavors for spicy food during their international travels.
- JRuby on Matrix
- Charles Nutter on Twitter
- Charles Nutter on GitHub
- Tom Enebo on Twitter
- Tom Enebo on GitHub
017 Benedikt Deicke, Co-Founder of Userlist
On today's episode, Benedickt Deicke and I discuss Ember + Rails as an architecture choice, starting a software project from scratch, and some of our past failed business attempts.
- Benedikt Deike on Twitter
- Benedikt Deike on GitHub
- Userlist on Twitter
- Slow & Steady Podcast
- User Onboarding: The Ultimate Guide for SaaS Founders
016 - Richard Schneeman
Richard Schneeman and I discuss his job with Heroku, rate limiting, inventions, refrigeration, peas, and the overlaps between mechanical engineering and coding.
014 - A Completely Unfocused and Utterly Mind-Blowing Conversation with Noah Gibbs
Noah and I got together for a conversation about his book Rebuilding Rails and then immediately digressed into a series of fascinating rabbit holes about the history of coding and computers themselves.
012 - Transitioning from Freelance to Products with Mike Buckbee
Mike Buckbee, founder of Expedited Security returns and we discuss how we transitioned from freelance work to building our own products.
013 - Rails Performance with Nate Berkopec
I talk with Nate Berkopec about common Rails performance issues. Nate also explains what the heck threads and connection pools are.
- Speedshop, Nate's consultancy
- The Complete Guide to Rails Performance
- Nate Berkopec on Twitter
- Nate Berkopec on Github
011 - Two Docker Noobs Talk About Docker - with Andrew Mason
In this episode I drag my friend Andrew Mason through a long, rambling, undisciplined discussion of a number of things including me and Andrew's respective experiences with Docker.
- Andrew Mason's website
- Andrew Mason on LinkedIn
- Andrew Mason on GitHub
- Andrew Mason on Twitter
- Ruby Rogues Podcast
009 - Freelancing and Entrepreneurship as a Programmer with Mike Buckbee
Mike Buckbee, founder of Expedited Security, and I talk about our how we approach entrepreneurship, what we've learned, and why you shouldn't listen to our advice.
008 - Maintaining Large Rails Applications with Ernesto Tagwerker
In this episode, Ernesto Tagwerker and I discuss how we approach working on large Rails applications, methods for writing useful tests in a large application setting, and we extend an invitation to join us for some Nashville hot chicken in August at Southeast Ruby.
- Ernesto Tagwerker on Twitter
- Ernesto Tagwerker on GitHub
- Ombu Labs
- Fast Ruby
- Component Based Rails Applications
- Southeast Ruby Conference
004 - Webpacker with Prathamesh Sonpatki, Director at BigBinary
- Prathamesh's blog
- Prathamesh on BigBinary's Blog
- ReactJS by Example - Building Modern Web Applications with React by Prathamesh Sonpatki & Vipul A M
- Prathamesh Sonpatki on GitHub
- Prathamesh Sonpatki on Twitter
- Prathamesh Sonpatki's Email: email@example.com
- RubyConf India
003 - Rails Security with Frank Rietta
Today, Frank Rietta and I discuss common application vulnerabilities from the OWASP top ten and basic steps you can take to secure your Rails code.
- Frank Rietta's Email: firstname.lastname@example.org
- Frank Rietta on Twitter
- Frank Rietta on GitHub
- Rietta Inc.
- The OWASP Top 10
001 - Ben Orenstein, Co-Founder of Tuple
On my premiere episode, I talk with Ben Orenstein about refactoring, forms in Rails, the pros and cons of inheritance, levels of abstraction, and ActiveRecord callbacks.