Writing on life, business, art & other random topics.

All of my long-form thoughts on tech, leadership, product design, and more, collected in chronological order.

Build a Shopify App with Rails and Hotwire

I’m very grateful for Shopify and all that it has given to the Rails community over the years. Shopify is a Rails application after all. When I ran a consulting firm, clients would sometimes raise the question about Rails’ performance history. My go-to response was “Shopify runs on Rails” so what performance issues?

Taking Care of Your Vision

Over the past several months, I’ve had a epic battle with losing my vision. Earlier this year in the spring, I noticed I was having small amounts of eye strain after long periods of computer work. Then I would take it easy and limit screen time and eventually the eye strain would go away and I would return back to normal. However, over time, the eye strain would continue and eventually it would get so bad, I couldn’t even look at a television without feeling like my eyes were going to pop out of my head.

Littlelines Acquired!

It’s my great pleasure to announce that Littlelines has been acquired! It’s a great pleasure because the future is even more bright for Littlelines. When I started Littlelines fourteen years ago, I set out to create a consulting firm that truly focused on client’s success in a safe space where the team could grow professionally and enjoy the work at the same time. I truly believed and still believe that success doesn’t mean we have to sacrifice our home life, quality of work, or sanity - just the opposite it fact.

Kill N+1 Queries For Good with Strict Loading

Starting with Rails 6.1, we can set a strict_loading configuration option that, when true, will throw an error if your code attempts to lazy load any associations with out strictly including the association in the ActiveRecord query. A brief history on N+1 queries and Ruby on Rails Rails has a long history of scaling problems and a big cause of this is slow database performance of N+1 queries. Rails makes it super easy to get data from a database and magically have all of it at your finger tips.

Two Simple Books to Wealth

I should start off and say that I’m not a financial expert, but I do dedicate a good amount of time learning finance, managing cash, and investment planning - both in business and my personal life. In business school, one lesson that has always stuck with me is “Keep your eye on cash”. A simple but powerful statement that has served me well both in business and at home. I consider finance just another tool to generate additional revenue for me and my companies.

Hotwire, ViewComponent, and TailwindCSS: A New Era in Ruby On Rails Development

The world has changed a lot in the past year, no doubt. This includes some big changes on how we will build Ruby on Rails applications going forward. Late last year, the Basecamp/Hey team released Hotwire, a new way how our front-end and back-end code work together. Hotwire is a collection of tools that allows to build single-page (like) apps with much less Javascript. Most notable tool in Hotwire’s collection is Turbo, which provides most of the plumbing for delivering html to the browser without full-page reloads.

Forget Service Objects, Write Command Objects in Ruby

The term “service object” can mean different things depending on who you talk to or what project you inherited, hence why I put them in quotes. Since there’s not really a “Rails Way” to put business logic, it was common to shove everything into Active Record models. When that went awry, the concept of service objects came onto the scene and provided a pathway for storing domain logic in plain Ruby objects.

Creating a Rich Text Editor with Quill, Stimulus and Tailwind CSS

Adding rich text editors to a project has a long history of friction and frustration in development. Whenever I’m asked to add a text editor, I naturally do whatever I can do to avoid them completely. That, or make sure I do extra meditation in preparation for weeks of pain.

Hello, old friend

It’s nice to see you again. One of the toughest part of writing for me is taking the time to actually write. An unfortunate side effect of running a company (for me anyway) is the sheer amount focus it demands in order to maintain the level of successful and serve my clients the best way I can.

Getting Started with Ruby on Rails and Kubernetes

Why should we deploy our Rails applications to Kubernetes? Traditionally we’ve deployed our applications to the cloud using services like Heroku or on virtual private servers on Amazon EC2, Rackspace, or Digital Ocean using a custom set of Ansible scripts to automate the process. This has worked well an still continues to work well, however we run into issues with scaling our servers to meet users demands and upgrading hardware and software isn’t always easy without downtime.