Sage Bionetworks, Seattle WA
At Sage Bionetworks, we believe that we can learn more by learning from each other. By improving the way scientists collaborate, we help to make science more effective. We partner with researchers, patients, and healthcare innovators to drive collaborative data-driven science to improve health. Making science more open, collaborative, and inclusive ultimately advances biomedicine.
The technology platform team at Sage is developing a platform called Synapse to support open data-driven biomedical research, and to serve as a public resource for the scientific community. Data can be accessed from and published to Synapse from an analysis session in Python, R or command shell. We need a software engineering lead for this programmatic interface, someone who can also provide guidance to developers utilizing the tools.
What you’ll be doing:
- Develop and maintain the suite of Python tools which allow scientists effectively collaborate in the Synapse data sharing platform from a Python session. This includes working with the product manager on priorities and timelines, with back end engineers on web service API design, with UX designers on optimizing the user experience and with documentation authors writing user guides.
- Develop and maintain the Synapse R packages, which are thin wrappers over their Python counterparts. While deep expertise in R is not a prerequisite, the position will require developing an understanding of how Python-R bridges work, and attention to the generation of R stubs.
- Develop and maintain the command line interface (CLI) which today is an extension of the Python client. Work with designers and key end users to ensure the command set is optimized for use from the command shell.
- Write reference documentation, maintain and operate the CI / deployment system, and managing the release of packages.
- Provide developer support to key collaborators, ensuring they can optimally use the client(s) and ensuring that their experience informs future product refinements and user documentation.
We’d love to hear from you if you:
- Have a degree in computer science, software engineering or equivalent.
- Have at least 3 years of industry experience building and shipping Python applications. Support for data science / scientific use cases preferred, but not required.
- Versatile and strong programming skills:
- Expert-level Python experience is a strict requirement for the position.
- Experience creating R packages preferred, not required.
- A strong understanding of object-oriented design and programming, and design patterns.
- Experience building, deploying, and supporting software in production environments.
- Practical agile development lifecycle experience. Familiarity with professional software development tools, including issue tracking, source control management, and continuous integration and testing environments.
- Commitment to test-driven development, and rapid, automated release cycles.
- Experience supporting developers, including writing reference documentation for your packages. We’d be interested to see what you’ve pushed to a public repository like PyPI.
- Strong verbal, written, and organizational skills, and the ability to multitask and thrive in a dynamic start-up environment.