Sign in

Jose Farias

@jose.omg.lol
283 followers 221 following 42 posts

AI, Rails, and React at GrowthXAI. Prev 37signals, Harvest. Blog jose.omg.lol

PostsRepliesMedia
Jose Farias @jose.omg.lol · 05/10/2025
Working on adding Replicate support to RubyLLM github.com/crmne/ruby_l...
github.com
Add Replicate provider by josefarias · Pull Request #435 · crmne/ruby_llm
What this does This PR adds Replicate as a provider. Replicate may stand out from other providers in several areas: They don’t expose pricing via API (that I can tell). I’ve opted for not includin...
030
Jose Farias @jose.omg.lol · 05/07/2025
If you’re going to RailsConf next week and are interested in pairing on HotwireCombobox during day 2’s Hack Spaces—I’ve written up some ideas for what issues we could work on. We can also work on whatever else, or just chat. Hit me up at the teal station from 10:00AM ~ 12:40PM.
Screenshot of the GH issue linked in the thread. A list of ideas we could work on.
130
Jose Farias @jose.omg.lol · 17/04/2025
Indenting private methods tells you what the intended access policy is without having to orient yourself inside the class. Specially useful when reviewing diffs and you’re not even shown the full context by default. This is why it’s my preference in Ruby.
260
Jose Farias @jose.omg.lol · 10/03/2025
Here’s post 2 in my Object-Oriented Rails series. Post 1 argued business logic doesn’t belong in active jobs. But it lacked some code examples. Now we put pen to paper explaining how to move the logic into the model and out of your job. Also, email newsletter is live! jose.omg.lol/posts/just-w...
jose.omg.lol
Just Write English
How to move logic out of your jobs and into your domain model.
3182
Jose Farias @jose.omg.lol · 08/03/2025
I’m kicking off a series of blog posts called "object-oriented Rails". First off — why business logic doesn’t belong in active jobs. Let me know what you think! jose.omg.lol/posts/its-no...
jose.omg.lol
It’s none of their business
Why business logic doesn’t belong in active jobs.
4253
Jose Farias @jose.omg.lol · 08/03/2025
After 2.5 years at 37signals I’m moving on to a new role as a Senior Software Engineer at Harvest. I start next week! 😄
3240
Jose Farias @jose.omg.lol · 15/12/2024
Guess it was necessary lol
Two commit messages.
First one reads: "Unnecessary include". CI failed.
Second one reverts the first one. CI passes.
1270
Jose Farias @jose.omg.lol · 11/12/2024
Wrote some words about this code snippet _Code can be context-aware — because programmers can (and should be) context-aware_
class Project < ApplicationRecord
  after_save_commit :grant_access_to_everyone

  private
    def grant_access_to_everyone
      accesses.grant_to(account.users) if all_access_previously_changed?(to: true)
    end
end
491
Jose Farias @jose.omg.lol · 26/11/2024
Bluesky is probably the best use I've given my omg lol subdomain
160
Jose Farias @jose.omg.lol · 17/11/2024
Really enjoying this setup which lets me route LLM prompts to different models by flipping a switch. Makes it easy to experiment.
use_o1: &use_o1
  provider: OpenAI
  model: o1-preview

use_claude_sonnet: &use_claude_sonnet
  provider: Anthropic
  model: claude-3-5-sonnet

determine_a_b_c:
  <<: *use_o1
  messages: # ...

write_x_y_z:
  <<: *use_claude_sonnet
  system: # ...
  messages: # ...
030
Jose Farias @jose.omg.lol · 13/11/2024
Started at 1, leveled up to 4
ActionService.call(...)
ActionPerformer.perform_now(...)
ThingDoer.new(...).do_thing
Thing.new(...).act
160
Jose Farias @jose.omg.lol · 12/11/2024
Been building a ton for AI lately. It still involves lots of traditional coding. Architecture, modeling, provisioning, monitoring, it's almost like building a regular app — with many more network calls.
031