Rails Programmer


Remote - Anywhere
Basecamp is hiring Rails programmers to help build and maintain all our applications. We're looking for Programmer and Senior Programmer candidates, and will be accepting applications for the next two weeks. Target start date for new hires is in July.

About the job
As a Rails programmer at Basecamp, you'll work to build new product features using our Shape Up methodology, and keep our apps fast, secure, and reliable. Depending on your interests and skills, you may do more feature work or more infrastructure work, as well as open-source work, but the boundaries are fluid, and people can switch between teams.

Right now, we're further developing our new email service HEY, and the next version of our namesake product with Basecamp 4. But we also maintain a cherished set of legacy products that we're operating until the end of the internet. Everything is built as a majestic monolith using Ruby on Rails, and going forward, we're all-in on Hotwire for the front-end.

We focus on getting to the bottom of problems, not paving over them. If that means fixing a bug in Rails, that's what we do. If it means extracting a new framework, so be it. If it means calling a CODE RED to address a critical security issue, we don't wait. But we're not into heroics or all-nighters. This is a 40-hour per week job, not an all-consuming startup mission.

Here are some real examples of the work we’ve done lately that might help you to get a better idea of what the job could entail:

  • Creating an email export system for HEY using the MBOX format, ensuring that even large mailboxes can be exported efficiently.
  • Building a keyboard-navigable attachment previewer for images and PDF documents.
  • Revising our billing system to charge EU VAT where applicable, from payment flows and invoices to internal APIs and support tooling.
  • Investigating and fixing a race condition when processing incoming email that’s resulting in random duplicate entries.
  • Responding to a Rails security release by understanding the vulnerability, reproducing it, upgrading all apps, and backporting the fix to older versions of Rails.
  • Addressing stale reads and deadlocks among concurrent web requests and background jobs.
  • Working with a designer to create email Name Tags, HEY's lightweight alternative to bloated email signatures.
  • Dealing with a credential stuffing attack from A to Z.
  • Figuring out why certain cache hit rates unexpectedly tanked after a deploy.

About you
We’re looking for candidates with strong track records of putting Rails to work and bringing products to life. You should be experienced in the framework, in Ruby, and with the staples of full-stack web development: HTTP, HTML, JavaScript, and CSS.

But just because you’re experienced doesn’t mean we expect you to hit the ground running. You’ll have a gentle, intentional on-boarding experience, and time to learn and grow comfortable with our systems, processes, and people.

Since the bulk of our work is written – from the code and interfaces we design, to the pull request discussions and long-form proposals we make – being a good writer is important. Effective, concise writing leads to effective, concise code.

We value people who can take a stand yet commit even when they disagree. We subject ideas to rigorous consideration and challenge each other, but all remember that we’re here for the same purpose: to do good work together. That comes with direct feedback, openness to each others’ experience, and willingness to show up for each other as well as for the technical work at hand. We’re in this for the long term.

We're not big on credentials, so a Computer Science degree or graduating from a prestigious university is not something we spend much time looking at. We care about what you can do and how you do it, not about how you got here.

While you'll report to a team lead, Basecamp is a company where Managers of One thrive. We're quick to trust that you can do it, and here to support you in making it so. You can expect to be counted on. You can expect to do your best work and build a career here.

This is a remote job. You’re free to work where you work best: home office, co-working space, coffeeshops. We are primarily hiring from Canada, America, and Europe, but as long as your workday can have at least a 4-hour overlap with a Chicago workday (central timezone 9-5), it can work. We don't want anyone working a graveyard shift to make that happen, though.

Pay & Benefits
Basecamp pays in the top 10% of the industry based on San Francisco rates (matched against salary + bonus). Same position, same pay, no matter where you live. The salary for candidates matched as Programmer is $165,410. The salary for candidates matched as Senior Programmer is $197,819.

Employees that have been with the company for more than two years become eligible to participate in our profit-sharing program. 10% of company profits are distributed to those eligible every year, weighted according to seniority.

We offer fully paid parental leave. We work 4-day weeks in the summer (Northern Hemisphere) and offer a month-long sabbatical every 3 years. As well as top-tier health insurance and a retirement plan with a 6% company match.

How to apply
Please submit an application with a CV and a cover letter that tells us about yourself, about what you can bring to Basecamp, and about Basecamp’s role in your future. Tell us about something you’ve done, something that’s relevant to the kind of work we do, something that excites you. Overall, be descriptive, but don’t write a novel — 500 words or so is plenty.

If you've participated in open source work of any kind, please include links to pull requests, bug reports, feature pitches, or any other public engagement. Open-source participation is by no means a requirement, but if it's something you've done, we'd like to look at it.

We’re accepting applications until June 17, 2021, at 7PM US-Central time. There’s no benefit to filing early, so take your time.

We expect to take a few weeks to review all applications. You’ll most likely hear from us by June 25 about the advancement to a take-home technical exercise. The exercise is representative of the kind of day-to-day work we do. We invite fewer than 20 candidates to this stage, and those candidates should expect to spend upwards of a full day (but no more!) completing this test. Please consider whether you’d be willing to dedicate that time before applying.

After the written test, the top candidates will proceed to the interview stages. Expect 2-3 interviews, all one hour, all remote, with your future colleagues, on your schedule. We’ll talk through your background, your approach to work, and dive into your technical knowledge. No gotchas, brainteasers, or whiteboards.

We aim to make an offer by early July with a start date later that month.

Please note that we’re unable to offer individual feedback during the screening process. We usually see 1,000+ applications for programmer roles, and our hiring team simply doesn’t have the bandwidth to offer personalized feedback before the technical exercise round.

This is a demanding application process. We appreciate you giving us that consideration, and we promise to give you our full attention in return. We look forward to hearing from you!