Read & Listen log - December 2020

published 16.1.2021

log

A log of articles, blog posts, and podcasts, that I've read and listened to in recent month.

Articles

Got into ruby documentation and changelogs to see what changed since v1.8.7, and to remind myself the language syntax.

Videos

A lot of ruby and rails, as I'm getting back to it. I must highlight the RubyConf 2019 - mruby/c: Running on Less Than 64KB RAM Microcontroller by HASUMI Hitoshi which was very enjoyable in terms of content and presentation.

Podcasts

I liked the following podcast most:

What I didn't enjoy as much as I expected:

The SaaS Podcast: Ep. 250 - Geckoboard: Failing a Dozen Times Before Finding Product Market Fit - with Paul Joyce

Paul Joyce is the founder and CEO of Geckoboard, a SaaS product that lets businesses build and display real-time dashboards to help them focus on the metrics that matter. Paul was working at a bank in England. He hated his job and longed to start his own business. But this isn't one of those stories where someone comes up with a great idea, quits their job the next day, and becomes an overnight success. Paul spent four years looking for the right idea. He tried and failed a dozen times. But his burning desire to work for himself, kept him going. And with each failure, he learned something. Eventually, in 2010 he came up with the idea for Geckoboard. He started building his MVP and also posted on Hacker News, which helped him build a waiting list of several hundred people.

He launched his MVP a few months later but didn't get any paying customers. But he could sense from how enthusiastic people were, that there was something different about this idea. He decided that it was time for him to “go big or go home”. So after talking to his wife, he used their savings to give him a five-month runway and quit his job to work on Geckoboard full-time. It was a huge leap of faith – but Paul's never looked back.

Today, Geckoboard does well over $5 million in annual recurring revenue (ARR). The company has around 4,500 customers and a team of 40 people. In this interview, we talk about Paul's multiple failed attempts to start a SaaS company. We dig into why the idea for Geckoboard was different from all the other ideas he had. And we go into detail on how he found customers and eventually built a multi-million dollar SaaS business.

The Rabbit Hole: Ep. 181 - Starting Something - Are all the good ideas taken?

It’s the middle of the night and you are lying in bed when you get a lightning-strike idea. You reach for your phone and type your idea into Google only to discover that someone has beat you to it. Today we speak about this common scenario and answer the question — should you start something new when all the good ideas have been taken? As we discuss early on, the existence of Ask Jeeves didn’t stop Larry Page and Sergey Brin from creating Google. After exploring this example, we talk about how discouraging it can be to see that someone else has built a company using your idea.

The Rabbit Hole: Ep. 182 - Starting Something - Do you need a single page app with Stephen Meriwether

Can you imagine a world where you can fast-track your idea, turn it into a feature-filled app, and perfect its development with speed and technical finesse? For Stephen Meriwether, that future is now. As today’s guest, Stephen talks to us about single-page apps, prototyping, and how he uses his skills and experience to help small businesses and entrepreneurs build products.

The Rabbit Hole: Ep. 184 - Prototyping Best Practices with Stephen Meriwether

In today’s episode, we’re going to dive straight into some prototyping tips and tricks, what you should do and should not do, and best practices to keep in mind. Of course, we couldn’t have a prototyping episode without our very own, Stephen Meriwether, programmer, and director at product development agency, Sprout Labs.

CzechMate - Specialization

CzechMate - Alone - back to the bag of our skin

CzechMate - Digitalization - a path to New Jerusalem?

The Art of Product: Ep. 122 - SaaS Sales with Matt Wensing

Even if a product, such as Tuple, is good and people don’t need to be convinced to buy it, there’s still plenty of work to be done. It involves communication, coordination, and collaboration. Ben’s perfect sales pitch and ultimate goal: Sell once, revenue forever.

Ben picks his guest co-host’s brain about big deals with major companies. Luckily, Matt Wensing is willing to share his enterprise sales experience, including setting price points, hiring salespeople, and developing documentation. Matt is the founder and CEO of Summit, Out of Beta podcast host, and Riskpulse founder.

The Art of Product: Ep. 146 - Growing Teams

The Tuple team is contracting with Thoughtbot for pairing and leveling up their Rails skills. Derrick is working on team permissions and thinking about working with a marketer after wrapping up most of the work around the StaticKit sale.

The Art of Product: Ep. 147 - Incremental Shipping

Derrick shipped the next part of team functionality, which opened the door for expansion revenue. Ben is zeroing in on hiring a pairing coach for Tuple customers. In his down time, Ben is taking up playing the piano - something his childhood self would be appalled about.

The Rework Podcast - Product Strategy Q&A with Jason Fried and Ryan Singer

CEO Jason Fried and Head of Strategy Ryan Singer talk about the Shape Up approach to product development that we use at Basecamp. They discuss organizing work in six-week cycles, how to handle disagreement, and how so much of the process boils down to making trade-offs. You can also watch the full video of this Q&A session.

The Bike Shed: Ep. 262 - Good Idea, Terrible Idea?

On this week's episode, Chris introduces a new segment called "Good Idea, Terrible Idea?" as he considers introducing a read-only mode to avoid interrupting users during scheduled downtime. Steph has started a new project and explores the idea of merging separate, but similar, applications into one codebase.

They also dive into micro-service environments to discuss the difficulties of integration testing and potential strategies.

Rails with Jason: Ep. 58 - 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.

Startups for the rest of us: Ep. 523 - Breaking Through Plateaus, Entrepreneurship for Kids, Common Bootstrapper Mistakes, and More Listener Questions

In episode 523, Rob hosts a rapid-fire lightning round of listener questions ranging from whether to focus on one or multiple businesses, finding the right amount of customer research, breaking through slow growth, and teaching entrepreneurship to kids.

Maintainable: Ep. 71 - Nicolas Carlo: Changing Messy Software Without Breaking It

Robby speaks with Nicolas Carlo, Senior Tech Lead at BusBud. They discuss the tradeoffs when testing out new features and the benefits of using feature toggling/flags to keep code getting merged into main branches. Nicolas also shares how Busbud has quarterly sustainability weeks to work on improving things, along with advice for listeners who might feel like they are at a loss for how to get stakeholder buy-in on dealing with technical debt challenges.

Ruby Rogues: Ep. 425 - Rails + Webpacker with Taylor Jones

Taylor Jones works remotely for Heroku in technical support. He talks about some of the most common issues he helps customers with and what issues he saw when Webpacker was introduced. The panel talks about their experience using Webpacker and how it has influenced their usage of React and Ruby. They talk about the importance of creating maintainable applications and the possible effects of using primarily new technology versus tried and true methods. It is important to keep architecture consistent, so that if you have to debug something old, you still know your way around. They discuss the forward progress in the Rails community and how the need for a JavaScript framework has decreased. They discuss improvements in adding elements from other languages into your code, especially since Webpacker added a way to manage JavaScript assets to the community. They discuss the impact Webpacker has had on application maintainability. For a more sustainable app, they suggest reducing the number of gems and dependencies in your application, and over all knowing what you’re putting in your app.

Ruby Rogues: Ep. 437 - Deploying Rails Onto Kubernetes with Khash Sajadi

Khash and Kasia work for Cloud 66, a company started in 2012 with a goal to make Rails deployment simple and infrastructure easy to understand for application developers. As the company has moved towards containerization, they have integrated with Kubernetes. Khash talks about what distinguishes Cloud 66 from other platform as a service companies and why the company was started. He begins by talking about the structure of Heroku, how they own the entire stack down to the server, and how they are bound to a data center. Cloud 66 differs because they decided to break that unit economy from a data center to a server, so they don’t own the entire stack. Instead, they deploy what looks like an experience from Heroku onto your own server so you can go anywhere you want to go. They talk to the public API of those cloud providers within the data center that you choose that your account is in, and then provision, deploy, and maintain your application the way that you used to with Heroku, on that data center.

Khash talks about how Kubernetes fits into the Cloud 66 model. Cloud 66 was started with Rails, but they wanted to make it generic and available on any framework, and decided this was best accomplished through containerization. They originally had their own containerization service, but then moved over to Kubernetes. Their Kubernetes for Rails product makes deployment of a Rails application onto Kubernetes extremely simple. The panel discusses the different ways that people get to containerization, and situations where containerization is not the correct solution. They also discuss situations where a containerization service like Kubernetes is useful. Containerization can help a lot with distinguishing and establishing boundaries within a team. Kubernetes can help create uniform servers because you can tell it what you want and it will help you get there, including notifying you when things don’t align. Kubernetes is also excellent at dealing with microservices, if you have a need for a repeatable environment, and provisioning the infrastructure for commits. Khash notes that since moving to a unified infrastructure powered by Kubernetes, upgrades in Cloud 66 take significantly less time and talks about how things have been streamlined.

In the past, David has seen some issues with autoscaling in Kubernetes clusters, and Khash talks about how those things have been addressed and how to approach scaling in general. The first two things you need to define with scaling problems is how much is needed and what is ‘normal’ for your product. It is also important to consider if you need to scale up or scale down, as sometimes scaling down can hold more benefits. Khash has noticed that one thing that’s missing in the market is that as Rails developers they’re all about finding the best tools and getting the job done, while this approach is lacking in Kubernetes. He closes the show by talking about how Cloud 66 is trying to address what a Kubernetes deployment means for a Rails stack.

Ruby Rogues: Ep. 461 - Rethinking the View Layer with Components with Joel Hawksley

Joel Hawksley is an engineer at Github who works on some of their Rails architecture. He is one of the authors of the view_component gem. He walks the Rogues through the genesis of the project and the pros and cons of using a library like view_component and how it adds testability and easy management to Rails views.

Ruby on Rails Podcast: Ep. 349 - From Air Traffic Controller to Tech Lead with John Cech

Based in Portland, Oregon, John Cech is a Senior Ruby Developer working at Planet Argon. John works on a wide-range of client projects as a Tech Lead and provides mentorship to interns and junior developers having started out there as a junior, himself.

Ruby on Rails Podcast: Ep. 339 - kuby & Rails Deployments with Cameron Dutro

Cameron Dutro believes we need Active Deployment like we have Active Record and Active Storage. That's what kuby is - an easy way to deploy your Ruby on Rails application without getting your dev-ops black belt first.

Ruby on Rails Podcast: Ep. 332 - 2020 Ruby on Rails Community Survey with Robby Russell

Robby is the creator of Oh My Z-Shell, host of the Maintainable Software Podcast, and CEO of Planet Argon. On his second appearance, he and Brittany review the results of the 2020 Ruby on Rails Community Survey.

Ruby on Rails Podcast: Ep. 330 - Oh My Zsh & Maintainable Rails with Robby Russell

Making his first appearance since 2018, Robby Russell is back on the show. Robby is the creator of Oh My Z-Shell, host of the Maintainable Software Podcast, and CEO of Planet Argon, a software consultancy that improves existing Ruby on Rails applications and makes them more maintainable.

Ruby on Rails Podcast: Ep. 329 - All My Best Programming Tips with Jason Swett

Jason Swett is a developer, speaker, author and the host of The Rails with Jason podcast. He and Brittany discussed bringing diversity into the podcasting space and some of his favorite tips from his blog post, "All my best programming tips".

Ruby on Rails Podcast: Ep. 326 - Job Searching and Hiring Advice During the Pandemic with Brian Mariani

A timely episode for the employers hiring and the Ruby developers looking for work during the pandemic. After a heartfelt story, Brian Mariani, founder of Mirror Placement, revealed hiring patterns and honest advice for these unprecedented times.

Ruby on Rails Podcast: Ep. 320 - ViewComponents in Action with Andrew Mason

Andrew Mason is the lead developer for CodeFund, an ethical advertising platform. When he is not working on CodeFund, he is podcasting on The Ruby Blend or Remote Ruby, writing blog posts, or working on open source projects. He and Brittany discuss his implementation of ViewComponent at CodeFund.

Ruby on Rails Podcast: Ep. 317 - Coming Home to Rails with Vince Eberle

Vince Eberle is a Full Stack Developer at 412 Food Rescue. Over the last decade, he has worked on app development on-and-off using Ruby on Rails and EmberJS. He and Brittany discuss coming back to Rails and how powerful Rails can make a developer in a non-profit.

Ruby on Rails Podcast: Ep. 307 - Choosing the Right Tech Stack with Dave Paola

Dave Paola was cofounder and CTO at Bloc. He is now the cofounder of Jellyswitch, unleashing the power of the distributed workforce. Dave and Brittany converse about choosing frameworks, bootcamps and frontend frameworks.

Ruby on Rails Podcast: Ep. 306 - Ask For The Job with Brian Mariani (Part II)

Back by popular demand, Brian is back! Brian Mariani, founder of Mirror Placement, a Ruby on Rails focused recruiting firm, came back to share his wisdom on financial negotiations, what it is like to recruit from both the client and developer side and that one overlooked tip to get the job.