r/ruby • u/ioquatix • 1h ago
r/ruby • u/AutoModerator • 20d ago
š¼ jobs megathread Work it Wednesday: Who is hiring? Who is looking?
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 • u/AutoModerator • May 20 '26
š¼ jobs megathread Work it Wednesday: Who is hiring? Who is looking?
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 • u/adamlogic • 8h ago
Jon & I debate how our opinions have changed on whether to use Rails for marketing sites
judoscale.comr/ruby • u/javier_cervantes • 4h ago
Ruby Users Forum - Monthly Update - August 2026
r/ruby • u/Lautaengalia • 23h ago
acts_as_calculator - An open-source mountable engine for complex formula calculation built upon Dentaku, with full versioning and auditing support
in RubyGems
I built this gem based on my experience of implementing very similar (perhaps even identical) services in extremely different business domains. For example, I currently work in a Payroll SaaS, which calculates payslips using "concepts" (which are basically calculated formulas at a certain point in time, for example, a concept may be "health insurance discount", "performance bonus"). I supported a system like that when I worked at a delivery app, for supporting dynamic checkouts. I imagine you can use the same to calculate the premiums in a car insurance calculation, and a plethora of other domains.
The idea is simple; you mix the gem into your models
class Employee < ApplicationRecord
include ActsAsCalculator::Calculable
end
Then, you have two classes, ActsAsCalculator::FormulaĀ +Ā ActsAsCalculator::FormulaVersion , so each formula version is accesible from a slice window (effective_from | effective_to),
formula = ActsAsCalculator::Formula.create!(key: "monthly_taxes", scope: "payroll")
puts employee.salary
5000.0
ActsAsCalculator::PublishFormulaVersion.(
formula: formula,
expression: "salary * 0.22",
effective_from: Date.new(2026, 1, 1),
effective_to: Date.new(2026, 6, 30),
variables: [{ name: "salary", source_type: "attribute" }]
)
You can now use these formulas to discount a tax from the employee salary. Important to note, formulas are parsed and calculated through Dentaku, which long ago already solved safe logic eval.
employee = Employee.last
result = employee.calculate(
:monthly_taxes,
as_of: Date.new(2026, 3, 15)
)
puts result.inspect
#<data ActsAsCalculator::Result value=0.11e4, breakdown={:expression=>"salary * 0.22", :inputs=>{"salary"=>0.5e4}, :value=>0.11e4}, formula_version=#<ActsAsCalculator::FormulaVersion id: 17, formula_id: 10, version_number: 6, expression: "salary * 0.22", effective_from: "2026-01-01", effective_to: "2026-06-30", status: "active", change_note: nil, created_at: "2026-09-01 01:26:15.204120000 +0000", updated_at: "2026-09-01 01:26:15.204120000 +0000">, as_of=Sun, 15 Mar 2026>
puts result.value
1100.0
(ActsAsCalculator::Result is a value object)
Then, a key feature, you can also template the result using sandboxed Liquid (this templating is functional but not yet feature-complete, I have a small roadmap still planned for this)
template = ActsAsCalculator::Template.create!(
key: "payslip", scope: "payroll", format: "text",
body: "Gross: {{ result.value | currency }}\n }}"
)
employee.render(:payslip, calculate: :monthly_taxes, as_of: Date.today)
=> "Gross: 1,100.00 "
The engine also has support (experimental for now) for JSON imports, and exports are still on the roadmap.
The engine also supports exposing HTTP endpoints for managing formulas/templates, but this is disabled by default ā you opt in via a config flag before mounting it.ActsAsCalculator.configure { |c| c.enable_api = true }
The gem has also a supporting frontend engine, acts_as_calculator_editor, built upon Hotwire and Lexxy.
A couple of notes:
the base gem acts_as_calculator is human-made, written from my experience of building from scratch an identical but way-less generic production-used implementation of this, so most of the architecture is already proven at scale. I used AI to add a couple helper methods, to do code review, to complete documentation and to write several unit tests. The supporting gem acts_as_calculator_editor was fully built with an AI agentic workflow.
I haven't yet published the 1.0.0 version since I still have a key feature to implement (chaineable formulas, so a formula is able to call other formulas directly).
The gem also exposes a lot of apportionment, distribution and allocation helper strategies (:proportional, :equal, :largest_remainder), which are one of the main motivations I had for creating this gem. In the v1 version, I will add comprehensive api docs for them.
The gem is also intended to be used with ActiveRecord, but should be framework agnostic for most things.
If you have any feedback to give about the gem and the idea, please leave a comment. This is my first experience building something for the OSS space that has given me so much, so feel free to contribute and criticize.
r/ruby • u/irosh24a • 10h ago
How to cleanly stream LLM tokens in Rails 7/8 without complex JS frameworks
r/ruby • u/jp_camara • 1d ago
SolidQueue Batches: evolution and architecture
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 š®āšØ
r/ruby • u/andrewmcodes • 1d ago
Podcast šļø Remote Ruby ā MCP Implementations and Rails World Preparations
r/ruby • u/SetExcellent758 • 2d ago
Is it something that would be welcomed to create 1,200 PRs in 4 days across open-source (OSS) repositories using AI?
I'm a Ruby engineer in Japan, and I recently started participating in open source (OSS) activities.
With the goal of understanding what perspectives other engineers have, I turned on notifications for several GitHub repositories so I could receive contributions in real time.
Then I got notifications that one particular individual had created nearly 100 PRs in an hour across several repositories.
When I checked, all the commit messages were written using the exact same template, and the wording was extremely mechanical.
They were also contributing to multiple repositories in different languages at the same time, so I believe this was most likely done using AI combined with automation tools.
What I want to know is whether this kind of behavior is welcomed within the OSS community.
This is just my personal opinion, but I see the OSS community as a very fragile kind of organization, one that is held together by human elements ā the goodwill, trust, and motivation of its participants.
It feels to me like this kind of behavior could damage the relationship between the maintainers who manage OSS projects and the members who contribute to them, and that makes me feel quite uneasy.
r/ruby • u/AndyCodeMaster • 1d ago
Glimmer DSL Web Release Version 0.10.2 & 0.10.3 Append & Prepend Mutations
r/ruby • u/RichStoneIO • 2d ago
Weekly product builders group goes in its 6th edition with 2 spots left
The Rails.Builders are a community of product creators who get together in live sessions. We share what we are working on, discuss each other's business challenges, and see how everyone approaches building with AI. It's the 6th cohort since 2025, and 20+ engineers have joined so far, with common reports of improved results, accountability, and networking.
The new āContinuous r-AI-ls.Buildersā Edition starts with weekly sessions on Thursday, the 3rd of September at 17:30 CEST. We've even built an open-source (duh, Rails) app to manage attendance, the rhythm of live sessions, transcripts, communications, and the waitlist. That app will also show you the Builders who have signed up so far. I'm really excited that the group has shaped up like this.
All your FAQs and the sign-up are here: https://rails.builders
If you have more questions or doubts, you can send me a DM here. Happy building!
r/ruby • u/Enough_Charge2845 • 2d ago
Software engineer resume keywords, measured across 1,360 job postings
Keyword frequencies taken fromĀ https://www.zoevera.com/resume/software-engineer-job-description-keywords
Most software engineer keyword lists are assembled from experience or guesswork. This one is a count: every open posting from 72 companies' public Greenhouse job boards, filtered to the 1,360 whose title contains "software engineer", then checked for how many mention each of 45 terms at least once.
The percentage beside each term is the share of those 1,360 postings that mention it.
PRACTICES AND WAYS OF WORKING
Scalability 52.9% - Mentoring 47.4% - Distributed systems 47% - System design / architecture 46.7% - Cross-functional 31% - Code review 27.2% - On-call 20.7% - CI/CD 19.5% - Agile / Scrum 9.3% - Unit / automated testing 6.5%
This is the result I did not expect. The four most common terms in the whole study are not technologies. Scalability, mentoring, distributed systems and system design all appear in more postings than Python does. Nearly half of these postings mention mentoring, and almost no engineer resume I have seen makes a claim about it.
Agile and Scrum at 9.3% is the other surprise, given how much resume advice insists on them.
LANGUAGES
Python 44.8% - Java 35.4% - Go 31.1% - TypeScript 19.8% - C++ 17.4% - SQL 17.3% - JavaScript 13.2% - Kotlin 12% - Rust 9.9% - Scala 8.6% - Ruby 8.5% - C# 5.3% - Swift 2.3%
TypeScript at 19.8% against JavaScript at 13.2% is a real ordering, not noise. The gap is wider than both margins of error combined.
CLOUD AND INFRASTRUCTURE
AWS 41.3% - Kubernetes 30.9% - GCP 19.3% - Azure 17.6% - Terraform 13.2% - Docker 12.6% - Microservices 7.1% - Linux 4.8%
AWS appears in more than twice as many postings as GCP and Azure individually. Kubernetes at 30.9% outranks every language except Python, Java and Go.
FRONTEND AND APIs
React 21.1% - REST / RESTful 9.6% - GraphQL 6% - Node.js 5.5% - Vue 3.2% - Angular 2.9%
Frontend framework lists usually present React, Vue and Angular as three comparable options. In this corpus React appears in roughly seven times as many postings as Vue and Angular combined.
DATA STORES AND PIPELINES
PostgreSQL 14.3% - Kafka 13.1% - MySQL 11.3% - Spark 9.8% - MongoDB 7.4% - Redis 7.4% - Elasticsearch 6.4% - Snowflake 5.6%
WHAT THIS SAMPLE IS NOT
These are 72 technology companies hiring through Greenhouse. Agencies, consultancies, banks, defense contractors and the public sector are absent, and their vocabulary is different - COBOL, .NET, SAP, clearance requirements and named compliance regimes barely register here and may dominate elsewhere.
The title filter is "software engineer" only. Postings titled backend engineer, frontend engineer, full stack developer, SRE or platform engineer were not counted, so this describes the generalist title rather than the whole profession.
Absence in this list is not evidence of absence in the market. Only 45 terms were counted. Next.js, Svelte, Django, Spring Boot, gRPC, Jest, Playwright, Datadog, OpenTelemetry and OAuth were never checked, so nothing here says anything about them either way.
It is a snapshot of open roles on one date rather than a trend, and the corpus is US-skewed.
One thing this sample size does buy: at n=1,360 the margins of error are roughly plus or minus 2 to 3 points, so most of the ordering above is real. Gaps under about 5 points are still worth treating as ties - React at 21.1% and TypeScript at 19.8% is not a meaningful difference.
METHOD
Greenhouse's public job board API, the endpoint companies expose so their listings can be embedded on their own sites. No scraping. Counts are document frequency: a posting saying "Python" nine times counts once. Deduped on company, title and content length, because one role posted to five offices returns five near-identical records. Median posting length is 896 words.
Ambiguous words are matched case-sensitively with exclusions, which matters more here than you would think. A bare word-boundary match on "Go" also catches "go to market" and "go above and beyond", which inflated Go by about two points before it was fixed. React, Spark, Swift and Rust all have the same problem.
Full table with all 45 terms and confidence intervals:
https://www.zoevera.com/resume/software-engineer-job-description-keywords
The wider keyword list this was checked against, organized by language, framework and platform:
https://www.zoevera.com/resume/ats-resume-tips-software-engineer
Happy to run the numbers on any terms missing from the list if people name them in the comments.
r/ruby • u/RichStoneIO • 2d ago
Weekly product builders group goes in its 6th edition with 2 spots left
r/ruby • u/Own_Service_6040 • 4d ago
Question Should I start learning from ruby master doc or ruby 4.0 doc?
docs.ruby-lang.org/en/4.0: Documentation for Ruby 4.0.
docs.ruby-lang.org/en/master: Documentation for Rubyās master branch.
I found these 2 options but not sure which I should choose?
r/ruby • u/unselective-amnesia • 4d ago
Question Centralized location for shared Gemfile?
I'm using ruby 3.3.8 under linux.
There's more than one user on this machine who does ruby development. When I, running as the root user, want to add new gem references to Gemfile on my system, I want to add these gem references into one, single, shared, centralized Gemfile that all users will automatically see when running and developing ruby code.
Where should this shared, centralized Gemfile be located?
When any user runs "gem environment", the following item is always listed among that command's output for every user who runs that command:
- INSTALLATION DIRECTORY: /var/lib/gems/3.3.0
Does this mean that I can put a Gemfile into the /var/lib/gems/3.3.0 directory, and that then, this Gemfile will be recognized and used by all users who run and develop ruby code?
Or is there perhaps a different location in which to locate such a shared, centralized Gemfile that will always be the one that's used by each ruby user?
Thank you very much.
r/ruby • u/bloomingbazooka • 4d ago
I vibe-coded a native-ish Sudoku game for the reMarkable 2
r/ruby • u/unselective-amnesia • 6d ago
Question Getting DateTime parts as an array?
I know in ruby that DateTime.new(2001, 2, 3, 4, 5, 6) will return the following object:
#<DateTime: 2001-02-03T04:05:06+00:00 ...>
But if the current date and time are 2001-02-03T04:05:06 and I do the following ...
now = DateTime.now
... is there a single function on the "now" variable which will return this array? ...
[2001, 2, 3, 4, 5, 6]
I know that I can do this:
[now.year, now.month, now.day, now.hour, now.minute, now.second ]
... but I'm wondering: might there be a single function as simple as ...
now.the_function
... which would return that same array?
And yes, of course I know that I could easily write such a function, but I'd like to know whether or not something like this already exists in ruby.
r/ruby • u/davidslv • 6d ago
Airtable's official Ruby gem hasn't shipped code since 2016. I rebuilt it, and I'm looking for someone to take it over.
Airtable's official Ruby gem hasn't had a code commit since November 2016. gem install airtable still gives you 0.0.9, released October 2016. Its README tells you to authenticate with an API key, which Airtable switched off in February 2024.
I asked Airtable about it twice. Support confirmed in writing that it is "not actively maintained" and pointed me at airrecord. Airrecord is good, but it's a different shape, so switching means a rewrite that ends with the features you already had.
So I forked the official gem instead. Same namespace, same method names, drop-in. Underneath: zero runtime dependencies, persistent connections, client-side rate limiting, retries with backoff, batch operations with partial-failure reporting, and upsert.
It was AI-assisted, Airtable's API docs are extracted into the repo and coded against. 119 tests, plus weekly canaries that diff Airtable's published contract and run a real round-trip against a throwaway base.
It's deliberately not on RubyGems. I'm not after users, I'm after people who still need it and can be maintainers.
Repo: github.com/Davidslv/airtable-rb
Write-up: https://davidslv.uk/2026/08/26/airtable-ruby-gem-unmaintained.html
r/ruby • u/hitthatliq • 6d ago
Question Learning AI engineering with Ruby
I'm learning more about AI engineering, specifically the application/production side rather than ML research or training models.
The areas I'm interested in are things like:
- RAG, embeddings, vector search and reranking
- tool/function calling
- agentic workflows and orchestration
- MCP clients/servers
- structured outputs
- evals and observability
- persistent agent state / human approval
- building production AI features into normal web applications
I originally learned to code with Ruby, but since then all my jobs have been Python or TypeScript based, and I really miss working with Ruby.
I'm curious what Ruby libraries/tools people are using for RAG, agents, MCP, evals, tracing, etc. Are there good Ruby alternatives to frameworks like LangChain? What does your stack look like?
And if you were learning this stuff today, would you recommend doing it in Ruby, or sticking with Python because that's where most of the ecosystem and learning material is?
I'm not trying to avoid Python entirely. I'm more curious about how viable Ruby is for the application/agentic side of AI development.
Side note: I realise some of these areas aren't particularly language-specific. For example, with RAG a lot of the retrieval/storage work may ultimately be handled by pgvector, a vector database, or another service.
r/ruby • u/Fit_Ice_7268 • 7d ago
Question Database project
Hey, guys.
So, I'm currently studying data science and I'm about to start a database project(we're basically doing a database for a bakery)this semester. The project will include order forecasting, inventory loss tracking, customer notifications, etc. Anyways I already code in Python but I've been taking a look on ruby and wonder if it'd be a good idea to include it in our project and how.... any ideas??
thanks!
r/ruby • u/6stringfanatic • 7d ago
The Primitive Urge to Be of Value: composed_of in Rails
Wrote a piece about spotting a missing value object and refactoring towards one, adding sorting and comparison.
https://pushfromkush.com/publications/primitive-urge-to-be-of-value-composed_of-in-rails
Feedback welcome.
r/ruby • u/ryan7ait • 7d ago
Question From laravel to ruby on rails
Laravel dev here, recently moved to Rails. I'm loving it, but debugging in production has been a headache.
Our setup runs on Docker Swarm, and finding bugs means manually digging through Rails, Sidekiq, and Docker service logs. many of which don't even have timestamps.
In Laravel, I used a log viewer UI to instantly jump to the exact second an error happened.
Is there a standard Rails gem for a log viewer UI, or do most teams just ship logs to something like Sentry or Grafana/Loki? How do you manage production errors?
Thanks!