JP Camara @jpcamara.com · 25/09/2026Totally resonates. I agree with a lot of DHH’s talk, but it just felt like entirely the wrong venue. If not there, you got only that keynote. Without the energy of the following talks and interactions, it’s a bizarre vibe you’re left with about the future of Rails 150
JP Camara @jpcamara.com · 21/09/2026Giving Jev a try by integrating it into yrby collaborative agents Each agent is connected to the document and receiving updates. It then decides using Jev which topic it wants to be involved in 020
JP Camara @jpcamara.com · 16/09/2026It makes me sad that AI will write ruby code using Thread.raise. Have they not read my blog posts?! jpcamara.com/2025/12/30/w...jpcamara.comWhen 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 ... 011
JP Camara @jpcamara.com · 16/09/2026I've got a more ergonomic release coming up really soon, so keep an eye out! I am using it on prod so it's getting battle tested, but it'll be dead simple to get started soon 030
JP Camara @jpcamara.com · 16/09/2026Since i'm speaking now, i've got a ticket up for grabs to @sfruby.com! I'd love to help a fellow Rubyist out, who's maybe been on the fence due to cost. Hit my DMs if that's you! Please only reach out if you truly think you can attend 🙏 044
Reposted by JP CamaraMarco Roth @marcoroth.dev · 07/09/2026Come join us at @sfruby.com this November! Last year’s edition was awesome, and I’m sure this year is going to be even better! ❤️ clouds.sfruby.com/e/2026-bits/...clouds.sfruby.comMarco Roth · San Francisco Ruby Startup ConferenceIndependent Consultant & Open Source Contributor. Joining the San Francisco Ruby Startup Conference on November 10-12, 2026. 075
JP Camara @jpcamara.com · 05/09/2026When you get there, hmu! It’s very usable right now, I’m just refining and trying to make it as intuitive to start with as possible 010
JP Camara @jpcamara.com · 05/09/2026Plus, aiming to have first-class Lexxy support. yrby has support for tiptap/prosemirror/rhino ootb as well, but lexxy-realtime makes it just a drop-in and a couple lines of code 130
JP Camara @jpcamara.com · 05/09/2026yrby is getting to a really strong place. I’m running it in production, and I’ve expanded quite a bit beyond my meager early ambitions I want it to be the first-class answer for realtime collaboration in Ruby/rails, without having to reach for node or any other tool 2102
JP Camara @jpcamara.com · 02/09/2026Docs-driven development: when you make a documentation site for your gem and suddenly have to stare at the interface like a normal user and not the author, so you completely rework it to be more friendly/ergonomic 😮💨 180
Reposted by JP CamaraEvil Martians @evilmartians.com · 31/08/2026The @sfruby.com conf attendees are getting into trouble. We just had to rescue Chris from a building. Vica, Anton, and Alex are happy to see him, @jpcamara.com found the chopper more exciting, and @skryukov.dev doesn't really know what happened. Buy a ticket before Sep 30 and explore SF with them. 152
JP Camara @jpcamara.com · 31/08/2026Redis can handle counters so effortlessly! I was eyeing Redis enviously at that point 😂 020
JP Camara @jpcamara.com · 31/08/2026Here’s the SolidQueue batches 2.5 year architectural journey, filled with O(n^2) algorithms, hot row contention, excessive jobs, and much in between. There’s a strong chance you’ll learn a thing or two - I certainly did 😮💨 jpcamara.com/2026/08/31/s...jpcamara.comSolidQueue Batches: evolution and architectureWhen Rosa first released SolidQueue, she did a fantastic talk on the internals of how it works and what trade-offs she made when building it. You should give it a watch. It’s where I first learned how... 1125
JP Camara @jpcamara.com · 26/08/2026Working on MissionControl batches support - any suggestions? One thing I noticed so far is I didn't add the ability to delete a finished/failed batch 031
JP Camara @jpcamara.com · 24/08/2026You too! I was planning to come, but it's been kind of whirlwind year in this new AI era, so was strapped for time. I'll be at SF Ruby conf, you should go 😂 010
JP Camara @jpcamara.com · 24/08/2026The docs on SolidQueue batches are… solid 😉 In addition, I wrote up this blog post to dig in a bit further on how to use batches in SolidQueue, including some code inspiration - like splitting a RubyLLM chat into parallel sub agents using batches jpcamara.com/2026/08/24/a...jpcamara.comA Guide to using Batches in SolidQueueSolidQueue is the default queue system shipped with Ruby on Rails. It’s a great choice for your jobs, and works out of the box with Postgres, SQLite and MySQL. It took two and a half years, but as of ... 1135
JP Camara @jpcamara.com · 21/08/2026Awesome! Feel free to hmu if you have any questions! I’ve run hundreds of millions of jobs across 10s of millions of batches in production environments and it’s been working and performing well. 020
JP Camara @jpcamara.com · 21/08/2026static.klipy.comLuke Skywalker Ignites Lightsaber with Obi-Wan KenobiALT: Luke Skywalker Ignites Lightsaber with Obi-Wan Kenobi 020
JP Camara @jpcamara.com · 12/07/2026Hey @konnorrogers.com - not sure if you’ve seen the ruby gem / js package I’ve been working on github.com/jpcamara/yrby I just added a rhino example to the demo app in it and it seems to be working well - would be great to have you try it out!github.comGitHub - jpcamara/yrby: Yjs/yrs-backed collaborative editing for Rails over ActionCable/AnyCable, with reliable document sync and presence awareness.Yjs/yrs-backed collaborative editing for Rails over ActionCable/AnyCable, with reliable document sync and presence awareness. - jpcamara/yrby 140
JP Camara @jpcamara.com · 29/06/2026"Yrb-lite" was a meh name. My initial intent was just to get the most basic thing out, but it's decently robust as it is and i'm having fun expanding it further. Yrb and Y-Ruby aren't available, so I renamed it to "yrby" ("yer-bee"). github.com/jpcamara/yrbygithub.comGitHub - jpcamara/yrby: Yjs/yrs-backed collaborative editing for Rails over ActionCable/AnyCable, with reliable document sync and presence awareness.Yjs/yrs-backed collaborative editing for Rails over ActionCable/AnyCable, with reliable document sync and presence awareness. - jpcamara/yrby 030
JP Camara @jpcamara.com · 26/06/2026Next up I need to refine onboarding so it's easier for others to get started quickly. You can find the gems and package here: rubygems.org/gems/yrb-lite rubygems.org/gems/yrb-lit... npmjs.com/package/yrb-...rubygems.orgyrb-lite | RubyGems.org | your community gem host 000
JP Camara @jpcamara.com · 26/06/2026Spent the last couple weeks working on a gem/package to support Yjs in Rails ActionCable/@anycable.io The result is yrb-lite: github.com/jpcamara/yrb... I'm pretty happy with where it is at so far! Still got work to do, but def give it a try if you're curious about realtime editinggithub.comGitHub - jpcamara/yrb-lite: Yjs/yrs-backed collaborative editing for Rails over ActionCable/AnyCable, with reliable document sync and presence awareness.Yjs/yrs-backed collaborative editing for Rails over ActionCable/AnyCable, with reliable document sync and presence awareness. - jpcamara/yrb-lite 151
JP Camara @jpcamara.com · 13/01/2026Currently 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/...github.comAllow retry_on wait procs to accept error as a second argument by jpcamara · Pull Request #56601 · rails/railsMotivation / 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... 161
JP Camara @jpcamara.com · 31/12/2025“It’s 10pm, do you know where your children are?” I added this to my “when good threads go bad” post Does anyone else remember these ads?! May have only been a USA thing 170
JP Camara @jpcamara.com · 31/12/2025Yea I didn’t want to `raise` any suspicions with such a long gap between posts, but sometimes in life you’ve just got to `handle_interrupt`s 😜 020
JP Camara @jpcamara.com · 30/12/2025It’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...jpcamara.comWhen 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 ... 1122
JP Camara @jpcamara.com · 30/12/2025media.tenor.coma man with a beard and long hair looks surprisedALT: a man with a beard and long hair looks surprised 020
JP Camara @jpcamara.com · 26/12/2025My @sfruby.com talk on real-time collaboration with AnyCable, YJS and Rails is up! I felt really happy with how it came out - let me know what you think because I can't watch myself talk 😂 youtu.be/J68QOBLEItYyoutu.beJP Camara, Real-time collaboration with Rails, AnyCable and Yjs. San Francisco Ruby Conference 2025.YouTube video by Evil Martians 1162
JP Camara @jpcamara.com · 19/12/2025TIL if you want to return the duration in seconds, returning it as an Integer is a _hard_ requirement There is a _specific_ check that the class is Integer. If you accidentally return a float, Sidekiq ignores it and reverts to its built-in delay policy. Be careful! 130
JP Camara @jpcamara.com · 19/12/2025In Sidekiq, you can add a special method to your job class called `sidekiq_retry_in`. This method allows you to dynamically adjust retry behavior. For instance, based on the exception raised you can return a different duration in seconds. /1 2120
Reposted by JP CamaraJeremy Smith @jeremysmith.co · 12/12/2025It's actually happening! Gonna super busy for the next 139 days. 😄 1162
Reposted by JP CamaraAnton Tkachov @antontkachov.bsky.social · 05/12/2025@sfruby.com Day 3 was the perfect community break! Started with a Lucasfilm museum walk (thank you, @inazarova.bsky.social), then joined the Golden Gate Bridge bike tour with @kanejamison.com, @jpcamara.com, @jeremysmith.co, @adarsh.ruby.social.ap.brid.gy and so many amazing Rubyists. 092
JP Camara @jpcamara.com · 22/11/2025Had an incredible time at @sfruby.com Fantastic talks, amazing people, and great vibes across the board So much to dig into and unpack around tooling, AI, development patterns and our collective ownership in the future of Rails Community day was such a great finish 0192
JP Camara @jpcamara.com · 12/11/2025I'm not sure @ankane.bsky.social is human - maybe some kind of open source being from the future 😂 I said to a colleague - "we'll see, but it's ankane, so it's entirely possible it'll get done soon". Less than an hour later, it was updated 🤯 0171
JP Camara @jpcamara.com · 11/11/2025media.tenor.coma pixel art of a heart with the words ruby time written on itALT: a pixel art of a heart with the words ruby time written on it 030
JP Camara @jpcamara.com · 10/11/2025Also very curious! I was big into warp for a while, but a) they literally still don't support full terminal history and cap at 20k lines and b) feels like they're getting further and further from prioritizing the actual terminal part i'm back on iterm2 again, but i'd love a better tool 210
JP Camara @jpcamara.com · 10/11/2025If you are anywhere near SF Ruby Conf and haven't bought a ticket yet, the time is now! This conf is gonna be 🔥🔥🔥 082
JP Camara @jpcamara.com · 02/11/2025Amazing, thanks for putting a name to it @byroot.bsky.social ! I'm gonna dig into this more 000
JP Camara @jpcamara.com · 02/11/2025"Today I ran Brussels half marathon and it was 21.1km of pure joy!" I have never heard a marathon described as "pure joy" 😂 It must have truly been something special! 110
JP Camara @jpcamara.com · 02/11/2025Thanks for the reference! I'm gonna check this out more. Zeitwerk is something I think would be super interesting to read through - I bet there's some unique stuff you've had to do in there 010