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
Here is OpenCode with GLM deciding to skip some tests because it couldn't make them pass. :)

Let's talk about using generative AI to write test cases this Thursday, in person, at the Sibiu Web Meetup in Sibiu.
January 27, 2026 at 1:06 PM
Does anyone have a good starter template for Jekyll + Tailwind and no build?

#Ruby #Tailwind #Jekyll
January 27, 2026 at 9:10 AM
Working on my presentation about AI-assisted, human-approved testing that I will deliver this Thursday at Sibiu Web Meetup

If you are in Sibiu join here -> luma.com/ps4gax1s
January 26, 2026 at 4:53 PM
Reposted by Lucian Ghinda
Re-brand! One Man Band is now shellflow.dev

As I build this tool, I'm spending most of my dev time in it. This means it's becoming less of just a worktree manager for LLM tools and more of a general-purpose terminal wrapper that includes workflow tools.

Still iterating and discovering new uses!
GitHub - shkm/shellflow: ⛲ Parallel terminal and worktree orchestration
⛲ Parallel terminal and worktree orchestration. Contribute to shkm/shellflow development by creating an account on GitHub.
shellflow.dev
January 25, 2026 at 9:36 AM
Reposted by Lucian Ghinda
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 Lucian Ghinda
Hey #ElixirLang & #Ruby fam, I got laid off this last Friday and am looking for the next adventure! If anyone has any opportunities, feel free to reach out!
January 19, 2026 at 7:03 PM
Reposted by Lucian Ghinda
Released One Man Band 0.2.0. It's now capable enough that I'm using it to build itself alongside another project. Terminal notifications, progress, task running, and of course worktree management.

Now installable via brew (my tap, for now — check instructions).

github.com/shkm/One-Man...
GitHub - shkm/One-Man-Band: 🎻 Terminal Wrapper & Worktree orchestration GUI
🎻 Terminal Wrapper & Worktree orchestration GUI. Contribute to shkm/One-Man-Band development by creating an account on GitHub.
github.com
January 22, 2026 at 12:51 PM
Reposted by Lucian Ghinda
I'm actually surprised that this is not a syntax error in Ruby

>> x = [foo: "bar", baz: "boo"]
=> [{foo: "bar", baz: "boo"}]
January 22, 2026 at 9:53 AM
If you're writing API documentation, always specify units for duration parameters.

Not just "timeout: 30" but "timeout: 30 seconds" or better yet name the parameter if you can "timeout_in_seconds"
January 22, 2026 at 8:30 AM
Reposted by Lucian Ghinda
Had good experiences using Conductor but wanted more simplicity. Worktrunk is nice but I miss some GUI. So I built my own!

It's a GUI git worktree orchestrator, which works with #Claude or #Opencode or whatever. More features coming...

github.com/shkm/One-Man...
GitHub - shkm/One-Man-Band: Worktree orchestration GUI
Worktree orchestration GUI. Contribute to shkm/One-Man-Band development by creating an account on GitHub.
github.com
January 20, 2026 at 10:42 AM
@mackuba.eu if I want to search via API Bluesky for posts about Ruby, Ruby on Rails and so on what would be the best way to think/approach this?

I don't want to get the entire feed locally but to seach via API maybe and then tag them?
January 20, 2026 at 5:31 AM
Reposted by Lucian Ghinda
🎤Meet our next speaker: @byroot.bsky.social — Senior Principal Engineer @ Intercom, Rails & Ruby Core team member, Ruby Prize 2022 finalist.

With 10+ years on large Ruby apps, he’s a long-time committer shaping the community.
🗓️ 15-16 May, 2026
📍 Sofia: balkanruby.com/talks/32
January 19, 2026 at 10:00 AM
Reposted by Lucian Ghinda
TruffleRuby kicks off the year with a new website, a new release, and a blog post to go with it! 🎉
truffleruby.dev/blog/truffle...
Many changes:
* New versioning
* Thread-safe Hash
* No system dependencies anymore
* Installs in 2 seconds
* Development is now fully in the open
TruffleRuby 33 is Released
TruffleRuby 33.0.0 is released and available on GitHub, in your favorite Ruby installer, and on Maven Central!
truffleruby.dev
January 13, 2026 at 8:38 PM
If you're using LLMs with a skill for #Ruby on #Rails projects to generate commit messages, could you help me with a few links?

I've tried some general resources, but I'm curious if there are any specific ones available or if I should create one myself.
January 18, 2026 at 9:41 AM
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