$ ls -la blog/
## Recent Posts
November 21, 2025
How I built a real-time voice agent using Gemini 2.0 and injected dynamic Spotify API data into its context window.
November 13, 2025
What I learned building an app that interfaces with Apple's Foundation Models AI.
October 27, 2025
I’ve been building a Hotwire Native iOS app with a Rails backend and recently created a custom bridge component called ApproachMapBridgeComponent. The goal was simple: when users click a button in the web view, it should open a native map modal in the iOS app. But instead of a working feature, the button did absolutely...
October 21, 2025
I'm working on a Hotwire Native iOS app, and I wanted the app to have that slick new Liquid Glass tab bar, which means that is is completely transparent and the content flows under and below the bottom tab bar. Here's how I updated my existing tab bar to have the modern Liquid Glass UI...
October 19, 2025
Rails 8 introduced a subtle but significant change to the stringify_keys method in ActiveSupport. Previously, stringify_keys only converted symbol keys in a hash to strings, leaving other key types such as integers untouched. Starting with Rails 8, the method converts all keys to strings, including numeric and other non-symbol keys. While this change simplifies behavior...
October 10, 2025
If you ended up on this page, you are either reading my technical blog or have been forwarded here via a domain name that I own...
October 10, 2025
As a professional Ruby on Rails developer based in Boston, I bring over a decade of professional experience building, scaling, and modernizing web and mobile applications. My work has consistently centered on solving complex technical challenges while keeping products elegant, maintainable, and fast. In my current role, I help lead the modernization of a mission-critical...
September 29, 2025
One of my favorite Ruby idioms is the Builder-to-Proc pattern. It takes advantage of Ruby’s ability to convert objects into callables through to_proc, letting you pass a class directly to map and have it act like a builder for each element. Imagine you are working with raw data from a third-party API in JSON or...
September 29, 2025
I recently ran into an annoying layout quirk while building an ‘infinite-scroll' type interface. The page loads data lazily as you scroll through a long list of posts, which works beautifully when there is indeed data to display. But in the scenario where there are no posts, the empty Turbo Frame was still claiming space...
September 23, 2025
If you are using UUIDs as primary keys in your Rails application, you may find it tedious to specify them in every single migration. Fortunately, Rails provides a clean way to set this configuration globally so that all new tables use UUIDs automatically. By adding a simple generator configuration to your config/application.rb, Rails will handle...
→ 42 total posts | Showing 1-10
$ Pages: