Full Stack Software Engineer
Part-time, contract
Position: Full Stack Software Engineer
Reports to: Director of Technology
Engagement: Up to 25 hours per week
Compensation: Up to $50 USD per hour
Application deadline: May 15, 2025
Start Date: May 21, 2025
Location: remote and online
HealthLearn is an AIM-incubated nonprofit on a mission to save lives at scale. We build engaging online learning for health workers in developing countries. HealthLearn currently offers three courses in Nigeria and one in Uganda, which have collectively reached tens of thousands of health workers. We believe that our intervention is extremely cost-effective, on par with the best charities in the world, and has saved hundreds of lives since our launch in 2024. See our impact modeling for more information.
We are seeking a self-starting and experienced full-stack developer to be the third member of our small but mighty tech team. We offer mission-aligned work on a modern tech stack with great developer experience and flexible schedules. For us, this is the most meaningful work we have ever done.
Qualifications
5+ years of experience in software development, including both front-end and back-end development
Strong self-starter with a product mindset
Great written communication skills
Ability to join team meetings at ~18:00 UTC on Mondays
Eligible to work as an independent contractor in your current country of residency
Experience with our technology stack (Typescript/React/Next.js/NestJS/Prisma) is a plus
Engineering Culture
We have an engineering-led product development cycle, and at our current scale don’t have distinct product or design teams. Accordingly, we’re looking for engineers who have an eye towards good UX, empathy for users, and a good sense for design. We are continuously improving our skills, and are early adopters of several AI-assisted development tools.
Even though we’re a startup, we prioritize safety and scalability in our product development. This shows up in a many ways:
Consistent and careful code reviews with somewhat frequent change requests
High levels of type-safety in our code to avoid runtime errors
Broad unit and integration test coverage
Careful (automated) deployments with regular QA in the staging environment
Monitoring of our services via sentry instrumentation and gcp dashboards
No deploys (other than hotfixes) on Fridays
Minimal on-call requirements (we’ve had no major outages)
Responsibilities
Contribute to the development of both the front- and back-end of our online learning web application
Review pull requests generated by other team members
Work with other team members to develop specification for features
Join weekly 1-hr engineering calls to review progress, address blockers, and adjust the product roadmap
Share responsibility for maintaining a stable platform with high performance and high uptime
Tech Stack
We use a monorepo for all three services defined below, and all three are written in typescript. Our staging and production services are hosted on Cloud Run in GCP, leaning on Terraform for services definitions, build processes, etc. Docker compose is used to bootstrap dev environments. The main components of our stack are:
NEXT.js front-end (v14 with app router, updating to v15 soon)
NestJS back-end
Strapi (deprecated CMS used to bootstrap the app)
Postgres in Cloud SQL (prisma ORM)
Application
We invite you to submit a brief application by May 15, 2025.