Rails Programmer - remote

37signals
Posted 2 years ago
We Work Remotely
37signals is hiring Rails programmers to work on Basecamp and HEY. We're looking for Programmer and Senior Programmer candidates, and we’ll be accepting applications for the next two weeks. Our target start date for new hires is in July.

About the job
You'll be building new product features alongside a designer using our Shape Up methodology, as well as spending time addressing issues to make sure our apps are robust, and our codebase weed free.

Right now, we're further developing our popular email service HEY, and the next version of our namesake product with Basecamp 4. 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.

To give you a clear idea of what the job could entail, here are some real examples of the work we’ve done lately:
  • Adding rich text editor support for better formatting of Campfire messages and Pings in Basecamp.
  • Adding support for Participation Types in Basecamp to make it easy to show which people are working on a project, and who is just following along.
  • 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.
  • Optimizing SQL queries and database indexes to support new ways of viewing email threads in HEY.
  • Investigating and fixing a race condition when processing incoming email that’s resulting in random duplicate entries.
  • Working with a designer to create email Contact Groups, HEY's approach for sending email to groups of people.

About You
We’re looking for candidates with a strong track record 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.

Just because you’re experienced, it 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'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, 37signals 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, coffee shops. To make sure time zones overlap with our current crew, we're looking for people based in the US, Central America, South America, Africa, or Europe.

We respect everyone's right to participate in political expression and activism, but avoid having political debates on our internal communication systems. 37signals as a company also does not weigh in on politics publicly, outside of topics directly related to our business. You should be at peace with both of these stances.


Pay &Benefits
37signals 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.

Our benefits support a life well-lived away from work. Ample time off and all the resources you need to support you in doing the best work of your career. Here's more on the benefits we offer.

Applicants from outside the US will be offered a contractor role with comparable terms and at the same rate of pay as our US-based employees.


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 37signals, and about 37signals’ 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 love to look at it.

We’re accepting applications until Monday June 6, at 5pm US-Central time. There’s no benefit to filing early, so please take your time.

We expect to take a few weeks to review all applications. You’ll hear from us by June 17 about the status of your application and whether we'd like to invite you an interview. After the initial interview, we ask our top candidates to complete a take-home technical exercise. The exercise is representative of the kind of day-to-day work our programmers do. We usually invite fewer than 10 candidates to this stage, and those candidates should expect to spend up to a full day (but no more!) completing this test. We will pay you $500 for this time.

After the technical exercise, the top candidates will proceed to interviews with the team. Expect a couple of one-hour Zoom interviews 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 in July with a flexible start date later that month.

We encourage applicants from all backgrounds to apply for a job where you can do the best work of your career.

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.

We look forward to hearing from you!