JP Camara
banner
jpcamara.com
JP Camara
@jpcamara.com
Principal software engineer @Wealthbox.
Husband/Father. Health, travel, tech and Ruby enthusiast.
Tech blog at https://jpcamara.com
Jokes at https://logicalconclusionscomic.com
“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
December 31, 2025 at 3:35 PM
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!
December 19, 2025 at 3:47 AM
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
December 19, 2025 at 3:47 AM
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
November 22, 2025 at 7:27 PM
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 🤯
November 12, 2025 at 1:18 AM
4) "When good threads go bad" coming soon!

Dan shows how jobs are executed in the `process` method, which has this hefty section utilizing `handle_interrupt`. He does a great job describing how it works, and my next article will dig deeper into if you're interested!

11/11 🧵
November 2, 2025 at 2:27 AM
If you read my article on ruby thread interrupts and bitmasks, this will be very familiar! jpcamara.com/2025/10/22/b...

I asked koichi if signals were the inspiration, and he confirmed it. It was fun to see the connection and what can be an inspiration for central language apis!

10/11 🧵
November 2, 2025 at 2:27 AM
You can change the default return value of a hash by using `default=` on the hash. docs.ruby-lang.org/en/3.4/Hash..... Now instead of nil, you'll return whatever `default` you provided! Very handy.

7/11 🧵
November 2, 2025 at 2:27 AM
1) @mike.contribsys.com you clever devil, that Signal.trap approach is ingenious!

In my post on thread interrupts, I mentioned that you cannot use rails.logger inside of a signal.trap: bit.ly/43c23Ym. Similarly, you cannot use the Sidekiq logger in trap, which is inconvenient.

3/11 🧵
November 2, 2025 at 2:27 AM
This is all I can think of now whenever my hands absorb the flavors or heat of a vegetable
October 24, 2025 at 3:20 AM
Time to tighten up my talk, the conference is coming quick!

Also just noticed the AI whoopsies on the text 🤭
October 23, 2025 at 1:29 AM
Incredible validation for Falcon as a Ruby web server, and for Async in Ruby. I spoke about concurrency at last years RubyConf and had to call out Falcon - it's the server i've been most excited about in the past few years.
October 10, 2025 at 11:27 AM
October 8, 2025 at 4:42 AM
We never needed while loops. The power was always within us.
October 8, 2025 at 4:42 AM
Github, you will never convince me that this emoji represents laughter
October 3, 2025 at 2:34 PM
0.5% of the Ruby community rn: 😩
The other 99.5%:
September 24, 2025 at 4:41 PM
Working on my real-time talk for #SFRuby conf, I think it'll be a good one!

Real-time collaboration in Lexxy anyone?
September 22, 2025 at 11:40 AM
Did an early draft run of my real-time collaboration talk at the #bostonrb meetup. Getting amped for #SFRuby conf! See you there? sfruby.com
September 5, 2025 at 9:29 PM
Still one of my favorites, definitely need to give it a rewatch
I saw this license plate yesterday so it made me think there could be a new series about the:
August 22, 2025 at 11:52 AM
Looks like you even got mentioned in the bytes.dev newsletter 😂
August 7, 2025 at 9:11 PM
I've been reading Ruby Weekly since - let me check my inbox - *SPITS OUT WATER* - 2013?!? And that was already the 126th edition 😱 @cooperx86.bsky.social you are a machine!!

It's always been one of my top Ruby resources, so it's extra fun to be included in it!

rubyweekly.com/issues/762
August 7, 2025 at 9:08 PM
It turns out the tiny /o modifier has an outside influence on how your program runs. It creates a permanent, immutable version of your regex after the _first_ time it runs. My personal policy from now on is to never use this modifier. Ever. I dig alot deeper in the article, give it a read!
August 2, 2025 at 2:18 PM
If you run these lines - is it what you expected? It definitely was _not_ what I expected!
August 2, 2025 at 2:18 PM
When you look at this class - does anything stick out to you? Any red flags?
August 2, 2025 at 2:18 PM
My brain is full of open source, blogging and growth ideas, thanks to #rubyfriends! Thanks @rubycentral.org @rosa.codes @codynorman.com @jeremysmith.co @manu-j.com @andyatkinson.com @adrianthedev.com @inazarova.bsky.social @jesper.dev @kaspth.com and so many others! Hope to see everyone again soon!
July 11, 2025 at 10:48 PM