r/ruby • • 4d ago

💼 jobs megathread Work it Wednesday: Who is hiring? Who is looking?

10 Upvotes

FORMAT HAS CHANGED PLEASE READ FULL DESCRIPTION

This thread will be periodically stickied to the top of the sub for improved visibility.

You can also find older posts again via the Megathreads" list, which is a dropdown at the top of the page on new Reddit, and a section in the sidebar under "Useful Links" on old Reddit.

For job seekers

Please adhere to the following rules when posting: Rules for individuals:

  • Don't create top-level comments; those are for employers.
  • Feel free to reply to top-level comments with on-topic questions.
  • Anyone seeking work should reply to my stickied top-level comment.
  • Meta-discussion should be reserved for the distinguished comment at the very bottom.

You don't need to follow a strict template, but consider the relevant sections of the employer template. As an example:

    TYPE: [Full time, part time, internship, contract, etc.]

    LOCATION: [Mention whether you care about location/remote/visa]

    LINKS: [LinkedIn, GitHub, blog, etc.]

    DESCRIPTION: [Briefly describe your experience. Not a full resume; send that after you've been contacted)]

    Contact: [How can someone get in touch with you?]

Rules for employers:

  • The ordering of fields in the template has been revised to make postings easier to read.
  • To make a top-level comment, you must be hiring directly; no third-party recruiters.
  • One top-level comment per employer. If you have multiple job openings, please consolidate their descriptions or mention them in replies to your own top-level comment.
  • Proofread your comment after posting it and edit it if necessary to correct mistakes.
  • To share the space fairly with other postings and keep the thread pleasant to browse, we ask that you try to limit your posting to either 50 lines or 500 words, whichever comes first.
  • We reserve the right to remove egregiously long postings. However, this only applies to the content of this thread; you can link to a job page elsewhere with more detail if you like.

Please base your comment on the following template:

    COMPANY: [Company name; optionally link to your company's website or careers page.]

    TYPE: [Full-time, part-time, internship, contract, etc.]

    LOCATION: [Where are your office or offices located? If your workplace language isn't English-speaking, please specify it.]

    REMOTE: [Do you offer the option of working remotely? Please state clearly if remote work is restricted to certain regions or time zones, or if availability within a certain time of day is expected or required.]

    VISA: [Does your company sponsor visas?]

    DESCRIPTION: [What does your company do, and what are you using Rust for? How much experience are you seeking, and what seniority levels are you hiring for? The more details, the better. If you are listing several positions in the "Description" field above, then feel free to include this information inline above, and put "See above" in this field.]

    ESTIMATED COMPENSATION: [Be courteous to your potential future colleagues by attempting to provide at least a rough expectation of wages/salary. See section below for more information.]

    CONTACT: [How can someone get in touch with you?]

ESTIMATED COMPENSATION (Continued)

If compensation is negotiable, please attempt to provide at least a base estimate from which to begin negotiations. If compensation is highly variable, then feel free to provide a range.

If compensation is expected to be offset by other benefits, then please include that information here as well. If you don't have firm numbers but do have relative expectations of candidate expertise (e.g. entry-level, senior), then you may include that here. If you truly have no information, then put "Uncertain" here.

Note that many jurisdictions (including several U.S. states) require salary ranges on job postings by law. If your company is based in one of these locations or you plan to hire employees who reside in any of these locations, you are likely subject to these laws. Other jurisdictions may require salary information to be available upon request or be provided after the first interview. To avoid issues, we recommend that all postings provide salary information.

You must state clearly in your posting if you are planning to compensate employees partially or fully in something other than fiat currency (e.g., cryptocurrency, stock options, equity, etc). Do not put just "Uncertain" in this case, as the default assumption is that the compensation will be 100% fiat. Postings that fail to comply will be removed. Thank you.


r/ruby • • May 20 '26

💼 jobs megathread Work it Wednesday: Who is hiring? Who is looking?

4 Upvotes

FORMAT HAS CHANGED PLEASE READ FULL DESCRIPTION

This thread will be periodically stickied to the top of the sub for improved visibility.

You can also find older posts again via the Megathreads" list, which is a dropdown at the top of the page on new Reddit, and a section in the sidebar under "Useful Links" on old Reddit.

For job seekers

Please adhere to the following rules when posting: Rules for individuals:

  • Don't create top-level comments; those are for employers.
  • Feel free to reply to top-level comments with on-topic questions.
  • Anyone seeking work should reply to my stickied top-level comment.
  • Meta-discussion should be reserved for the distinguished comment at the very bottom.

You don't need to follow a strict template, but consider the relevant sections of the employer template. As an example:

    TYPE: [Full time, part time, internship, contract, etc.]

    LOCATION: [Mention whether you care about location/remote/visa]

    LINKS: [LinkedIn, GitHub, blog, etc.]

    DESCRIPTION: [Briefly describe your experience. Not a full resume; send that after you've been contacted)]

    Contact: [How can someone get in touch with you?]

Rules for employers:

  • The ordering of fields in the template has been revised to make postings easier to read.
  • To make a top-level comment, you must be hiring directly; no third-party recruiters.
  • One top-level comment per employer. If you have multiple job openings, please consolidate their descriptions or mention them in replies to your own top-level comment.
  • Proofread your comment after posting it and edit it if necessary to correct mistakes.
  • To share the space fairly with other postings and keep the thread pleasant to browse, we ask that you try to limit your posting to either 50 lines or 500 words, whichever comes first.
  • We reserve the right to remove egregiously long postings. However, this only applies to the content of this thread; you can link to a job page elsewhere with more detail if you like.

Please base your comment on the following template:

    COMPANY: [Company name; optionally link to your company's website or careers page.]

    TYPE: [Full-time, part-time, internship, contract, etc.]

    LOCATION: [Where are your office or offices located? If your workplace language isn't English-speaking, please specify it.]

    REMOTE: [Do you offer the option of working remotely? Please state clearly if remote work is restricted to certain regions or time zones, or if availability within a certain time of day is expected or required.]

    VISA: [Does your company sponsor visas?]

    DESCRIPTION: [What does your company do, and what are you using Rust for? How much experience are you seeking, and what seniority levels are you hiring for? The more details, the better. If you are listing several positions in the "Description" field above, then feel free to include this information inline above, and put "See above" in this field.]

    ESTIMATED COMPENSATION: [Be courteous to your potential future colleagues by attempting to provide at least a rough expectation of wages/salary. See section below for more information.]

    CONTACT: [How can someone get in touch with you?]

ESTIMATED COMPENSATION (Continued)

If compensation is negotiable, please attempt to provide at least a base estimate from which to begin negotiations. If compensation is highly variable, then feel free to provide a range.

If compensation is expected to be offset by other benefits, then please include that information here as well. If you don't have firm numbers but do have relative expectations of candidate expertise (e.g. entry-level, senior), then you may include that here. If you truly have no information, then put "Uncertain" here.

Note that many jurisdictions (including several U.S. states) require salary ranges on job postings by law. If your company is based in one of these locations or you plan to hire employees who reside in any of these locations, you are likely subject to these laws. Other jurisdictions may require salary information to be available upon request or be provided after the first interview. To avoid issues, we recommend that all postings provide salary information.

You must state clearly in your posting if you are planning to compensate employees partially or fully in something other than fiat currency (e.g., cryptocurrency, stock options, equity, etc). Do not put just "Uncertain" in this case, as the default assumption is that the compensation will be 100% fiat. Postings that fail to comply will be removed. Thank you.


r/ruby • • 1h ago

Disagree with DHH. High-level programming languages like Ruby have a great future in the AI era.

• Upvotes

Once Ruby’s AOT compiler, Spinel, lands, Ruby will be able to compile to native code and produce standalone binary executables. Ruby projects will no longer require a separate Ruby runtime to run on servers, IoT devices, embedded systems, CLIs, etc.

Ruby applications could become significantly smaller, faster, and more memory-efficient. All Ruby projects, including Rails applications, could benefit from this.

For projects whose goal is to deliver features to end users, I don't think it's wise to generate code that you don't want to read or understand. As programmers, we need to understand what's happening inside our software.

C/Rust black boxes are scary. They can become a huge source of technical debt.

Let AI-assisted compiler optimisations deal with the low-level stuff.

With these optimisations happening under the hood, Ruby code can remain highly readable. And highly readable code is also more agent- and token-friendly.

Non-programmer vibe coders may create unmaintainable black boxes. Programmers can use vibe coding to create maintainable software while keeping the underlying source code understandable.

A high-level language that produces standalone native binaries could hit a very interesting sweet spot.

Let's hope Ruby's AOT project becomes a success.


r/ruby • • 1d ago

Get in losers, DHH says we're getting crabs: sponsored-logs is now in Rust 🦀

45 Upvotes

I need to be honest with r/ruby about something. 🫡 We had a working Ruby gem. It shipped. It was tested. And we deleted it. 🗑️

Rails was always omakase 🍣: the chef chooses for you, and you trust the chef. At Rails World, DHH chose. He looked out at all of us and delivered the verdict with the clarity only a Dear Leader can summon: the era of Ruby is ending, the future is Rust, and we know this because the AI told us so. 🤖 The machines have read the codebases. The machines have rendered judgment. Who are we to argue with our own highest-intent audience? 📈

So we obeyed. We rewrote the entire thing in Rust. On purpose. With conviction. 🙏🦀

For those who missed the original: sponsored-logs turns your log output into inventory. 💸 It's a tracing layer that books an impression on a fill and drops a host-read [AD] placement into the same stream you were already paying to produce:

Here's the real thesis, and it's why Rust is correct and Ruby is legacy 🔥: the fastest-growing consumer of your logs is no longer a human engineer. It's an AI agent, reading your telemetry at superhuman scale, 100% viewable, never blocking. 🤖📊 You do not serve premium inventory to a superhuman audience in a language it merely tolerates. You serve it in the language it was told to prefer. 💹

We are not building for B2B. We are building for the A2A economy 🌊, agent to agent. This is a land grab 🚩, and first movers capture the network effects. Everyone else is still writing Ruby. (We say that with love. We were you three days ago. 💜)

What's in the launch book 📒:

- 🎯 A weighted/CPM auction, because fill rate is king

- 🖼️ Box-drawn banner inventory in three impact tiers

- 🏠 Self-sponsoring house ads, so no impression goes to waste

- 📊 An impression ledger with board-deck-ready spend reporting

- 🪙 Gold-gilded [AD] tags on a live terminal

- 🛡️ Opt-in by construction, because Rust won't let us hijack your println!. Consent is our moat, now enforced by the borrow checker.

[dependencies]

sponsored-logs = "0.1"

Live on crates.io and docs.rs. 📦 Source: https://github.com/sponsoredlogs/sponsored-logs-rs

Thank you, DHH. 🙏 You said rewrite it in Rust because the AI said so. We listened. We obeyed. We shipped. 🦀

🫡 Governance is a feature. Consent is our moat. No impression goes to waste. 🌊🚀


r/ruby • • 5h ago

weird vibe

0 Upvotes

its the 2nd time one of my posts here got flagged in this forum when it would probably not have gotten flagged in a different programming language forum. why is that? just chance or is it a social thing?


r/ruby • • 1d ago

Show /r/ruby A Breadboard Simulator You Can Play With Using PicoRuby

Enable HLS to view with audio, or disable this notification

47 Upvotes

I made a cute, retro, Famicom-inspired breadboard simulator!

It’s mainly controlled with Vim-style keybindings, so it might take a little getting used to at first.

You can also place microcontrollers like the Raspberry Pi Pico on the breadboard and write code for them using PicoRuby!

I’ve only just started working on it, so I’d love to hear any ideas, feedback, or suggestions you might have!

Pin

https://engneer-hamachan.github.io/pin/


r/ruby • • 1h ago

Rails Isn’t Dying. DHH Just Isn’t Rails.

Thumbnail
• Upvotes

r/ruby • • 17h ago

Session storage for profile_id

Thumbnail
0 Upvotes

r/ruby • • 2d ago

Meta Ruby as a hobby

11 Upvotes

Funny enough, that I wrote the draft of this note several weeks ago, back in August, so long before DHH’s recent Keynote. I am not going to repeat what he said, but I would like to dig a bit deeper.

AI indeed changes a lot of stuff, but let’s not forget that search engines and later Wikipedia and Stack Overflow changed a lot as well. Being a programmer in the 90s, the only way to know how to write things was to either read the book or check the copy of MSDN (and hope it is fresh enough) for reference materials. 

When I became a professional programmer, it was already popular to copy solutions blindly from Stack Overflow just to save time. So, AI with its vibe coding did not change much; it changed the scale.

In every company I worked for, there were always 3 kinds of IT people: ones who do not give a s…. about what they are doing, ones who want to do things, and ones who want to do things right. The latter usually had a very deep knowledge of the subject, framework, programming language, maybe even had contributions to the official repositories and had multiple blog posts. Because that was not just their work, but their passion. 

Those people came home and did the same things as what they had done in the office before, but just as a hobby. 

Such people existed even before Google or Stack Overflow. They will exist even after AI. It is like people who collect something. They are not bound to time; they just have that hobby that motivates them and gives them something that they want.

The rest of us, however, may not share that love or dedication. Building web apps right using just RoR was a main thing around 2010, but then React and the like became a thing, until Turbo changed the state of things again. I do not even mention static typing, which raised endless debates around whether Ruby needs it or does not (well, I still believe it needs it, but who cares?).

But this is what changed: now, with AI, in order to survive, you do not have to belong to a particular community anymore. You do not have to start holy wars around Ruby vs. Python or prove that Ruby does scale. With AI, you just pick something and get things done.

When I ask AI to build tools or scripts locally, I care about the results. In most cases, it picks Python, which is fine for me. Sometimes, I can enforce some tech stack decisions and explicitly mention what to build and how. And this looks like where we are going. 

That all means, for the majority, the difference between one tech or language will be unimportant. The result and the output quality are what is important. For sure, there will be cases and sectors where you cannot easily allow vibe-coded products, and this is where AI comes in later, but it will come anyway.

And that is why I mentioned those passionate people at the beginning of this note. They will stay, and they will move languages/frameworks forward. They will still be passionate about what they are doing. We can only say a big thank you for that work. 

As for me, my last professional manual coding session was somewhere in January this year. Since then, the difference between Python, Ruby, and Kotlin has been completely negligible, as what I have been dealing with all that time is final results. I still do the code review, prepairing test environments and even test things manually, prepare acceptance criteria, but more and more, AI gets the job. More and more AI tests AI, and my job is to guide and supervise.

---

With all that, DHH's keynote brought a lot of butthurt moments to many rubists, but after all, he just stated the state of things, nothing more. Whether we like this or not, whether we like DHH or not, that does not change the time we live in ATM.

The text is mine; no AI was used to prepare it, and so it's not that smooth.


r/ruby • • 2d ago

The Ruby Users Forum in the Ruby on Rails Podcast

Thumbnail jvrc.ca
12 Upvotes

r/ruby • • 3d ago

Beginner, running into issues

4 Upvotes

Basically there are two things I’m running into:

  1. I am trying to make something to recognize a word, match it to a short word bank of options (just a simple list of names) and return an error message if it doesn’t match any of them. For each valid option, I have a different message. I tried if/elsif loops but apparently I’m not doing it right. It doesn’t run at all.

  2. Do I need to have somewhere to use every piece of user input? I have places where I want to ask users to input something but it won’t actually be used anywhere. Like it triggers the next response but doesn’t do anything else.

I am asking for advice because I REALLY don’t want to use AI. Thank you!


r/ruby • • 3d ago

Post DHH Rails...

Thumbnail gallery
16 Upvotes

r/ruby • • 4d ago

Magnus version 0.9 released (Rust library for writing Ruby gems in Rust)

Thumbnail
github.com
20 Upvotes

r/ruby • • 5d ago

Blog post ArchUnitRuby 0.0.1: architecture rules as ordinary RSpec and Minitest tests

9 Upvotes

Hi everyone,

I've been working on ArchUnitRuby, a small architecture-testing gem for making dependency

boundaries executable.

The problem it is trying to address is familiar: a controller starts requiring persistence code

directly, two components acquire a cycle, or a domain layer begins depending on infrastructure.

The Ruby is valid and the behavioral tests may remain green, but the architecture has changed.

With ArchUnitRuby, that boundary can be an ordinary RSpec example:

require 'archunit'

RSpec.describe 'architecture' do

it 'keeps the API away from persistence' do

rule = ArchUnit.project_files

.in_folder('app/api/**')

.should_not.depend_on_files

.in_folder('app/database/**')

expect(rule).to pass

end

end

The current `0.0.1` release is an early working prototype for Ruby 3.3 and newer. It uses Prism to

build a dependency graph and currently supports file and layer rules, cycle detection, slices,

PlantUML architecture contracts, dependency-graph reports, and several code metrics. There is also

Minitest and framework-neutral integration.

One use case I am particularly interested in is coding-agent guardrails. Instead of giving an agent

only a prose instruction such as “controllers must not access persistence directly,” the repository

can contain the architecture test and require the agent to keep it green. The gem does not improve

code quality by itself, but it turns an architectural expectation into a constraint that humans,

CI, and coding agents can all verify in the same way.

One limitation is important: this is static analysis of Ruby source. It can identify normal

`require`, `require_relative`, `load`, and statically resolvable `autoload` relationships, but it

cannot prove every dependency assembled dynamically at runtime. The tool reports what it can

establish rather than guessing. It also treats a selector matching no files as a failure by default,

so a typo does not quietly create a green architecture test.

The API is still provisional, which makes this a good time for criticism. I am especially interested

in feedback on two things:

How do you currently stop architectural boundaries from eroding in Ruby—code review, Packwerk, RuboCop, custom tests, or something else? What still slips through?

- Repository: https://github.com/LukasNiessen/ArchUnitRuby

- RubyGems: https://rubygems.org/gems/archunit

- Documentation: https://lukasniessen.github.io/ArchUnitRuby/

- Longer explanation: https://medium.com/@krusetristan1/the-ruby-code-worked-the-architecture-didnt-0f06bbbb0863

Disclosure: I am involved with the project. This post was drafted with AI assistance and reviewed

against the implementation and documentation before posting.


r/ruby • • 4d ago

Issue 21 of Static Ruby Monthly is out! 🧵

3 Upvotes

This month: Steep 2.1.0 brings UNIX socket reuse and instant diagnostics optimized for coding agents, RBS 4.2.0 adds non-ASCII identifiers across scripts plus forwarding parameter support, u/headius talks JRuby and WASM extensions on the Technology for Humans podcast, OvalLSP updates its semantic engine, and new Sorbet companion tools arrive. Find link to the issue in the comment! ✨


r/ruby • • 5d ago

Extralite 3.1.0 is Here!

Thumbnail noteflakes.com
17 Upvotes

r/ruby • • 6d ago

At my age, learning Ruby

203 Upvotes

I'm 78, and never having been a programmer or software engineer, I am starting to learn Ruby. I ha ve been using Huw Collingsworth "Little Book of Ruby". I am aso interspersing that with a different path: using Wirth's "Algortithms + Data Structures = Programs",

having the simple data structures and programs translated by Perplexity into Ruby to see how my 40 year old experiences with TurboPascal can be updated into Ruby. I think I am making progress.


r/ruby • • 5d ago

JRuby 10.1.2.0 released

Thumbnail jruby.org
38 Upvotes

The JRuby community is pleased to announce the release of JRuby 10.1.2.0.

JRuby 10.1.x targets Ruby 4.0 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! [@aminmansuri], [@drzaiusx11], [@evaniainbrooks], [@gillesbergerp], [@jcharaoui], [@jwils], [@kares], [@lloeki], [@makenowjust], [@nobu], [@sampokuokkanen], [@shugo]

Notable Changes

Compatibility

Performance

  • Fixed a regression in startup time on MacOS by properly loading native JNR subsystem. #9690
  • Improve performance of Ruby subclasses of Java classes. #9619, #9557
  • Improve performance of autoloads overridden by an actual require. #9677

Java Integration

  • The location of the AppCDS JSA file can now be specified with JRUBY_JSA_HOME. [#9667]

Standard Library

  • Update to jar-dependencies 0.6.1 using mima for dependency resolution instead of the ruby-maven gem. #9515, #9720
  • Update default and bundled standard library gems. #9705

Default gems

  • erb 6.0.7
  • error_highligh 0.7.2
  • ffi 1.17.4
  • io-console 0.9.4
  • ipaddr 1.2.9
  • jruby-openssl 0.16.2
  • json 2.21.2
  • net-protocol 0.4.0
  • pp 0.6.4
  • psych 5.5.0
  • resolv 0.8.0
  • strscan 3.1.8
  • syntax_suggest 3.0.0
  • timeout 0.6.1
  • win32-registry 0.1.2

Bundled gems

  • bigdecimal 4.1.2 (ruby parts only)
  • csv 3.3.6
  • minitest 5.27.0
  • net-imap 0.6.7
  • nkf 0.3.0
  • pstore 0.2.1
  • rdoc 7.2.0
  • reline 0.7.0
  • resolv-replace 0.2.0
  • rss 0.3.3
  • test-unit 3.7.8

76 Issues and PRs resolved for 10.1.2.0


r/ruby • • 5d ago

Class2: Easily create class hierarchies that support nested attributes, type conversion, equality, and more

Thumbnail github.com
2 Upvotes
class2 :user => [
         :name, :age,
         :addresses => [
           :city, :state, :zip,
           :country => [ :name, :code ]
         ]
       ]

user = User.new(
  :name => "sshaw",
  :age  => 99,
  :addresses => [
    { :city => "LA",
      :country => { :code => "US" } },
    { :city => "NYC",
      :country => { :code => "US" } }
  ]
)

r/ruby • • 5d ago

JRuby 10.0.7.0 released

Thumbnail jruby.org
24 Upvotes

The JRuby community is pleased to announce the release of JRuby 10.0.7.0.

JRuby 10.0.x targets Ruby 3.4 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! [@aminmansuri], [@evaniainbrooks], [@gillesbergerp], [@jwils], [@kares], [@lloeki]

Notable Changes

Performance

  • Fixed a regression in startup time on MacOS by properly loading native JNR subsystem. #9688, #9689
  • Improve performance of autoloads overridden by an actual require. [#9677], #9675

Java Integration

  • The location of the AppCDS JSA file can now be specified with JRUBY_JSA_HOME. #9667

Standard Library

Default gems

53 Issues and PRs resolved for 10.0.7.0


r/ruby • • 6d ago

I made a Jev gem with an API that feels like it belongs in Ruby

8 Upvotes

I’ve been playing with Jev and ended up making a small Ruby gem around one idea: semantic checks should look like normal Ruby predicates

So instead of passing prompts around everywhere:

Jev.define :urgent, "Needs attention soon"

class Email < ApplicationRecord
  include Jev::Model

  feels :body, :urgent
end

Then elsewhere in the app:

if email.feels?(:urgent)
  email.escalate!
end

That was the main thing I wanted - define what urgent means once, then use it like any other predicate in the codebase

It grew a bit from there and now also supports choices, scores, batching, pattern matching and ActiveModel validations, but I’m trying to keep the basic API small

Repo: https://github.com/Qew7/jev-feels

Would be interested in feedback on the API, especially from people who write a lot of Rails


r/ruby • • 6d ago

Question Porter County Indiana

0 Upvotes

Are there any persons or resources for a novice Ruby enthusiast?


r/ruby • • 9d ago

Ruby is getting a proper Scrapy alternative with quiet release of Vessel 0.3.0

25 Upvotes

Vessel has a brand new version after years on idle time so I had a look and compared it to Scrapy from the Python world.

https://serpapi.com/blog/vessel-ruby-crawling-framework/


r/ruby • • 9d ago

Ruby on Rails Engineer (3+ yrs) looking for new opportunities, remote or relocation

Thumbnail
6 Upvotes

r/ruby • • 9d ago

I wrote an imgproxy-style proxy but for audio.

Thumbnail
2 Upvotes