This job was posted over 90 days ago and may no longer be available.
Full-Stack Software Engineer
Our flagship product is a modular Healthcare Registry Software Platform, which allows us to rapidly deliver solutions to our clients (Academic Research Centers, Disease and Patient Advocacy Organizations, Medical Speciality Societies).
As a Full-Stack Software Engineer you will help us improve this platform and work on clients’ projects. The main challenges we face and techniques we employ are:
- Our clients have lots of data in heterogeneous formats. Part of our job is to make sure it’s possible to work with such data efficiently. We employ a set of tools for data wrangling; some are UI based, some are domain specific languages developed in house.
- Data alone is never useful. We develop insightful user interfaces for our clients and we need to do it fast. Our Health Registry Platform provides needed tools to quickly bootstrap UIs for specific data models and then customize it as needed.
- We continuously maintain multiple client projects, so it's important that we ensure the correctness and robustness of our code, particularly in the evolution of our core Healthcare Registry Platform. We organize our code as a monorepo with a forking model (our original workflow), so we can keep up with changing requirements, while ensuring that our code quality is high.
- Telecommuting is OK
- No Agencies Please
Below is a list of skills / responsibilities the role implies:
- Deliver high quality software based on the collectively developed requirements
- Develop optimal solutions based on the needs of multiple business and technical dimensions (project goals, time & resources availability, task engineering complexity etc.)
- Be comfortable with gathering information, specifying/narrowing down requirements, conferring with users, and planning the project delivery cycle.
- Lead the software development cycle and optimize team efforts according to its phase.
- Write and maintain high-level architectural documentation along with low-level technical documentation.
- Understand testing & integration methodologies (continuous integration, continuous delivery, unit vs. integration tests).
- Take technical responsibility for a solution entirely, meaning that the code integrates, builds, can be installed/executed with the minimal required effort.
- Propose and/or evaluate technical decisions rationally and with regard to the declared goals.
- Participate in a small integrated team (3-7 people) of engineers, quality control testers, and designers.
We expect that you are comfortable with the following technologies (or eager to fill the required knowledge gaps):
- Linux/macOS (most of our work is done in unix-y environments)
- Python (general purpose libraries/ecosystem, HTTP server, UWSGI)
- PostgreSQL (and obviously non-specific relational database design skills)
- GraphQL (this is our primary way to communicate between client and server code)
- Docker (we package our applications as docker containers)
Some more beneficial skills:
- Healthcare data standards (FHIR, HL7, DICOM)
- Python data analysis libraries (Pandas, Numpy, Scipy)
- Languages beyond Python & JS (we love polyglots!)
- Previous experience with cloud providers like AWS or GCP and associated tooling like Kubernetes, Terraform, etc.