My Take on Tech & Leadership

Written and hosted in the USA 🇺🇸

Stop Audio When Leaving Pages in Hotwire Native

Audio keeps playing when users navigate away in Hotwire Native. Three solutions: Stimulus disconnect, viewWillDisappear override, or native player. Here's when to use each.

How to Switch Tabs from Links in Hotwire Native

Hotwire Native doesn't handle tab switching out of the box. Here's the path configuration pattern I use in PrayAI and Fitivity to make links switch tabs automatically.

Vibecoding Made Building Easy. Here's the Hard Part.

You can build your product idea faster than ever. But user acquisition and product-market fit are still unsolved problems. Here's the one method that works—and how to implement it.

Turbo & RubyLLM: Build a Streaming AI Chat in Rails

Build a ChatGPT-style streaming chat interface using RubyLLM and Turbo Streams. Real-time AI responses, automatic persistence, zero JavaScript API calls.

CSV Uploads with Live Progress Using Turbo Streams

Upload a CSV, kick off a background job, watch the progress bar fill in real-time. No JavaScript polling. Just Turbo Streams and Action Cable.

Turbo Performance: Caching, Prefetching, and Morphing

Turbo's speed comes from avoiding work: snapshot cache for instant back buttons, prefetching on hover, morphing to preserve state. Here's how it works.

Turbo Frames: Update Just Part of Your Page

Wrap content in a turbo-frame tag and links inside it only update that region. Modals, tabs, pagination, inline editing—no JavaScript required.

Turbo Drive: Zero-Config Speed for Your Entire Site

Include one library and every link click becomes instant. Turbo Drive intercepts navigation, swaps content via AJAX, and makes your server-rendered app feel like a SPA.

Why Turbo? Stop Overcomplicating Your Web Apps

Most web apps don't need React. Turbo gives you SPA-level speed with server-rendered simplicity—19KB instead of 200KB+ of JavaScript complexity.

What Publishers Need to Know About Curation

Your SSP just pitched you on "curation." Here's what they're actually selling—and the 6 questions you need to ask before opting in.

Curation Is Just Sell-Side Targeting. Here's Why That Matters.

The ad tech industry loves inventing new words for old concepts. "Curation" is sell-side targeting dressed up in new clothes. But the implications are huge—it represents a real shift in where targeting happens and who controls it.

Ruby 4.0 Just Dropped. Here's What Actually Matters.

Ruby 4.0 shipped on Christmas Day with ZJIT (a next-gen compiler from Shopify), Ruby Box for isolation, redesigned Ractors, and Set/Pathname as core classes. Here's what matters for production apps and whether you should upgrade.

Ruby Turns 30 Years Old. It's Still the Smart Choice.

Ruby just turned 30 and celebrated with Ruby 4.0 on Christmas Day. While the tech industry chases shiny frameworks, Ruby keeps quietly powering billion-dollar companies like Shopify, GitHub, and Airbnb. Here's why this "boring" choice is your smartest tech bet.

The 24-Hour Innovation Cycle (Without Burning Out Your Team)

I've been running engineering teams across the US, Eastern Europe, and India for over 15 years. One of the most exciting things about this model is the potential for a near-24-hour innovation cycle - work genuinely moves around the clock. But recently, I've watched some of my teams burn the midnight oil a little too hard. Engineers staying up 24 hours because they felt they needed real-time collaboration. That's not the goal. That's a failure mode.

Will AI Replace Real Estate Agents?

Look, I get it. Every industry is asking this question right now. "Will AI replace [insert profession here]?" But after watching developers panic about AI coding tools only to realize they make us more productive rather than obsolete, I see the same pattern playing out in real estate.

Why I Keep Choosing Rails (And You Should Too)

I just published a detailed piece over at Ruby Growth Labs about why business leaders should choose Ruby on Rails, and it got me thinking about my own journey with the framework.