Kasper Timm Hansen
kaspth.com
Kasper Timm Hansen
@kaspth.com
Rails core alumni, principle consultant at https://spinel.coop where we do https://rv.dev and help teams level up.

Creator & maintainer of Oaken, and other next-gen Rails extensions.
Pinned
I've been working on sprucing up my website kaspth.com

Go ahead and sign my guestbook 😄
Kasper Timm Hansen
“Hello! I’m Kasper, and I’ve been using Rails since 2011. I was on the Rails core team helping steer and maintain Rails itself from 2016-2022. I’ve got ~1750 commits to...
kaspth.com
Reposted by Kasper Timm Hansen
hey folks, i’m a rails / ruby dev with a bit over 10 years of experience professionally and i was just hit with my second layoff. looking for a new role would love to chat! #rails #ruby.
January 16, 2026 at 4:04 PM
Reposted by Kasper Timm Hansen
I haven't mentioned it yet here, but Programming Ruby 4.0 does have a new beta out that runs all code against Ruby 4.0.0 final, and also covers Minitest 6.0 and a couple of other late breaking changes:

pragprog.com/titles/ruby6...
Programming Ruby 4 (6th edition)
Code Ruby, Be Happy!
pragprog.com
January 15, 2026 at 5:14 PM
Reposted by Kasper Timm Hansen
finally made this public - been using snowflake IDs in a few projects and figured I'd package it up. rust does the heavy lifting (because I wanted to see if I could do it)

> github.com/luizkowalski...
GitHub - luizkowalski/snowflaked: [experimental] A Rails plugin for generating Twitter-like Snowflake IDs using a high-performance Rust backend. Thread-safe with configurable machine ID and custom epo...
[experimental] A Rails plugin for generating Twitter-like Snowflake IDs using a high-performance Rust backend. Thread-safe with configurable machine ID and custom epoch support - luizkowalski/snowf...
github.com
January 8, 2026 at 11:30 PM
Reposted by Kasper Timm Hansen
Happy New Year! 🎉

2025 was an incredible year for Ruby Events around the world and also for the @rubyevents.org platform!

To celebrate, we're releasing RubyEvents Wrapped!

A look back at talks, events, speakers, sponsors, and the Ruby community's year!
January 3, 2026 at 1:22 AM
Did it! The APIs have been remarkably stable for the past 2-3 years of the gems being out, so if you were ever unsure about adopting either, now's a great time to get onboard 🍾🥂

kaspth.com/posts/happy-...
January 1, 2026 at 8:28 PM
Reposted by Kasper Timm Hansen
Remember that tomorrow is your last day to apply for the 2026 Gem Fellowship! https://gem.coop/fellowship/ We will announce winners in Jan/Feb.
gem.coop
gem.coop
December 30, 2025 at 11:54 PM
I'm scared of making my gems 1.0 for some reason, even though they've been stable for 2+ years.

so new years day seems like a fitting time to mark them 1.0 🍾🥂
December 30, 2025 at 11:57 PM
Reposted by Kasper Timm Hansen
It’s late, and you get alerts that web requests are failing. Page loads hang endlessly. The server isn’t responding, requests are queueing up. What do you do?!

"When good threads go bad" is a deep dive into stuck threads, how to deal with them, and what to avoid.

jpcamara.com/2025/12/30/w...
When good threads go bad
👋🏼 This is part of series on concurrency, parallelism and asynchronous programming in Ruby. It’s a deep dive, so it’s divided into several parts: Your Ruby programs are always multi-threaded: Part 1 ...
jpcamara.com
December 30, 2025 at 9:10 PM
Reposted by Kasper Timm Hansen
Alright friends, today’s the big day…we’re opening up tickets and CFP for Blue Ridge 2026! 🎉 We’re going to be at the YMI Cultural Center in downtown Asheville, NC on April 30 & May 1. We’d love to have you join us this spring in our favorite mountain town. ⛰️
December 15, 2025 at 5:43 PM
I put the transcript from my @deadcode.website appearance up on my blog. I'm really happy with how it turned out.

kaspth.com/posts/dead-c...
Dead Code — Crushing Riffs - Kasper Timm Hansen
A while back I went on Jared Norman’s excellent Dead Code podcast to talk about my riffing process for intentional durable software design. Essentially learning riffing helps you more easily...
kaspth.com
December 10, 2025 at 10:35 AM
I do love how condensedly cursed you can make ruby code
December 10, 2025 at 9:51 AM
Reposted by Kasper Timm Hansen
rv 0.3 is out, adding code signatures, automatic install during run, and ruby 4.0.0-preview2 (as well as ruby 0.49, why not). check it out! github.com/spinel-coop/...
Release v0.3.0 · spinel-coop/rv
Highlights include support for Ruby versions 3.2.x, 3.5.0-preview1, 4.0.0-preview2, automatic Ruby installation during the rv ruby run command, and support for .tool-versions files, which are also ...
github.com
December 8, 2025 at 9:41 AM
Reposted by Kasper Timm Hansen
Happy to announce that Gem Fellowship applications are now open! If you're a Ruby open source maintainer, this grant program is for you. 💎

https://gem.coop/fellowship/
gem.coop
gem.coop
December 1, 2025 at 7:40 PM
Reposted by Kasper Timm Hansen
The San Francisco Ruby Conference (@sfruby.com) just concluded and I'm incredibly honored and grateful to have been part of it.

The conversations, ideas, and encouragement over the past few days were a reminder of how special the energy of the Ruby community really is! ♥️

#sfruby #sfruby2025
November 22, 2025 at 11:13 PM
Reposted by Kasper Timm Hansen
More cool Ruby gems, this time related to databases and Active Record!

First, alternatives to Active Record 😉

github.com/jeremyevans/... – from the creator of Roda; why not try out both together?

github.com/rom-rb/rom – from the creators of Hanami; again, it's worth exploring both
November 14, 2025 at 4:25 PM
Reposted by Kasper Timm Hansen
We're doing something a bit different (and cool!) with APM at Honeybadger... Josh writes up some of our thoughts on the blog:
APMs drown you in data you'll never use, yet can't answer questions when production breaks.

Our co-founder Josh explores why—it's not lack of data, it's paying for complexity that doesn't translate to capability.

www.honeybadger.io/blog/apm-par...

#Observability #DevOps #Monitoring
The APM paradox: Too much data, too few answers
Most dev teams don't need 47 dashboards or petabytes of logs—they need answers at 2 AM. Explore the evolution from APM to observability.
www.honeybadger.io
November 14, 2025 at 8:50 PM
Reposted by Kasper Timm Hansen
After the Rubygems drama, I felt frustrated that I can’t escape evil people trying to dominate my life.

I found myself mourning the future I thought we would have; but also hopeful that it’s not too late to start choosing kindness.

Join me in building a better future:

okayfail.com/2025/in-prai...
In Praise of dhh
A reflection on Ruby's past, present, and future.
okayfail.com
November 9, 2025 at 4:52 PM
I loved this post wholeheartedly

okayfail.com/2025/in-prai...
In Praise of dhh
A reflection on Ruby's past, present, and future.
okayfail.com
November 9, 2025 at 6:28 PM
Reposted by Kasper Timm Hansen
🪩⚠️ Alert: @sfruby.com is in 10 days ! ! !

What's inside:
💎 two dozen new and hot Ruby startups like @bolt.new
💎 authors of RubyLLM, Herb, Active Agent, Inertia Rails, ZJIT, and more
💎engineers scaling Ruby and Rails at Chime, Cisco, Intercom, Shopify
💎afterparty by GitButler 🪩
(see part 2)
November 9, 2025 at 6:40 AM
Reposted by Kasper Timm Hansen
I bought this this morning and I’m over half way through it. Probably the best $25 I’ve spent in years. I use web components for my blog posts and have known for a while that there are big gaps in my knowledge, and this has filled a whole bunch of them.
Online on a weekend? You can grab access to my web components course for $25 today and tomorrow. Big ol’ discount. Use the code OCT25-26.

(And as usual, if you need further accommodation, just use the email form and we’ll work it out.)

scottjehl.com/learn/webcom...
Web Components Demystified online course | Scott Jehl, Web Designer/Developer
A comprehensive, premium course about building dynamic, fast, resilient apps with standard web components.
scottjehl.com
October 26, 2025 at 5:11 PM
Reposted by Kasper Timm Hansen
the former maintainers of Bundler and RubyGems have a proposal: we want to move Ruby forward andre.arko.net/2025/10/26/w...
We want to move Ruby forward
On September 9, without warning, Ruby Central kicked out the maintainers who have cared for Bundler and RubyGems for over a decade. Ruby Central made these changes against the established project poli...
andre.arko.net
October 26, 2025 at 4:45 AM
Reposted by Kasper Timm Hansen
I wrote my most personal blog post to date.

It summarizes some of my personal feelings and experiences in the Ruby/Rails community.

afomera.dev/posts/2025-1...
Stop Giving Harm a Microphone
afomera.dev
October 26, 2025 at 4:38 AM
I've also been realizing how much I'm borrowing from CSS's cascade conceptually.

Oaken is really just Cascading Setup Scripts.
October 23, 2025 at 10:15 PM
One of my design goals for Oaken is to maximize the amount of power & flexibility users get for extremely little internal code.

Here's a PR to show that, see the documentation to implementation ratio github.com/kaspth/oaken...
Add `Oaken::Stored::ActiveRecord#with` to group `create`/`upsert` calls + scoped `defaults`. by kaspth · Pull Request #126 · kaspth/oaken
Using with to group setup with allows you to group similar create/upsert calls & apply scoped defaults. with during setup During seeding setup, use with in the block form to group create/upsert...
github.com
October 23, 2025 at 10:07 PM
Reposted by Kasper Timm Hansen
Once you realize the web is really just a giant game / graphics engine that gives you a DSL for content, and a DSL for styling, and a scripting language for anything extra...it all kinda starts to make sense.

the "scripting" language is the escape hatch for the cases the DSLs can't handle.
October 20, 2025 at 5:31 AM