{"id":3528966,"url":"https://alion.io/job/oyster-software-engineer-ruby-on-rails-apis","title":"Software Engineer (Ruby on Rails, APIs)","company":{"id":2454,"name":"Oyster","domain":"oysterhr.com","url":"https://alion.io/company/oyster","size_band":"51-200","is_staffing_agency":false,"employer_type":"staffing","is_intermediary":false,"listed_via":null,"ats_vendor":"Ashby","truth_index":{"grade":"B","score":70,"open_postings":5,"ghost_share":0.2,"stale_share":0.6,"repost_share":0.2,"time_to_fill_p50_days":32,"computed_at":"2026-11-04T06:34:25Z"}},"role":"Backend","role_family":"Backend","seniority":"middle","employment_type":"full_time","work_mode":"remote","remote_scope":"stated_regions","remote_scope_basis":"board_field","remote_working_hours":null,"hiring_geo_confidence":"inferred","locations":[],"countries":[],"hiring_countries":["DE","FR","AE","GB","AT","BE","BA","BG","HR","CY","CZ","DK","FI","HU","IE","IL","IT","KE","ME","NL","NG","NO","PL","RO","SA","RS","ZA","ES","SE","CH","TR","UA","AL","DZ","AD","AO","BH","BJ","BW","BF"],"hiring_countries_total":116,"salary":null,"salary_estimate":null,"experience_years_min":3,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"CI/CD","optional":false},{"name":"Git","optional":false},{"name":"Model Context Protocol","optional":false},{"name":"Ruby","optional":false},{"name":"Ruby on Rails","optional":false},{"name":"TypeScript","optional":true}],"status":"live","first_seen_at":"2026-10-30T11:31:47Z","employer_posted_date":"2026-10-30","last_verified_at":"2026-11-04T17:10:34Z","board_verified":true,"closed_at":null,"days_open":5,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":5},"description":"One platform, a whole world of opportunity\nThe best jobs have always clustered in a handful of the world's wealthiest cities. But talent is everywhere. Oyster set out to close that gap - building a global employment platform that lets companies hire, pay, and care for brilliant people anywhere.\nWe're proof that a high-performing culture doesn't need an office. Distributed across 60+ countries since 2020, we've built something the industry keeps noticing:\nRanked #10 of 250 on TIME and Statista's 2026 list of America's Top WorkTech Companies\n\nNamed one of America's Greatest Startup Workplaces 2026 by Newsweek\n\nA G2 Spring 2026 Leader across Employer of Record, Global Employment, Multi-country Payroll, and HR Compliance\n\nThe only B Corp-certified global employment platform ~ independently verified since 2023\n\nTwo of those rankings measured our business impact from the outside. One measured how our own people feel about working here. They landed in the same place ~ because at Oyster, culture and performance aren't separate conversations. They're the same one.\nAnd we're just getting started. If you want to do the best work of your career alongside people who care as much as you do, we'd love for you to apply.\nThe Opportunity\nOur team owns Oyster’s APIs, connected architecture (including Model Context Protocol services) and identity and access management systems. In this role you’ll build and maintain the Ruby on Rails APIs that help our internal teams get work done more effectively.\nYou’ll partner directly with colleagues across the business to understand how they work, find where an API can remove manual effort, clarify requirements and deliver real productivity improvements. You’ll take well-scoped projects from design through release, with the team’s support on design choices and on unfamiliar or higher-risk areas. Along the way, you’ll grow your ownership of projects within the team.\nWhat You’ll Build & Own\nInternal API use cases, from discovery to delivery. Work with internal stakeholders to understand their workflow, define acceptance criteria and break the work into manageable increments.\n\nProduction Rails APIs. Design, implement, test, review and release changes within established architecture and security practices, raising dependencies and risks early.\n\nSecure, careful code. Handle authentication, authorization and sensitive data carefully, and seek review for unfamiliar access-control or integration changes.\n\nReliable, maintainable systems. Troubleshoot defects and API failures using evidence, add regression coverage and contribute to maintainability improvements.\n\nMeasurable impact. Evaluate delivered workflows with stakeholders to confirm adoption and productivity gains.\n\nA strong team culture. Contribute to domain modeling and design discussions with Product and senior engineers. Give constructive code reviews, document API behavior and decisions for async collaboration, support less-experienced colleagues and help simplify unnecessary process.\n\nWhat You’ll Bring\nEssential\n3+ years of professional software development experience with a focus on Ruby.\n\nProven experience developing and maintaining Ruby on Rails applications. You can explain your API implementation choices and use Git effectively.\n\nThe ability to refine straightforward stakeholder requirements into well-scoped work, and to ask for support when risk or dependencies exceed the agreed scope.\n\nStrong code quality habits: readable code, automated tests (TDD where appropriate), continuous integration, meaningful reviews and secure coding awareness.\n\nFluency with AI-assisted development, including independent verification of generated code, tests and assumptions.\n\nClear communication and effective collaboration in an agile, remote team. You adapt as priorities change and document decisions so others can work asynchronously.\n\nNice to have\nFront-end experience with React and TypeScript.\n\nExposure to internal developer-facing APIs, identity and access management, or Model Context Protocol services. This is not required.\n\nWhy Join Us\nDirect, visible impact. Your users are your colleagues, so you’ll see how your work changes their day.\n\nGrowing ownership with real support. You’ll own scoped projects end to end, with experienced teammates backing you on the unfamiliar parts.\n\nA meaningful technical domain. You’ll work across APIs, connected architecture and access management, areas where careful engineering really matters.\n\nThoughtful remote culture. You’ll join a globally inclusive, async-friendly team that values documentation and sustainable working boundaries.\n\nHow we work together at Oyster\nOur values guide the work we do, the decisions we make, and the culture that makes Oyster what it is. We make it happen-progress is our default setting. We drive change, we build and give trust, and we move as one united team.\nOur mission is to create a more equal world of work: helping companies everywhere hire, pay, and care for talent anywhere. Everything we do ladders up to our mission. We embrace asynchronous, collaborative work and share how we operate in the Oyster Public HQ so other global teams can learn from us.\nHow YOU work\nWith diverse locations, cultures, and needs, we created How YOU Work; a program supporting your whole human experience at Oyster:\nWork from anywhere: Oyster has no borders or HQ. As long as work is timely, your team is supported, and you're authorized to work where you live, you can work from anywhere.\n\nPaid time off: Enjoy 40 days off per year (including holidays and vacation), or more if required by your country.\n\nMental health support: Access Plumm, our mental well-being service.\n\nWellbeing allowance: Each month, receive a wellbeing allowance in your ThanksBen wallet to spend on a wide range of options.\n\nFlexible parental leave: All new parents are eligible for at least three months’ paid leave, with job protection for up to 12 months or as required locally.\n\nWFH stipend: Receive a stipend for your laptop and home office equipment to get you set up quickly.\n\nThe best jobs should be available to everyone\nWe embrace diverse perspectives and intentionally build our product and company with an inclusive, global mindset. We encourage you to apply, even if you don’t meet every criterion, and are committed to a trust-based, thriving environment.\nOyster is committed to ensuring equal opportunity of employment for qualified persons with disabilities and actively fosters an inclusive work environment. If you require reasonable accommodations throughout the recruiting process, please email  with the subject line: Interview Accommodations.\nOur available positions are on our careers page. Our team will only contact you from an @oysterhr.com email, and we will never ask for money as part of an interview process or job offer. If you receive a suspicious email about Oyster jobs or are directed to a site other than www.oysterhr.com/careers, please report it via our Compliance and Ethics Helpline.","description_format":"text","description_chars":7013,"description_truncated":false,"requirements":{"experience_years_min":3,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[]},"benefits":["Home office","Parental leave"],"hiring_locations":[{"name":"Germany","iso":"DE","kind":"region"},{"name":"France","iso":"FR","kind":"region"},{"name":"United Arab Emirates","iso":"AE","kind":"region"},{"name":"United Kingdom","iso":"GB","kind":"region"},{"name":"Austria","iso":"AT","kind":"region"},{"name":"Belgium","iso":"BE","kind":"region"},{"name":"Bosnia and Herzegovina","iso":"BA","kind":"region"},{"name":"Bulgaria","iso":"BG","kind":"region"},{"name":"Croatia","iso":"HR","kind":"region"},{"name":"Cyprus","iso":"CY","kind":"region"},{"name":"Czech Republic","iso":"CZ","kind":"region"},{"name":"Denmark","iso":"DK","kind":"region"},{"name":"Finland","iso":"FI","kind":"region"},{"name":"Hungary","iso":"HU","kind":"region"},{"name":"Ireland","iso":"IE","kind":"region"},{"name":"Israel","iso":"IL","kind":"region"},{"name":"Italy","iso":"IT","kind":"region"},{"name":"Kenya","iso":"KE","kind":"region"},{"name":"Montenegro","iso":"ME","kind":"region"},{"name":"Netherlands","iso":"NL","kind":"region"},{"name":"Nigeria","iso":"NG","kind":"region"},{"name":"Norway","iso":"NO","kind":"region"},{"name":"Poland","iso":"PL","kind":"region"},{"name":"Romania","iso":"RO","kind":"region"},{"name":"Saudi Arabia","iso":"SA","kind":"region"},{"name":"Serbia","iso":"RS","kind":"region"},{"name":"South Africa","iso":"ZA","kind":"region"},{"name":"Spain","iso":"ES","kind":"region"},{"name":"Sweden","iso":"SE","kind":"region"},{"name":"Switzerland","iso":"CH","kind":"region"},{"name":"Turkey","iso":"TR","kind":"region"},{"name":"Ukraine","iso":"UA","kind":"region"},{"name":"Albania","iso":"AL","kind":"region"},{"name":"Algeria","iso":"DZ","kind":"region"},{"name":"Andorra","iso":"AD","kind":"region"},{"name":"Angola","iso":"AO","kind":"region"},{"name":"Bahrain","iso":"BH","kind":"region"},{"name":"Benin","iso":"BJ","kind":"region"},{"name":"Botswana","iso":"BW","kind":"region"},{"name":"Burkina Faso","iso":"BF","kind":"region"},{"name":"Burundi","iso":"BI","kind":"region"},{"name":"Cameroon","iso":"CM","kind":"region"},{"name":"Cape Verde","iso":"CV","kind":"region"},{"name":"Chad","iso":"TD","kind":"region"},{"name":"Central African Republic","iso":"CF","kind":"region"},{"name":"Comoros","iso":"KM","kind":"region"},{"name":"Democratic Republic of the Congo","iso":"CD","kind":"region"},{"name":"Djibouti","iso":"DJ","kind":"region"},{"name":"Equatorial Guinea","iso":"GQ","kind":"region"},{"name":"Eritrea","iso":"ER","kind":"region"},{"name":"Estonia","iso":"EE","kind":"region"},{"name":"Eswatini","iso":"SZ","kind":"region"},{"name":"Ethiopia","iso":"ET","kind":"region"},{"name":"Faroe Islands","iso":"FO","kind":"region"},{"name":"Gabon","iso":"GA","kind":"region"},{"name":"Gambia","iso":"GM","kind":"region"},{"name":"Georgia","iso":"GE","kind":"region"},{"name":"Ghana","iso":"GH","kind":"region"},{"name":"Greece","iso":"GR","kind":"region"},{"name":"Guinea","iso":"GN","kind":"region"},{"name":"Guinea-Bissau","iso":"GW","kind":"region"},{"name":"Iceland","iso":"IS","kind":"region"},{"name":"Iraq","iso":"IQ","kind":"region"},{"name":"Isle of Man","iso":"IM","kind":"region"},{"name":"Ivory Coast","iso":"CI","kind":"region"},{"name":"Jordan","iso":"JO","kind":"region"},{"name":"Kosovo","iso":"XK","kind":"region"},{"name":"Kuwait","iso":"KW","kind":"region"},{"name":"Latvia","iso":"LV","kind":"region"},{"name":"Lebanon","iso":"LB","kind":"region"},{"name":"Lesotho","iso":"LS","kind":"region"},{"name":"Liberia","iso":"LR","kind":"region"},{"name":"Liechtenstein","iso":"LI","kind":"region"},{"name":"Lithuania","iso":"LT","kind":"region"},{"name":"Luxembourg","iso":"LU","kind":"region"},{"name":"Madagascar","iso":"MG","kind":"region"},{"name":"Malawi","iso":"MW","kind":"region"},{"name":"Mali","iso":"ML","kind":"region"},{"name":"Malta","iso":"MT","kind":"region"},{"name":"Mauritania","iso":"MR","kind":"region"},{"name":"Mauritius","iso":"MU","kind":"region"},{"name":"Mayotte","iso":"YT","kind":"region"},{"name":"Moldova","iso":"MD","kind":"region"},{"name":"Monaco","iso":"MC","kind":"region"},{"name":"Morocco","iso":"MA","kind":"region"},{"name":"Mozambique","iso":"MZ","kind":"region"},{"name":"Namibia","iso":"NA","kind":"region"},{"name":"Niger","iso":"NE","kind":"region"},{"name":"North Macedonia","iso":"MK","kind":"region"},{"name":"Oman","iso":"OM","kind":"region"},{"name":"Palestine","iso":"PS","kind":"region"},{"name":"Portugal","iso":"PT","kind":"region"},{"name":"Qatar","iso":"QA","kind":"region"},{"name":"Republic of the Congo","iso":"CG","kind":"region"},{"name":"Réunion","iso":"RE","kind":"region"},{"name":"Rwanda","iso":"RW","kind":"region"},{"name":"Saint Helena and Ascension","iso":"SH","kind":"region"},{"name":"San Marino","iso":"SM","kind":"region"},{"name":"São Tomé and Príncipe","iso":"ST","kind":"region"},{"name":"Senegal","iso":"SN","kind":"region"},{"name":"Seychelles","iso":"SC","kind":"region"},{"name":"Sierra Leone","iso":"SL","kind":"region"},{"name":"Slovakia","iso":"SK","kind":"region"},{"name":"Slovenia","iso":"SI","kind":"region"},{"name":"Somalia","iso":"SO","kind":"region"},{"name":"South Sudan","iso":"SS","kind":"region"},{"name":"Svalbard","iso":"SJ","kind":"region"},{"name":"Tanzania","iso":"TZ","kind":"region"},{"name":"Togo","iso":"TG","kind":"region"},{"name":"Tunisia","iso":"TN","kind":"region"},{"name":"Uganda","iso":"UG","kind":"region"},{"name":"Western Sahara","iso":"EH","kind":"region"},{"name":"Zambia","iso":"ZM","kind":"region"},{"name":"Zimbabwe","iso":"ZW","kind":"region"},{"name":"Gibraltar","iso":"GI","kind":"region"},{"name":"Vatican","iso":"VA","kind":"region"}],"hiring_excludes":[],"relocation_offered":false,"industries":["Employer of Record & PEO","Payroll Services","HR & Payroll Software"],"lifecycle":[{"event":"open","at":"2026-10-30T15:20:48Z"}],"visa":[],"liveness":{"score":95,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.946,"p_room":1,"age_days":4,"expected_fill_days":32,"reasons":["conf:3","urgency","win:early"],"computed_at":"2026-11-04T06:34:25Z"},"pay":null,"html_url":"https://alion.io/job/oyster-software-engineer-ruby-on-rails-apis","json_url":"https://alion.io/job/oyster-software-engineer-ruby-on-rails-apis.json","meta":{"generated_at":"2026-11-04T21:46:46Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":150,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-05T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":2454},"rest":"https://alion.io/mcp/rest/get_company?id=2454"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Foyster-software-engineer-ruby-on-rails-apis"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Foyster-software-engineer-ruby-on-rails-apis"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Foyster-software-engineer-ruby-on-rails-apis"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/oyster-software-engineer-ruby-on-rails-apis\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Foyster-software-engineer-ruby-on-rails-apis"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":3528966}},{"tool":"search_jobs","arguments":{"company":"oysterhr.com","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":3528966},"note":"people open to offers who fit this vacancy"}],"note":"The same data through MCP tools: https://alion.io/mcp/open needs no sign-in (compact searches, postings, people); https://alion.io/mcp with an Alion account has everything. Docs: https://alion.io/developers"}}