Nithin Bekal
nithinbekal.com
Nithin Bekal
@nithinbekal.com
Staff developer at Shopify. I mostly post about Ruby, Rails, Vim/Neovim and assorted programming related topics.

Blog: https://nithinbekal.com/
Photography: https://photos.nithinbekal.com/
After almost 3 years of using Logseq, I decided that it is too buggy to continue using. Decided to switch to Obsidian for note taking. Some notes:

nithinbekal.com/posts/logseq...

#logseq #obsidian
Moving form Logseq to Obsidian
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
November 10, 2025 at 10:46 PM
A mere add_foreign_key can wipe out your whole Rails+SQLite production table

kyrylo.org/software/202...

#Ruby #sqlite
A mere add_foreign_key can wipe out your whole Rails+SQLite production table
A single add_foreign_key in a Rails migration can obliterate a dependent table in your SQLite database. This is exactly what happened with my self-hosted error tracker, Telebugs.
kyrylo.org
October 31, 2025 at 5:03 PM
Frozen String Literals: Past, Present, Future?

byroot.github.io/ruby/perform...

I still can't believe frozen string literals haven't become the default after all these years, and with a clear deprecation path. Ruby 4.0 is <2 months away, so I don't think it's happening this year either. :(

#ruby
Frozen String Literals: Past, Present, Future?
If you are a Rubyist, you’ve likely been writing # frozen_string_literal: true at the top of most of your Ruby source code files, or at the very least, that you’ve seen it in some other projects.
byroot.github.io
October 28, 2025 at 2:01 PM
A Philosophy of Software Design

youtu.be/bmSAYlu0NcY?...

Fantastic talk by John Ousterhout about software design. Looking forward to reading the book of the same name.
A Philosophy of Software Design | John Ousterhout | Talks at Google
YouTube video by Talks at Google
youtu.be
October 11, 2025 at 5:20 AM
rv, a new kind of Ruby management tool

andre.arko.net/2025/08/25/r...

This is inspired by python's uv, so really excited for this project, having seen how much uv has influenced the python ecosystem in a short while.

rv doesn't support Intel macs yet, so I'll have to wait a bit to try it. #ruby
rv, a new kind of Ruby management tool
For the last ten years or so of working on Bundler, I’ve had a wish rattling around: I want a better dependency manager. It doesn’t just manage your gems, it manages your ruby versions, too. It doesn’...
andre.arko.net
September 6, 2025 at 1:36 AM
Stop memoizing Hash lookups in Ruby

nithinbekal.com/posts/ruby-h...

#ruby
Stop memoizing Hash lookups in Ruby
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
July 11, 2025 at 11:51 AM
Andrej Karpathy: Software Is Changing (Again)

www.youtube.com/watch?v=LCEm...

#ai #llm
Andrej Karpathy: Software Is Changing (Again)
YouTube video by Y Combinator
www.youtube.com
June 26, 2025 at 3:25 AM
ZJIT has been merged into Ruby

railsatscale.com/2025-05-14-m...

"ZJIT is a new just-in-time (JIT) Ruby compiler built into the reference Ruby implementation, YARV, by the same compiler group that brought you YJIT."

#ruby
ZJIT has been merged into Ruby
ZJIT has been merged into upstream Ruby. Learn about its architecture!
railsatscale.com
May 31, 2025 at 2:31 AM
Reposted by Nithin Bekal
My teammate Alexandre Terrasa wrote a great post about using inline RBS with Sorbet.
We’ve been slowly adopting it at Shopify. And while we’re still improving Sorbet and all the supporting projects, it’s already working well!

railsatscale.com/2025-04-23-r...
Inline RBS comments support for Sorbet
How Sorbet and RBS can work together to elevate your Ruby development experience
railsatscale.com
May 1, 2025 at 10:28 AM
Reposted by Nithin Bekal
One benefit of #Sorbet is that it can make VSCode and Neovim almost on par with RubyMine's excellent behavior of being able to go to definitions and references from almost anywhere to anywhere. It helps so with debugging and refactoring. 
This is amazing in a dynamically typed language like #Ruby
March 5, 2025 at 9:00 AM
Reposted by Nithin Bekal
Forgot to mention: the 2 main drivers behind this work: Alexandre Terrasa and Alexander Momchilov, will both be speaking at this year's RubyKaigi.

So definitely come to their talks and ask them questions to learn more about the challenges and visions behind it 😉
February 25, 2025 at 11:42 PM
Reposted by Nithin Bekal
It's an idea my colleague Alexandre Terrasa and the team explored way back in 2020. But due to various challenges we couldn't make it work at the time.
Maybe 2025 will be the year to finally make it happen?

- 2020 PR: github.com/sorbet/sorbe...
- 2025 PR: github.com/sorbet/sorbe...
February 25, 2025 at 10:45 PM
Sorbet now has (experimental) support for RBS comments for adding types to methods. Now the major type checkers for ruby are all converging towards RBS for annotations, and this could be huge for the future of types in Ruby!

sorbet.org/docs/rbs-sup...

#ruby #sorbet
RBS comments support · Sorbet
> This feature is experimental and might be changed or removed without notice.
sorbet.org
February 25, 2025 at 4:16 AM
"My team's intern just found a critical bug by shitposting in our codebase" 😂😂😂

www.reddit.com/r/csMajors/c...
From the csMajors community on Reddit
Explore this post and more from the csMajors community
www.reddit.com
February 12, 2025 at 2:51 AM
A simple trick to understand Ruby’s lazy enumerator

joyofrails.com/articles/sim...

Beautiful visual demo of how lazy enumerators help avoid unnecessary work.

#ruby
A simple trick to understand Ruby’s lazy enumerator
Where you get to play with an interactive demo to visualize how Enumerator::Lazy helps avoid unnecessary work
joyofrails.com
January 15, 2025 at 5:15 AM
Favorite books of 2024
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
January 10, 2025 at 5:11 AM
Ruby upgrades are so incredibly smooth these days!

I have 3 small hobby rails apps that I wanted to upgrade to Ruby 3.4, and it took me 20 minutes to upgrade and deploy them all! And 5 of those minutes were spent downloading the latest ruby.

#ruby #rails
January 3, 2025 at 4:44 AM
Rails for everything | Literally the Void
literallythevoid.com
January 3, 2025 at 4:16 AM
What's new in Ruby 3.4

nithinbekal.com/posts/ruby-3...

The next release of Ruby is just a week away. Dive into the latest features, including the new it block parameter, chilled strings, the Prism parser, and modular GC.

#ruby
What's new in Ruby 3.4
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
December 18, 2024 at 4:45 AM
avante.nvim: AI copilot in Neovim

nithinbekal.com/posts/avante...

#neovim #ai
avante.nvim: AI copilot in Neovim
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
November 6, 2024 at 3:20 AM
Optimizing page loads for Giscus comments

nithinbekal.com/posts/giscus...
Optimizing page loads for Giscus comments
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
November 2, 2024 at 4:18 AM
Rails 8 authentication generator #rails #ruby

nithinbekal.com/posts/rails-...
Rails 8 authentication generator
Nithin Bekal's blog about programming - Ruby, Rails, Vim, Elixir.
nithinbekal.com
October 24, 2024 at 2:29 AM