Writing on software design, development, and more.

All of my thoughts on programming, product design, and more, collected in chronological order.

Building a Complex and Flexible Table Component in Rails

While building EstateSync, I created many tables of varying complexity and length, but they still shared a lot of common patterns. Maintaining a consistent UI became increasingly challenging as I was using Tailwind, and I noticed that view code wa...

10 Essential Gems for Security and Code Quality in Rails Projects

Every production-grade Rails project should proactively address security and code quality. The Ruby ecosystem offers a rich collection of gems that help you do just that - catching bugs early, enforcing best practices, and protecting your users an...

Constant Collision in Rails: When Your Concerns Clash with Gems

While working on a Rails app recently, I stumbled across a frustrating bug that only appeared in the test environment. Everything worked perfectly in the development console. Models loaded fine. Associations were intact. My concern methods behaved...

AI Is a Productivity Multiplier - But Only If You Stay in Control

Alberto Fortin’s recent post on dialing back LLM usage resonated with me. Like many developers, I’ve found AI to be both a productivity godsend and a source of friction. It can feel like magic — until it quietly leads you down the wrong path. Here...

Enhancing performance in rails with ActiveRecord methods

When developing applications using Rails, efficient database interaction is crucial for maintaining high performance. ActiveRecord provides several methods to optimize database queries. In this post, we’ll explore how using specific ActiveRecord m...

Rails Testing Gotcha: When Concerns Work in Console But Not in Tests

If you've ever encountered a situation where your Rails model associations work perfectly in the console but mysteriously fail in your test suite, you're not alone. I recently ran into this exact issue and wanted to share the solution along with s...