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
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
If you read @byroot.bsky.social 's "What's the deal with Ractors?", and were bummed at how poorly they handled JSON parsing, then @jhawthorn.com has brightened your day!

Frozen interned strings are now stored in a lock-free hash, making the Ractor example 2x faster than the single-threaded example!
April 20, 2025 at 12:12 AM
I’m a little bummed, but I think my RailsConf talk getting declined is for the best! I can focus on getting back to blogging and also just enjoy the conference without revising my talk endlessly.

Should I still submit it as a talk elsewhere down the line? Would you go to it?
April 3, 2025 at 8:14 PM
The only true instance of grilled cheese?
February 4, 2025 at 3:32 AM