Sign in

JP Camara

@jpcamara.com
1.4K followers 766 following 682 posts

Principal software engineer @Wealthbox. Husband/Father. Health, travel, tech and Ruby enthusiast. Tech blog at jpcamara.com Jokes at logicalconclusionscomic.com

PostsRepliesMedia
JP Camara @jpcamara.com · 25/09/2026
Totally 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/2026
Giving 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/2026
It 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.com
When 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/2026
I'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/2026
Since 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
JP Camara @jpcamara.com · 14/09/2026
I'm speaking at @sfruby.com! Buy a ticket and come say hi!
272
JP Camara @jpcamara.com · 12/09/2026
yrby + rubyllm = user + agent collaboration 🫢
011
Reposted by JP Camara
Marco Roth @marcoroth.dev · 07/09/2026
Come 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.com
Marco Roth · San Francisco Ruby Startup Conference
Independent Consultant & Open Source Contributor. Joining the San Francisco Ruby Startup Conference on November 10-12, 2026.
075
JP Camara @jpcamara.com · 05/09/2026
When 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/2026
010
JP Camara @jpcamara.com · 05/09/2026
Plus, 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/2026
The API is still finalizing a bit but it’s close!
000
JP Camara @jpcamara.com · 05/09/2026
yrby 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/2026
Docs-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 Camara
Evil Martians @evilmartians.com · 31/08/2026
The @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/2026
Redis can handle counters so effortlessly! I was eyeing Redis enviously at that point 😂
020
JP Camara @jpcamara.com · 31/08/2026
Here’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.com
SolidQueue Batches: evolution and architecture
When 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/2026
Working 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
Batches index page. List of All batches, with id link, description, status, progress percentage, job count and enqueued atBatch show page, listing jobs run and different job stateJob show page, which now includes a link to a batch
031
JP Camara @jpcamara.com · 24/08/2026
You 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/2026
The 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.com
A Guide to using Batches in SolidQueue
SolidQueue 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/2026
Awesome! 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/2026
It’s been a journey 😂 ! Thanks @rosa.codes!
180
JP Camara @jpcamara.com · 21/08/2026
static.klipy.com
Luke Skywalker Ignites Lightsaber with Obi-Wan Kenobi
ALT: Luke Skywalker Ignites Lightsaber with Obi-Wan Kenobi
020
JP Camara @jpcamara.com · 31/07/2026
IYKYK 🐘
Isildur elrond meme applied to postgres vacuums

Postgres logo and a heap tuple in first pane
Second pane is VACUUM telling someone to cast it into the fire and destroy it!
Third pane is a long-running transaction saying "no"
Fourth pane is the tuple being thrown onto a pile of other tuples that can't be reclaimed due to the long running transaction pinning the xmin horizon
050
JP Camara @jpcamara.com · 12/07/2026
Hey @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.com
GitHub - 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/yrby
github.com
GitHub - 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/2026
Next 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.org
yrb-lite | RubyGems.org | your community gem host
000
JP Camara @jpcamara.com · 26/06/2026
Spent 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 editing
github.com
GitHub - 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/2026
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/...
github.com
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...
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
Ad for “it’s 10pm do you know where you children are?”Ad for “it’s 10pm do you know where you children are?”, but with “children” overwritten by “threads”
170
JP Camara @jpcamara.com · 31/12/2025
Yea 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/2025
Finally got it released, just before the new year 🥲
140
JP Camara @jpcamara.com · 30/12/2025
It’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.com
When 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/2025
media.tenor.com
a man with a beard and long hair looks surprised
ALT: a man with a beard and long hair looks surprised
020
JP Camara @jpcamara.com · 27/12/2025
🙇‍♂️ 🙇‍♂️ 🙇‍♂️
070
JP Camara @jpcamara.com · 27/12/2025
Awesome! Can you say which one??
020
JP Camara @jpcamara.com · 26/12/2025
My @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/J68QOBLEItY
youtu.be
JP 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/2025
TIL 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/2025
In 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 Camara
Jeremy Smith @jeremysmith.co · 12/12/2025
It's actually happening! Gonna super busy for the next 139 days. 😄
1162
Reposted by JP Camara
Anton 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/2025
Had 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/2025
I'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/2025
media.tenor.com
a pixel art of a heart with the words ruby time written on it
ALT: a pixel art of a heart with the words ruby time written on it
030
JP Camara @jpcamara.com · 10/11/2025
Also 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/2025
If 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/2025
ok nice to know you are still human 😂😂😂!
020
JP Camara @jpcamara.com · 02/11/2025
Amazing, 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/2025
Thanks 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