Simple is a free, open source app developed by Resolve to Save Lives (an initiative of Vital Strategies) and is used by nurses, doctors, and population health experts to improve treatment for patients with high blood pressure.
Simple is currently used in several states of India as well as in Bangladesh. It is used to manage over 200,000 patients in about 600 hospitals, with plans for deployment in additional program focus countries in 2020. Our goal is to save 100 million lives from heart attacks and strokes (The Lancet).
About the job
We’re hiring a full-time Senior Rails Developer to help us add features to the Rails application and improve the APIs powering Simple. This includes:
- Delivering fast, simple software used by nurses in clinics every day
- Working on solutions for hundreds of millions of patients
- Building holistic products with empathy, not just writing code
- Contributing to an open source project used in multiple countries
- Collaborating closely with a talented, international team of Android and Rails developers and designers
- Supporting an offline-first app, including the challenges of navigating a distributed system
- Managing deployments in cloud and on-premise environments
- Ensuring patient privacy and data security
You will help extend our API to allow for new features and apps, secure our application to meet security best practices, and ensure that our Rails app is reliable, scalable, and easy to modify. Our code has grown quickly, and you will help make sure that we keep complexity down, clean up technical debt as needed, and write code that doesn’t require extensive commenting and explanation.
User experience is critical to our success, so you will be working with our design team to make sure that we’re iterating quickly, as getting health data into official hands will help save lives. Our app needs to be easy to understand, for users and developers. Your work will have a real, tangible impact on peoples’ lives.
Simple is designed as an offline-first app. This means instead of a traditional REST API, we have a sync API that keeps data on the devices roughly in line with data on the server. As a result, our app is fast and usable in unreliable network conditions. This distributed system invites some nice benefits, but also requires that you help us navigate its challenges.
Here are some example projects that give you some idea of what’s in store:
- Adding support for Diabetes measurements in our API
- Taking dashboard HTML/CSS from our design team and writing the Rails controllers and view templates to make them come to life
- Adding two-factor auth support for our web app users
- Tracing slow API endpoints and improving their performance by refactoring and making work async where needed
- Exporting basic dashboard data into a downloadable CSV/spreadsheet
- Ensuring admin tools for adding users and facilities are functional and easy to use
- Working with our Android team to make sure API contracts are well understood and followed on both app and server sides
- Adding support for distributed soft deleted records, as well as support for subsequent race conditions and merge issues
- Determining how to deploy our Rails app in AWS easily on-premise servers in government data centers, and in other third-party cloud services
We are seeking an experienced candidate who is ready to do work that matters. No one will be productive on day one, nor do we expect you to. Instead, we’re looking for someone who embraces learning about our challenges, has solved plenty of Rails app-related problems (especially at scale), and can work effectively with our remote team.
Frankly, we’re trying to find someone for whom these problems look pretty familiar. We don’t want a specialist, but instead someone who is just as comfortable slinging ERB views as they are digging into writing query classes and debugging Rails routing errors. Critically, we also want someone who is curious, writes and communicates well, anticipates user needs from a human level, and always looks to keep things simple and iterate. We’re looking for someone who can self manage, plans their time wisely, and delivers straightforward solutions to vague problems.
We try hard to be a team full of empathy, inclusion, and respect. We trust each other, have hard conversations with open mindedness, and assume positive intent. We document as much as possible, work as asynchronously as possible, and meet via video conference when necessary. Proposing ideas and trying new things are paramount; always being right is not. We are frequently wrong and try to write code that we don’t mind deleting when we learn new things. We’re excited for you to participate and look forward to helping you grow your own skills as well.
Given that we’re writing software for the globe, it’s critical that our team represent the diverse environments in which we operate. We strive for an inclusive, diverse team with different perspectives, ideas, and identities.
Experience: Very fluent with Rails development and supporting user-facing and API components. Experience with devops is a plus.
Education: As for your specifics, a CS degree is not required, nor do we require a certain number of years of experience. What really matters is how you got here, why you want to be here, and what you can do.
Availability: You’re free to work when you want, provided that you can overlap and collaborate with the team as needed. That said, we understand that staying up all night does not lead to great work.
Balance: We work hard, but we also make sure you feel supported and put you and your family’s health first.
This is a remote position. Our team spans the US east coast (EST) and India (IST) time zones, and overlapping with our teams makes things much easier. To expand our team’s time coverage, we’re looking for someone between EST and UTC+1 time zones (US east coast, Europe, West Africa, etc.)
You also must have reliable, consistent access to a network for online collaboration.
How to apply?
Please take the time to describe yourself and why you’ll be a great fit for this project. We encourage people of under-represented backgrounds to apply even if you took an unconventional path to become a developer.👉 Submit your application here…
Please ask questions in the comments below or DM me on Twitter: twitter.com/timcheadle