About the Work As a programmer on the Mobile team, you'll work on product features in six-week cycles together with a designer, as well as work independently to fix bugs and do technical maintenance in an environment high on autonomy.
Our iOS apps are written in Swift and use a hybrid web and native approach to reuse web views across platforms, while leveling up important areas of the mobile apps with native code for full fidelity. We recently open sourced the frameworks that underpin our hybrid approach under the Hotwire umbrella, and Turbo Native is the foundation of our app development.
The Mobile team at 37signals functions as one cohesive group, pushing for unified development across platforms. You'll be an integral part of designing new features that work consistently across platforms, but feel natural and appropriate for mobile use. The Mobile team also works to create new JSON APIs to support new native features, further improve Turbo Native and Hotwire, and support new product features that our corollaries on the web team build.
Here are some things the team has worked on recently that might give you a better sense of what you’ll be doing day to day:
- Rewrote the HEY email composer to be faster, and better handle drafts and offline composition.
- Improved iPad keyboard navigation and keyboard shortcuts.
- Added a Cover Art feature to cover up your previously seen email in a fun way.
- Added Stickies to Cover Art for a convenient place to put reminders, reply snippets, links, and more
- Redesigned the Basecamp Home screen to more easily get to your pinned and recently used projects
- Open sourced Turbo Native for iOS.
About You We're looking for programmers with a strong preference for and deep experience in Swift. You won't float between operating systems; you'll be fully focused on iOS development. Yet you'll work closely with your Android counterparts to ensure close unified development of all our mobile apps. You should be intimately familiar with everything it takes to develop top-flight mobile apps, and you should have a significant track record of shipping such apps.
Experience with web development in general is desired, and familiarity with Rails is a bonus.
All of our mobile apps consist of a blend of native and web components. You should be comfortable working in that hybrid environment, but also confident in your abilities to steadily elevate our apps by incorporating more and more native code.
This is a remote position. You’re free to work from anywhere, but your working hours must overlap with our team in North America and Europe. We're not considering candidates from Asia, Australia, or other locations that would require a graveyard shift to work alongside our existing team.
You must be a good writer. We work remotely, so the majority of our work and collaboration is written.
We value when people 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.
Managers of One thrive at 37signals. We’re committed generalists, eager learners, conscientious workers, and curators of what’s essential. We’re quick to trust. We see things through. We’re kind to each other, look up to each other, and support each other. We achieve together. We are colleagues, here to do our best work.
What To Expect You can expect a mindful onboarding process with structured ramp-up time. You can expect a team that listens. You can expect to be counted on and the freedom to do your best work. We build our apps, our teams, and our company for the long haul, so you can build your career here if you choose to.
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 and Benefits 37signals pays in the top 10% of the industry based on San Francisco rates. Same position, same pay, no matter where you live. The salary for this position is $165,410 USD for Programmer or $197,819 USD for Senior Programmer. We assess seniority relative to the existing team and in light of the work to be done.
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 of the US will be offered a contractor role on comparable terms and equal pay with our domestic employees.
How to Apply Please submit an application by Monday, September 12, 2022, at 5:00PM US-Central time. Introduce yourself to us as a colleague and share some recent work that you’re especially proud of. Tell us why you want this job and why you’d like to work at 37signals. We value great writers, so be yourself, be creative, and take your time.
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!
What Happens Next? We expect to take a few weeks to review all applications and then you’ll hear from us about whether or not we'd like to invite you to an introductory interview with our recruiter. After that conversation, a smaller group of candidates will interview with members of the hiring team.
We ask our top finalists to complete a paid, at-home technical exercise. The exercise is representative of the kind of day-to-day work you'd be doing on the Mobile team. Then we hope to make an offer in early November, with a flexible start date later that month.
Please note that we’re unable to offer individual feedback during the screening process. We usually see a high quantity of applications for programmer roles, and our hiring team simply doesn’t have the bandwidth to offer personalized feedback before the interview stage.
We encourage applicants from all backgrounds to apply for a job where you can do the best work of your career. We appreciate you giving us your consideration, and we promise to give you our full attention in return. We look forward to hearing from you!