Sign in

Vinicius Stock

@vinistock.bsky.social
834 followers 184 following 28 posts

Staff engineer at Shopify working on the Ruby developer experience team | Ruby LSP creator | Speaker Developer tooling, static analysis and type checking

PostsRepliesMedia
Reposted by Vinicius Stock
XO Ruby @xoruby.com · 13/10/2026
Montréal we're bringing you a conference with no flights, no hotel and no four-figure ticket. XO Ruby Montréal, this Sat Oct 17: 8 talks, one track, $138CAD, and lunch money in your pocket. Lineup includes a former Rails core member and the creator of Thin. xoruby.com/event/montreal
xoruby.com
Montréal
Bonjour, Ruby.
055
Reposted by Vinicius Stock
Aaron Patterson @tenderlove.dev · 01/10/2026
Hi everyone! I'm going to do a live stream tomorrow at 9am PDT (16:00 UTC) with @bernsteinbear.com. We're going to hack on ZJIT! Join us if you have time!! youtube.com/live/h9_FyHY...
youtube.com
Pairin' with Aaron: ZJIT Internals
YouTube video by Tenderlove's Cool Stuff
0113
Reposted by Vinicius Stock
Peter Zhu @peterzhu.ca · 02/09/2026
Ruby's GC and ZJIT got a new collab! We recently introduced inlining of the garbage collector's fastpath into ZJIT. Read more about it here: railsatscale.com/2026-09-01-z...
railsatscale.com
ZJIT 🤝 GC: Inlining GC Fastpath in ZJIT
Object allocations from the garbage collector are now inlined in ZJIT.
1145
Reposted by Vinicius Stock
Hans Schnedlitz @hansschnedlitz.com · 09/07/2026
RubyEvents Guides is now live. Over the last few months, I talked to Rubyists who want to help the community keep going. Some want to restart a local meetup. Some are organizing their first small conference. Some already run events and want to make the next one better.
31411
Reposted by Vinicius Stock
Ufuk Kayserilioglu @ufuk.dev · 12/05/2026
The Ruby Developer Experience team at Shopify has just launched Rubydex, a building block for indexing and (semantically) querying your Ruby codebases. @vinistock.bsky.social has a write up explaining what it is and how it works here: railsatscale.com/2026-05-12-o...
railsatscale.com
One engine, many tools — Introducing Rubydex
Introducing Rubydex — a portable static analysis engine powering Ruby LSP, Tapioca, Packwerk, and more. One foundation, compounding benefits for the whole ecosystem.
13013
Vinicius Stock @vinistock.bsky.social · 11/05/2026
It's also doing a lot more work. It doesn't exclude the test directory, tracks all ancestors and descendants and resolves all constant references. Btw, if you haven't given this a try, you can explore your codebase through the Rubydex API using interactive mode $ bundle exec rdx -i
120
Reposted by Vinicius Stock
Vitaly Slobodin @vitallium.bsky.social · 08/05/2026
Managed to get Ruby LSP code lenses working in @zed.dev ! :)
181
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 22/04/2026
At the end of day 2 RubyKaigi, I'll share what's coming in RDoc 8.0 (new parser, server mode, and RBS!), and why Ruby documentation has to work for AI too. #rubykaigi rubykaigi.org/2026/present...
rubykaigi.org
The future of Ruby documentation
RubyKaigi 2026, #rubykaigi
0145
Vinicius Stock @vinistock.bsky.social · 08/04/2026
There are a few things behind. In summary, it's higher accuracy, more features, significantly better performance and with a Ruby API that can be reused by multiple tools.
110
Vinicius Stock @vinistock.bsky.social · 08/04/2026
Hey, Jared! We are heads down working to get Rubydex integrated into the Ruby LSP. We'll publish a blog post once the work itself is finished. In terms of talks, my colleague will present one at RubyKaigi rubykaigi.org/2026/present...
rubykaigi.org
Blazing-fast Code Indexing for Smarter Ruby Tools
RubyKaigi 2026, #rubykaigi
120
Reposted by Vinicius Stock
Rafael França @rmfranca.bsky.social · 07/04/2026
My team is hiring a manager to lead one of our team of engineers working in the infrastructure for the Ruby language and the Rails framework. Come work with us! www.shopify.com/careers/engi...
shopify.com
Engineering Manager- Ruby and Rails Infrastructure
ARE YOU READY? Join the fully-remote rocketship. Find your next quest to make commerce better for everyone. Unlimited growth. Crafters and hard workers only. Apply within.
0129
Reposted by Vinicius Stock
Janko Marohnić @janko.io · 01/04/2026
First Ruby LSP beta got released with partial migration to Rubydex 👀 github.com/Shopify/ruby... Indexing our Rails application (+ dependencies) currently takes 12s with Ruby LSP's internal indexer. Rubydex does it in 2s 💯 And I think it's even doing more work.
github.com
1144
Vinicius Stock @vinistock.bsky.social · 23/03/2026
The Ruby LSP’s indexer already does that as long as the editor has support for watching files. Do you mean built-in file watching for editors that don’t provide it? The incremental aspect will definitely be a part of Rubydex too
100
Reposted by Vinicius Stock
Lucian Ghinda @lucianghinda.com · 11/03/2026
Ruby LSP is now an official Claude Code plugin. With it, Claude queries the language server directly - same as your editor does. Without it, Claude reads the file and tries to extract the structure manually.
4192
Reposted by Vinicius Stock
Kevin Menard @nirvdrum.bsky.social · 13/01/2026
This is a huge release for TruffleRuby. It’s our first under our new org. If you’ve been hesitant about contributing because of the CLA, please note that we no longer have one. We can also release more frequently so please report bugs or open PRs.
0115
Reposted by Vinicius Stock
Peter Zhu @peterzhu.ca · 29/12/2025
Ruby has a new moving GC. I just merged moving Immix in the MMTk Ruby binding. This is exciting as its the first GC that dynamically detects fragmentation in the heap and performs defragmentation. Performance isn't too great yet but I'm working on it! github.com/ruby/ruby/pu...
github.com
Implement moving Immix in MMTk by peterzhu2118 · Pull Request #15744 · ruby/ruby
This commit implements moving Immix in MMTk, which allows objects to move in the GC. The performance of this implementation is not yet amazing. It is very similar to non-moving Immix in many of the...
0266
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 23/12/2025
#rubyrelease30th I’d like to introduce Aliki, RDoc and docs.ruby-lang.org’s new theme 😄 railsatscale.com/2025-12-22-i...
railsatscale.com
Introducing Aliki: A Modern Theme for Ruby Documentation
Ruby’s documentation gets a fresh look. Starting with RDoc 7.0.0, Aliki is the new default theme—bringing dark mode, better search, and a modern layout to docs.ruby-lang.org and gem documentation.
1287
Reposted by Vinicius Stock
hsbt @hsbt.org · 20/12/2025
Finally, www.ruby-lang.org/en/ has a new design.
49828
Vinicius Stock @vinistock.bsky.social · 18/12/2025
Ah, true. They allowed any DocumentTextEdit to be a snippet, but on type formatting still accepts only text edit. I assume they’d be open to making it TextEdit | Snippet. Maybe we can propose it?
020
Vinicius Stock @vinistock.bsky.social · 17/12/2025
My understanding is that this was already implemented and will be available once the spec v3.18 is out github.com/microsoft/la... Of course, clients will need to add support for it so that it works, but it's coming
github.com
Allow CodeActions to specify cursor position · Issue #724 · microsoft/language-server-protocol
EDIT: We now documented this as a proper extension: https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/dev/lsp-extensions.md#snippet-textedit. lsp-mode for emacs implements it: emacs-l...
110
Reposted by Vinicius Stock
Janko Marohnić @janko.io · 10/12/2025
Ever forget whether it's "change_table" or "alter_table", "remove_column" or "drop_column", "set_column_null" or "change_column_null"? You don't? Well, I do 😄 So, I thought it would be cool if Ruby LSP could autocomplete schema statements in migrations ✨ github.com/Shopify/ruby...
3173
Vinicius Stock @vinistock.bsky.social · 01/12/2025
For example, Sorbet uses a rewriter to bake the logic into the implementation and that allows it to figure out the right class at the indexing phase, without requiring inference
020
Vinicius Stock @vinistock.bsky.social · 01/12/2025
You’d also need to delay the ability to infer any types on definitions of that nature until other inference managed to figure out what it means. For these cases, we generally need to introduce more annotations or some built-in mechanism to help
100
Vinicius Stock @vinistock.bsky.social · 01/12/2025
In this case, we don’t know exactly what exists because the indexing results depend on inferring the correct return on the [] method. It’s a tough problem to solve with decent performance because you’d need to go back and forth between inferring and indexing as you discover more information
100
Vinicius Stock @vinistock.bsky.social · 01/12/2025
I don’t believe there’s a way to solve this right now. The challenge here is that the parent class is a method call (the [] method). This type of code creates a dependency between inference and indexing in the analysis. We ideally want to discover what exists in the codebase and then run the rest
210
Reposted by Vinicius Stock
Janko Marohnić @janko.io · 13/11/2025
Workspace symbol search on Ruby LSP should be working much smoother now on 0.26.3, @vinistock.bsky.social and I made a bunch of fixes recently 🤘 github.com/Shopify/ruby... github.com/Shopify/ruby... github.com/Shopify/ruby...
0111
Reposted by Vinicius Stock
Marco Roth @marcoroth.dev · 12/11/2025
Herb v0.8 is here! 🚀 The biggest release yet, packed with new language bindings, Linter Autofix support, Linter Fix-on-Save, a new `.herb.yml` config file, formatter improvements, Tailwind Class Sorting integration, and a ton of performance, tooling and LSP improvements! 🌿
Herb v0.8 Release Summary
14013
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 15/10/2025
🎉 Incredibly honored to be a Ruby Prize 2025 finalist! Thank you to everyone who has supported my work on IRB, RDoc, debug, ZJIT, and other Ruby projects. See you in Matsue! rubyprize.jp
rubyprize.jp
Ruby Prize 2025 | 最終ノミネート者決定 | RubyPrize
3405
Reposted by Vinicius Stock
Ufuk Kayserilioglu @ufuk.dev · 09/10/2025
We just publicly posted about the Rubygems.org AWS root-access security incident from September 2025, what occurred, what we verified, and the actions we’ve taken to strengthen our security processes.
0267
Reposted by Vinicius Stock
Jean Boussier @byroot.bsky.social · 09/10/2025
I tried to explain why I don't believe the recent accusations toward my former teammates, as well as how the Ruby and Rails Infra team at Shopify operates and why it can be trusted. byroot.github.io/opensource/r...
byroot.github.io
Dear Rubyists: Shopify Isn’t Your Enemy
I’ve been meaning to write a post about my perspective on Open Source and corporate entities. I already got the rough outline of it; however, I’m suffering from writer’s block, but more importantly, t...
119335
Reposted by Vinicius Stock
Marco Roth @marcoroth.dev · 18/08/2025
Herb v0.5.0 is here! 🌿 Lots of fixes & improvements, plus a new `--github` flag so the Linter can annotate the offenses right on GitHub in the pull request! Plenty more is cooking, which wasn't quite ready for prime time yet 👀
The Herb Linter annotating the linter offenses in the GitHub Pull Request "Files Changed" tab.
1283
Reposted by Vinicius Stock
Jean Boussier @byroot.bsky.social · 02/08/2025
Beyond performance work, I deprecated a bunch of APis in the JSON gem, and added others, so I figured it would be a good occasion to talk about API design: byroot.github.io/ruby/json/20...
byroot.github.io
What’s wrong with the JSON gem API?
As I mentioned at the start of my Optimizing Ruby’s JSON series of posts, performance isn’t why I candidated to be the new gem’s maintainer.
2258
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 17/07/2025
ruby-lsp now has CLAUDE.md: github.com/Shopify/ruby... (generated by Claude and vetted by our team) Not sure how much it'll help the team and external contributors but I'm excited to find out 😁
github.com
173
Vinicius Stock @vinistock.bsky.social · 24/06/2025
You don’t need to add it to your Gemfile. In fact, we advise against that in our docs
050
Reposted by Vinicius Stock
Charles Oliver Nutter @headius.bsky.social · 17/06/2025
So it turns out all that is needed to support RBS and ruby-lsp on JRuby is for someone to write an FFI binding to the new "pure C" RBS parser! I challenge y'all to make that happen this week. So exciting to get these key Ruby tools working on JRuby! github.com/Shopify/ruby...
github.com
jruby installation broken since 0.17.3 · Issue #2292 · Shopify/ruby-lsp
Description Reproduction steps Install the latest jruby (e.g. rbenv install jruby-9.4.8.0) Try to install the latest ruby-lsp: gem install ruby-lsp It will fail building the native extension Code s...
042
Reposted by Vinicius Stock
Jean Boussier @byroot.bsky.social · 24/05/2025
I wrote a post to braindump what I'm currently working on: allowing lock-free access to class instance variables from Ractors. byroot.github.io/ruby/perform...
byroot.github.io
Unlocking Ractors: class instance variables
In a previous post about ractors, I explained why I think it’s really unlikely you’d ever be able to run an entire application inside a ractor, but that they could still be situationally very useful t...
1256
Reposted by Vinicius Stock
Visual Studio Code @vscode.dev · 19/05/2025
Today, we're announcing plans to make VS Code an open source AI editor. We believe AI development should stay true to VS Code's core principles: open, collaborative, and community-driven. Let's build the future of software development together. aka.ms/open-source-...
A thumbnail that reads "Your open source AI editor Powered by GitHub Copilot" with the VS Code logo and a blue gradient background
1311852
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 17/05/2025
BTW, I’ve opened a draft PR for this: github.com/Shopify/ruby... We’re now waiting on a new VS Code API to let extensions configure the MCP connection, which will make the setup simpler & more robust.
github.com
Add Experimental MCP Support by st0012 · Pull Request #3396 · Shopify/ruby-lsp
Add Model Context Protocol (MCP) support to Ruby LSP This PR adds support for the Model Context Protocol (MCP), enabling AI assistants to programmatically access Ruby project indexes and file conte...
2154
Vinicius Stock @vinistock.bsky.social · 08/05/2025
Thank you!
010
Vinicius Stock @vinistock.bsky.social · 07/05/2025
Can you please open an issue?
100
Vinicius Stock @vinistock.bsky.social · 07/05/2025
We didn’t roll anything out yet. Did you enable it yourself?
100
Vinicius Stock @vinistock.bsky.social · 06/05/2025
We’re literally about to release our reimplementation of the explorer, which fixes this and many other shortcomings
270
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 01/05/2025
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...
railsatscale.com
Inline RBS comments support for Sorbet
How Sorbet and RBS can work together to elevate your Ruby development experience
3186
Reposted by Vinicius Stock
Tropical on Rails @tropicalonrails.bsky.social · 30/04/2025
EN: VINICIS STOCK TALK AVAILABLE NOW - Strategic Standardization: Driving Innovation 🚀🌴 🔗youtu.be/Syfa0wSzqdE PT-BR: PALESTRA DO VINICIUS STOCK DISPONÍVEL - Strategic Standardization: Driving Innovation🚀🌴 🔗youtu.be/Syfa0wSzqdE
021
Reposted by Vinicius Stock
Marty Haught @mghaught.bsky.social · 18/04/2025
@ufuk.dev introducing Ruby Committers on stage at RubyKaigi day 3.
083
Reposted by Vinicius Stock
Tropical on Rails @tropicalonrails.bsky.social · 03/04/2025
EN: Kicking off the first afternoon of talks at #TropicalOnRails, @vinistock is on stage discussing Strategic Standardization: Driving Innovation. 🚀🌴 PT-BR: Abrindo as palestras da primeira tarde de #TropicalOnRails, @vinistock falando sobre Padronização estratégica: direcionando inovação. 🚀🌴
0133
Reposted by Vinicius Stock
Marco Roth @marcoroth.dev · 03/04/2025
Super excited to get this out of the door! There's still a lot of work to do to match the amount of data we had on RubyConferences.org, but to me it's very clear that this is the way forward for RubyEvents!
2196
Vinicius Stock @vinistock.bsky.social · 02/04/2025
1 dia para a @tropicalonrails.bsky.social! Na minha palestra, vou falar de padronização, como ela pode ser usada de maneira estratégica, e como o Rails usa convenções. Na parte de DX, vamos falar de uma nova tentativa de padronização e vou anunciar um protótipo da Ruby LSP. Vejo vocês lá!
010
Reposted by Vinicius Stock
Stan Lo @st0012.dev · 21/03/2025
PoC: A Ruby MCP server (powered by Ruby LSP) interacting with the Cursor agent. Ruby MCP can provide your project's: - Dependencies - Indexed classes/modules/methods - Runtime info (powered by a Rails add-on) - Anything else supported by other add-ons to the client. Thoughts?
5377
Vinicius Stock @vinistock.bsky.social · 17/03/2025
We might be able to improve this if Zed supports snippets, instead of having folks turn it off. Could you please open an issue for us?
130