Read & Listen log - January 2021
published 4.2.2021
A log of articles, blog posts, and podcasts, that I've read and listened to in recent month.
Videos
- RubyConf 2019 - In the beginning, there was "require"... by Adam McCrea
- RubyConf 2019 - No Return: Beyond Transactions in Code and Life by Avdi Grimm
- RubyConf 2019 - Ruby ate my DSL! by Daniel Azuma
- RubyConf 2019 - How to lose 50 Million Records in 5 minutes by Jon Druse
- RubyConf 2019 - Containerizing Local Development... Is It Worth it? by Tony Drake
- RubyConf 2019 - Algorithms: CLRS in Ruby by Brad Grzesiak
- RubyHack 2019 - Plan your next move like a chess game by David Mitchell
- RubyHack 2019: Taming Monoliths Without Microservices by Kelly Sutton
- RailsConf 2019 - ActiveRecord, the Repository Pattern, and You by Craig Buchek
- RailsConf 2019 - Getting Unstuck: Strategies For Solving Difficult Problems by Steven Hicks
Podcasts
I liked the following podcast most:
What I didn't enjoy as much as I expected:
- UXpod - Service design: An interview with Andy Polaine
Rails with Jason: Ep. 76 - 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).
Rails with Jason: Ep. 72 - 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.
Making UX Work with Joe Natoli: Ep. 4 - Lisa Baskett - Grace Under Pressure
UX designer Lisa Baskett describes herself as empathic, impatient, pedantic, dedicated and curious, but there are a few adjectives I'd like to add: namely, brave, tenacious and strong. I believe you'll understand why in this episode of Making UX Work.
Software Engineering Radio: Ep. 396 - Barry O’Reilly on Antifragile Architecture
Barry O’Reilly of Black Tulip Technology discusses Antifragile Architecture, an approach for designing systems that actually improve in the face of complexity and disorder. Host Jeff Doolittle spoke with O’Reilly about the characteristics of antifragility and the nature of complexity in software systems and business environments. Various processes and practices were discussed for applying the principles of Antifragile Architecture.
Maintainable: Ep. 68 - Hampton Lintorn Catlin: Only Add Complexity When Necessary
Robby speaks with Hampton Lintorn Catlin, CEO at Veue. They discuss how to reframe technical updates as investments and lessons learned from collaborating in open source. Hampton also shares how why he avoids the phrase "technical debt", along with his first-hand story of how he helped invent the open-source projects Haml and Sass.
Maintainable: Ep. 55 - Jeff Haynie: How Can We Make Software Development Better for Dev Teams?
Robby speaks with Jeff Haynie, Co-Founder and CEO at Pinpoint. They discuss boundaries around APIs and contracts, useful and less-useful metrics for development teams to focus on, and more. Jeff also gives an introduction to Pinpoint's tooling for software development teams and stakeholders, and shares a story about how he had to reverse-engineer a proprietary application in under 24hours to keep the trains running on time.
Ruby Rogues: Ep. 470 - Performance Improvement of Ruby 3.0 JIT with Takashi Kokubun
In this episode of Ruby Rogues, the panelists discuss the progress, problems, and strategies for implementing JIT in Ruby for the Ruby 3×3 goal all while being humbled a bit as Takashi improves our understanding around the subject.
Ruby Rogues: Ep. 472 - Inertia.js – The Modern Monolith with Jonathan Reinink
In this episode of Ruby Rogues, guest Jonathan Reinink joins the Rogues to talk about what Inertia.js is and why Rails developers would want to use it.
Ruby Rogues: Ep. 476 - SQL, Arel and the Dark Side of ActiveRecord with Eric Hayes
In this episode of Ruby Rogues, Eric Hayes joins us with the story of his journey into the dark, undocumented depths of Arel, ActiveRecord’s private API. We learn why writing custom SQL queries in 2020 can make sense and how to unlock the more powerful features of modern databases without resorting to SQL strings. Eric tells us how he manages the potential pitfalls of using Arel and achieves massive performance wins for difficult queries on large databases.
Ruby Rogues: Ep. 412 - Asynchronous Jobs on Client Side and Server Side
Dave Kimura starts the episode by defining asynchronous jobs; he and Andrew Mason discuss the differences between server side and client side asynchronous jobs. They discuss use cases and address scenarios for which asynchronous jobs can be used for. Dave answers Andrew’s questions about tools, gems, and libraries. Dave expresses his love for Active job and advocates for Gitlab. The panel discusses overuse and misuse of asynchronous jobs and times when it is better not to use this tool. Dave shares what he thinks makes a good microservice; he and Andrew discuss where people go wrong with microservices.
Ruby Rogues: Ep. 416 - The Difference between Devise and Warden with Leonardo Tegon
Leonardo Tegon is a software developer at Plataformatec, the company that created Devise. Leonardo talks about how he ended up at Plataformatec and shares a little bit about the talk he gave about alternative authentication methods. He talks about the difference between Devise and Warden. Some of the panelists have had some issues with cache warming in Warden, and Leonardo shares ways to get around it. They talk about authentication strategies used in Warden and Devise and different strategies that tap into hardware.
Leonardo talks about some of the features coming to Devise, although their primary focus is on maintenance. He talks about the work that goes into such a long-standing project, especially concerning maintaining the integrity of the code but also allowing for progress. They talk about some of their favorite features of Devise. Devise is easy to set up and very functional, but also intimidating. When a library is so big and does so much, it has to make some assumptions. Leonardo talks about how they decide what goes into the library at this point and how easy is it for new maintainers to contribute to the project. Leonardo ultimately wants to make it easier for people to jump in.
The SaaS Podcast: Ep. 270 - How to Build a SaaS Brand Without Doing ‘Branding’ – with Paul Campillo
Paul Campillo is the director of brand and communications at Typeform, a SaaS platform that lets you create interactive forms, surveys, quizzes, and more. Paul was a social worker helping youth involved in the juvenile justice system and he was helping adults coming out of prison to find jobs. One day, the CEO of the non-profit where Paul worked told him that she'd heard about some software called Typeform which might be useful for them and asked if he could look into it.
Paul went to the Typeform website and thought the product looked pretty cool. He came across a job application form that was created in Typeform. Filling out the form seemed like a good way to play around with the product so he answered the questions and submitted the form. About a week later, he got an email from the head of HR at Typeform asking him if we could chat with their CEO about his job application. And eventually, he became Typeform's first marketing hire. In this interview, we talk about his journey from joining a startup in its early stages and seeing it grow into an 8-figure SaaS company with over 300 employees and $52M in funding.
Paul explains that whether you realize it or not, your startup is building a brand. And we dig into what exactly that means beyond how many people think of branding. We explore the importance of building a product people love, how to build deeper connections with customers and Paul shares a painful example of what happened at Typeform when they didn't pay enough attention to customers. We cover the fundamentals of storytelling, why it's so powerful, and how you can start using it to communicate with your customers in a more engaging way. And Paul shares a simple but powerful 5-part copywriting framework that you can use to market and sell your product.
I really enjoyed doing this interview. Paul is a real down to earth, no BS kind of guy. He shares some great ideas and insights in this interview and I'm sure you'll get a ton of value from listening to Paul.
The SaaS Podcast: Ep. 272 - Unstack: How to Spot a Gap in a Crowded SaaS Market – with Grant Deken
Grant Deken is the co-founder and CEO of Unstack, a SaaS content marketing platform designed to help you rapidly build, measure, and scale your digital presence without writing code or hiring developers. In 2013, Grant co-founded an influencer marketing platform called Grapevine, which he eventually sold in 2019. During that time he worked with hundreds of advertisers and saw that a lot of them struggled when they had to quickly update their website or create a landing page. That got him thinking about what the ideal content management platform might look like. And he started having conversations with other founders about what they were doing to build out and manage their web presence.
Eventually, he realized that there was a market for the type of product he'd been thinking about. So he basically pre-sold the idea to a few people and then spent the next few months building the first version of Unstack. He and his co-founder Steve charged for the product from the day they launched. And they were able to find their first 10 customers through their existing relationships. But getting to their first 100 customers was much more challenging. In this interview we talk about:
- How they went from zero to a couple of hundred customers
- How to position your product in a competitive and crowded market
- How to differentiate your product without talking about feature comparisons
- How to decide when your product is good enough' for launch
- Building a community as a key channel for driving product growth
- Collaborating with integration partners to reach your ideal customers
We also talk about some of the mistakes that the co-founders made and what Grant wishes that they had done differently.
The SaaS Podcast: Ep. 261 - Qwilr: SaaS Freemium Pitfalls and How to Avoid Them – with Mark Tanner
Mark Tanner is the co-founder and COO of Qwilr, a SaaS product that helps you create design-perfect proposals, quotes, client updates, and more. This story starts in 2013 with a designer/developer named Dylan. He was running a micro-agency and found himself wasting a lot of time creating proposals. Like any self-respecting designer, he wanted to create beautiful proposals. But that meant a lot of work and back-and-forth using Word, Excel, and Adobe InDesign.
One day, out of frustration, he created a website as his proposal doc. Not only did he get hired, but the client loved the website proposal and was impressed by how quickly he'd built a website for them. And that's how the idea for Qwilr was born. Dylan and Mark teamed up and decided to give this business idea a try for a couple of months. They wanted to learn if they could find their first 10 customers.
In this interview, you'll learn how they turned that 2-month experiment into a business with 45 employees, $7.5M in funding, and around 3,000 customers. We also talk in-depth about the pros and cons of a freemium business model. And you'll learn about the mistakes, failures, and successes that Qwilr had with their freemium plans. We also identify some important considerations you have to make before choosing a freemium model and how you can avoid making some of the same mistakes Dylan and Mark did.
The SaaS Podcast: Ep. 274 - Veed.io – Lessons on Bootstrapping a SaaS to $2M ARR – with Sabba Keynejad
Sabba Keynejad is the co-founder of Veed.io, a UK based SaaS startup that provides a simple online video editing platform. I originally interviewed Sabba about 9 months ago on episode 241 where we talked about how he and his co-founder Tim had struggled to get their SaaS business off the ground.
They weren't able to raise funding so had to work contract jobs during the day and on their startup in the evenings and weekends. They made it to the final YC interviews, flew out to the US but were rejected because they weren't making any money. And a few months later they were on the brink of shutting down with just about one month's runway left.
In episode 241 we talked about how Sabba and Tim dealt with each failure and kept going. And at the time the founders had managed to start generating about $10K in MRR. Recently I was in touch with Sabba and discovered in the last 9 months, they've grown their SaaS business from just over $100K to over $2 million in ARR. So obviously I wanted Sabba to come back on the show and talk about how they've been able to grow their bootstrapped business so fast in less than a year.
We talk about the importance of building a great product, how to decide on the right features to build, creating a frictionless experience, the specific growth tactics that helped them grow faster, and one critical ingredient that you must have to make everything else work.
The Rabbit Hole: Ep. 179 - Django vs Rails, why python won
There’s a perception that web development using Ruby on Rails has already peaked, with more damning critics shouting that “Rails is a dying language.” Conversely, Python, and Django by extension, seem to be ever-increasing in popularity. Today we’ve set up a grudge match — it’s Django versus Rails, with the winner declared the better language. We open our conversation by exploring perceptions of Rails and Django, along with why Python’s many libraries give it a leading edge.
Ruby on Rails Podcast: Ep. 337 - Chipping Away at a Monolith with Tori Huang
Tori Huang, software engineer at Gusto, and her team recently embarked on a journey toward unbundling part of Gusto’s monolithic Ruby on Rails app. She and Brittany discuss knowing when to uncouple a service and how to identify orphan code.
Ruby on Rails Podcast: Ep. 340 - dry-rb, ROM.rb & "My Time with Rails is Up" with Piotr Solnica
Ruby is more than Rails. Brittany welcomed Piotr Solnica, Senior Ruby Backend Engineer at Castle.io and creator of ROM.rb and dry-rb core team member to the show to discuss his new job, OSS contributions and why he left Rails.
UXpod - Service design: An interview with Andy Polaine
What is service design, and how does it relate to UX?
UI Breakfast: Ep. 167 - Designing Effective Presentations with Payman Taei
Presentations are everywhere: we use them for talks, webinars, investor meetings, and many other occasions. Today our guest is Payman Taei, the founder of Visme. You’ll learn the story behind their tool, what makes a good presentation, how to translate your ideas into visuals, and what mistakes to avoid.
Full Stack Radio: Ep. 149 - Choosing a Payment Processor, Radical Icons & W3C Hype
Adam and Jack discuss how it sucks when you're forced to change billing platforms, and embark upon a deep dive on the merits of Adam's favorite solutions. We also talk about Jack's recent Radical Icon launch and promotional strategy regrets, which thankfully has a bit of a silver lining, and in Statamic news – the W3C drops WordPress and narrows their next CMS choice down to Statamic and Craft.