Donorbox is a leading fundraising platform and donor management system for nonprofit organizations. Our mission is to accelerate positive impact worldwide by helping nonprofits become highly effective at raising funds and managing their supporter base. Since 2014, we have powered more than 100,000 global organizations to raise over $4 billion in donations. 🚀
Our fast-growing company is profitable and bootstrapped with a healthy run rate. We have a fully distributed and diverse 150-person team based in 16+ states and 23+ countries. In 2026, Donorbox was named by Built In as one of the Best Places to Work in Washington, DC.
🏅 Donorbox is rated the #1 software for fundraising, donor management, and nonprofit payment on G2 based on hundreds of verified customer reviews — a reflection of the care our team puts into building products that nonprofits trust.
You will be joining the Fundraising Team, one of the most highly visible and client-facing parts of our application. We are responsible for the Omnigive donation form—the absolute bread and butter of our company. Because this form is highly interactive and critical to our non-profits' success, we rely heavily on vanilla JavaScript on the frontend, powered by a robust Ruby on Rails backend. We operate with a flat hierarchy, a fully remote team, and a deliberate choice to keep our tech stack simple, reliable, and powerful.
At Donorbox, our engineers in this role are what we call "Task Finders." At the Engineer II level, you own a feature end-to-end under review, surfacing the work the ticket didn't spell out — as we put it internally: "Given I was asked to do this, I'll also need to do that." We don't just hand you a ticket and expect you to act as a pure order-taker — you directly contribute to our team's goals for the year.
Drive the Omnigive Form: Build and maintain complex, highly interactive UI components using vanilla JavaScript, while seamlessly connecting them to our Rails backend.
Apply the "Omakase" Mindset: Solve problems with the framework rather than around it. You will write idiomatic Ruby on Rails code using ActiveRecord, controllers, and ViewComponents.
Champion Product Sense: Analyze requirements through a "Jobs-to-be-Done" lens. Before writing new code, you will ask, "Can the user already do this?" and actively consider edge cases and error states.
Collaborate and Ship: Balance the desire to ship quickly with the need to ship quality. You will review peers' pull requests with care, communicate blockers proactively in async channels, and default to safely shipping value to users.
Steward our Knowledge: Help maintain our institutional memory by writing clear PR descriptions, logging non-obvious decisions in commit messages, and updating internal documentation when you spot something stale.
Strong JavaScript Skills: Deep comfort with vanilla JavaScript, as it is critical for our main donation form.
Rails & PostgreSQL Proficiency: Ability to ship features in Rails without close supervision, including writing SQL beyond simple queries (joins, aggregations, and catching N+1 problems in PostgreSQL).
Quality & Testing: A strong habit of writing useful automated tests (we use Minitest) by default, including tests that would catch the specific bugs you just fixed.
Pragmatic Frontend Focus: Experience using semantic HTML, global CSS (via design tokens), and Hotwire (Turbo, Stimulus) to build out interfaces where custom JavaScript isn't strictly required.
Independent Problem Solving: A track record of taking a well-scoped feature and driving it to completion, surfacing the adjacent work needed for a polished final product.
Backend: Ruby, Ruby on Rails
Frontend: Vanilla JavaScript, Hotwire (Turbo/Stimulus), Semantic HTML, CSS (Design Tokens)
Database: PostgreSQL, Relational Databases, SQL
Testing: Minitest, Fixtures
Mindset: "Omakase" Rails, MVC, Object-Oriented Programming
We have 5 stages:
If this sounds like the right role for you, please apply today and let us know why. We look forward to hearing from you!