Lucian Ghinda
lucianghinda.com
Lucian Ghinda
@lucianghinda.com
Product Engineer, Ruby on Rails Developer

‣ Curator of newsletter.shortruby.com
‣ Helping #Ruby developers design better test cases at https://goodenoughtesting.com
Pinned
Only 7 spots are still available for the #GoodEnoughWorkshop happening on 12 December at 15:00 UTC. Last days for getting the tickets with discounts!

You can buy a ticket here lu.ma/533zg5zq
Working with LLMs means reviewing way more diffs than before.

I discovered delta a while back and this was such a huge improvement to working in a terminal and having amazing syntax highlighting for diffs
January 16, 2026 at 10:36 AM
Reposted by Lucian Ghinda
New blog post: When ActiveRecord and Arel aren't cutting it, sometimes raw #SQL is all you need. I built AppQuery to make that experience better — with CTE inspection, ERB templating, and proper type casting.

www.gertgoet.com/appquery.html
#Ruby #RubyonRails
App Query: when SQL is all you need
www.gertgoet.com
December 26, 2025 at 5:04 PM
Reposted by Lucian Ghinda
Ruby isn't dying, it is already dead. So is every other language. Rejoice, you have been liberated! You no longer write Ruby for The Man, but yourself! Reclaim the means of production as the means of amusement! Ruby was created to make you happy, not the machine. Wrest back your joy!
January 13, 2026 at 9:38 PM
Reposted by Lucian Ghinda
Ruby 3.2.10 has been released. ruby-lang.org/en/news/2026...
This version applied past CVE fixes and fixed build errors and issues with OpenSSL 3.6.0. Ruby 3.2.x will be released with same fixes in March and will reach EOL, so please plan to update to 3.3/3.4.
Ruby 3.2.10 Released | Ruby
Ruby 3.2.10 has been released.
ruby-lang.org
January 14, 2026 at 8:00 AM
Reposted by Lucian Ghinda
Currently in ActiveJob, `wait` in `retry_on` accepts a proc, but it is only handed the execution count. I think access to the error can also be useful when calculating the next wait time. If you agree, give it a like! github.com/rails/rails/...
Allow retry_on wait procs to accept error as a second argument by jpcamara · Pull Request #56601 · rails/rails
Motivation / Background Currently, retry_on wait procs can only accept the execution count as an argument, which limits the ability to customize retry delays based on the error itself. Some excepti...
github.com
January 13, 2026 at 10:04 PM
Reposted by Lucian Ghinda
We have folks from five different countries coming already for this event.

Sign up today, come over and have a blast! I’m organizing! You won’t regret it.

luma.com/yl6v0cy9
January 13, 2026 at 2:48 PM
If you're still thinking the #Ruby ecosystem is slowing down, this new edition of @shortrubynews will change you mind.

This edition is sponsored by @undercover_ci - "the Ruby coverage toolkit ready for the vibe coding era"

Here are some highlights from the newsletter:
January 13, 2026 at 2:40 PM
What is the common advice on how to handle .kamal/secrets for an open-source Ruby on Rails web app?

Do you commit it as it is by setting it to read from environment?
January 13, 2026 at 11:50 AM
Seems like Ruby is pretty well positioned as a language that is token-efficient when used with LLMs.

Source "Which programming languages are most token-efficient?" by Martin Alderson martinalderson.com/posts/which...
January 13, 2026 at 8:30 AM
Reposted by Lucian Ghinda
Opening the CFP for Brighton Ruby 2026.
All the videos are up for last year.
Tickets still on sale.
Please sponsor. (PLEASE)
January 12, 2026 at 8:00 AM
Reposted by Lucian Ghinda
A few weeks ago, Sandjiv and Mathieu joined me to discuss Taste.

We discussed the way taste changes with the team, and why the "best" code is not always the best code.

More here: open.spotify.com/episode/6jhK...
January 12, 2026 at 3:30 PM
Reposted by Lucian Ghinda
Normal people don't get euphoric about tech, not like engineers and builders do.

Now's a good time to learn the purchase story of normal people.
everyonewantsprogress.com/0100-enginee...
Engineering Euphoria
“Look what we can now produce!”“Finally, all our constraints have been removed!”“Engineers have done it again.”In the story of progress, there’s no denying it. Engineering made the difference. Applied...
everyonewantsprogress.com
January 12, 2026 at 7:22 PM
Reposted by Lucian Ghinda
Ruby 4.0.1 Released www.ruby-lang.org/en/news/2026...

This release includes a bugfix for Kernel#sleep, along with other bugfixes. We recommend upgrading your Ruby version at your earliest convenience.
Ruby 4.0.1 Released | Ruby
Ruby 4.0.1 has been released.
www.ruby-lang.org
January 13, 2026 at 4:38 AM
Reposted by Lucian Ghinda
Developer anxiety is actually a quality control mechanism. It makes us check edge cases and side effects.

LLMs aren't dangerous because they're wrong, but because they're fearless. They write terrifying code with zero hesitation.

Beware of what you approve. You are the only guardrail left.
January 12, 2026 at 9:05 AM
Reposted by Lucian Ghinda
Telesink requirements I’m optimizing for:

✅ Real-time updates without refreshing the page
✅ Fast iteration so I can ship quickly as a solo developer
✅ No over-engineering, especially with zero users today
✅ Open source and self-hostable from day one (free forever).

telesink.com/blog/tech-ch...
Tech choices and trade-offs | Telesink
What Telesink is built with: Rails, PostgreSQL, and the Solid trifecta for background jobs, caching, and real-time, all in one lean, open-source, self-hostable codebase.
telesink.com
January 11, 2026 at 10:14 AM
Reposted by Lucian Ghinda
If you want to infuse knowledge into your AI agents Minerva is for you. github.com/jorgegorka/m...

cc/ @lucianghinda.com

#rails #ruby #opensource
GitHub - jorgegorka/minerva: An MCP server to infuse wisdom into your AI agent.
An MCP server to infuse wisdom into your AI agent. - jorgegorka/minerva
github.com
January 8, 2026 at 3:33 PM
Reposted by Lucian Ghinda
Hey Ruby consultants, freelancers, and agencies! Quick reminder: we have the Ruby Consultants Quarterly Gathering (over Zoom) on Monday, 1pm ET! Come talk shop with other Rubyists. (It's not widely publicized, so if you don't have an invite, DM me and I'll add you.)
January 10, 2026 at 7:20 PM
I keep thinking about tests and types when generating code with LLMs.

Both matter, but they provide different kinds of confidence about code correctness.
January 9, 2026 at 10:00 AM
The excitement people describe with LLMs right now - that sense of possibility, the urge to build, the flood of ideas - that's exactly how Ruby felt to me in 2007.

Combine #Ruby and #AI today and you get both worlds!
January 7, 2026 at 1:46 PM
I enjoyed this discussion with Pablo and Stan and I was, of course, super optimistic about #Ruby future and what it has to offer.
🚨 New Episode Alert 🚨

I was extremely privileged to be joined by Stan and @lucianghinda.com to discuss #Ruby (and a bit of Rails)

Why does ruby feels so elegant?
Can a programing language hold beauty?
Why did they decide to use or not use Ruby?

All that and more here: buff.ly/IpPalrj
27 - On Ruby (and Rails?) with Lucian and Stan
A Junior, A Senior and I · Episode
open.spotify.com
January 7, 2026 at 1:37 PM
Reposted by Lucian Ghinda
GET HYPED

FLY TO BELFAST

HAVE THE TIME OF YOUR LIFE

Belfast RubyFest 2026 is here. Headcount is strictly capped, so RSVP today.

luma.com/yl6v0cy9
Belfast RubyFest 2026 · Luma
The first-ever Belfast RubyFest is here. It will be a celebration of community, creativity, and all the wonderful things you can build with Ruby. Three…
luma.com
January 5, 2026 at 10:26 PM
Reposted by Lucian Ghinda
Over half the slots for Belfast RubyFest 2026 have gone in the first 24 hours since I announced the event.

If you want to come to Belfast and have a great time with other fellow Rubyists, RSVP now!!

luma.com/yl6v0cy9
Belfast RubyFest 2026 · Luma
The first-ever Belfast RubyFest is here. It will be a celebration of community, creativity, and all the wonderful things you can build with Ruby. Three…
luma.com
January 6, 2026 at 10:05 PM
Reposted by Lucian Ghinda
I just made the coolest little fidget toy to give out at the next conference.
If you want one, come say hi 👋

... I'm just too excited about these things 🫣
January 6, 2026 at 9:16 AM
Reposted by Lucian Ghinda
New blog post: Portable mruby binaries with Cosmopolitan

katafrakt.me/2026/01/04/m...

#mruby #ruby
Portable mruby binaries with Cosmopolitan
How to avoid complex cross-compilation and provide just one binary for all platforms.
katafrakt.me
January 4, 2026 at 9:10 PM
Reposted by Lucian Ghinda
Here's a script to demonstrate the first problem.

gist.github.com/nateberkope...

80-90% of N+1s I see in the wild are because an ActiveRecord models' instance method is causing an un-preloadable query.

Solutions include: manage data at the controller level instead, use scopes!
Rails N+1 query that cannot be fixed with includes() - using where() in instance method
Rails N+1 query that cannot be fixed with includes() - using where() in instance method - n_plus_one_where.rb
gist.github.com
January 5, 2026 at 5:00 PM