Basecamp's Mobile team is hiring 2 iOS programmers and 2 Android programmers to help build and maintain our mobile applications. We're looking for Programmer and Senior Programmer candidates, and we will be accepting applications for the next two weeks.
About the Job
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, our Android apps are written in Kotlin, and both 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 iOS & Android app development.
The Mobile team at Basecamp 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 Basecamp 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.
- Open sourced Turbo Native for iOS.
- Show local device contacts for email autocompleting in the HEY app.
- Created an in-app video player for video file attachments.
- Improved the Clips feature in HEY by layering native components over webviews.
- Add a local Search History for the HEY app.
We're looking for programmers with strong preferences for and deep experience in the languages we use – Swift or Kotlin. You won't float between operating systems; you'll be fully focused on either iOS or Android development. Yet you'll work closely with your OS 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.
You’re a good writer. 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. Effective, concise writing leads to effective, concise code.
Managers of One thrive at Basecamp. 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.
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.
Basecamp is a fully remote company, and this is a remote job. We're hiring from anywhere with at least 4 hours of overlap with the US-Central Time zone during a normal work day. This could be a 11:00-19:00 schedule from Europe, but we're not hiring from locations that require a graveyard shift to make the overlap happen.
Benefits & Compensation
Basecamp 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, October 11, 2021, at 5:00PM US-Central time. Speak directly to the position you're applying for (iOS or Android). 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 Basecamp. 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. You’ll hear from us by October 29 about whether or not we'd like to invite you to an introductory video interview with our head of people operations. You and she will talk through your background and your approach to programming and product development.
The next phase of the hiring process will be a take-home technical exercise. The exercise is representative of the kind of day-to-day work you'd be doing on the Mobile team. We usually invite fewer than 20 candidates to this stage, and those candidates should expect to spend about 8 hours completing this test (but no more!).
After the technical exercise, the top candidates will proceed to the final interview stage. You'll talk with 1-2 members of the Mobile team about your technical knowledge and experience, and you'll have a chance to walk through your coding exercise.
We aim to make an offer by the end of November with a flexible start date in December or January.
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 interview stage.
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!