Full-Stack Software Engineer
Our client is looking for a Full Stack Software Engineer to help us build cutting-edge research platforms. We seek an individual to work on our multidisciplinary team of data scientists, medical doctors, and developers. Our team studies large and disparate datasets from the domains of biology, healthcare, and social media. The goal of our efforts is to transform healthcare and research to usher in a new age of individualized data-driven medicine. For this project, we are working with several data registries to create an “Information Commons” where researchers can go to browse and analyze data. We seek a developer to help us in the maintenance and enhancement of an open-source research API known as the PIC-SURE API and the integration of this API with other applications in our research infrastructure like JupyterHub, etc. The incumbent will play a role in clarifying requirements, participating in architectural discussions, proposing and implementing solutions, and reporting on their progress to the team. Developing applications on our team involves exposure to the following :
- Develop and maintain new and pre-existing features of and integrate applications with our existing APIs as well as third-party APIs
- Create and maintain reproducible data pipelines
- Work with research scientists both internally and externally to clarify software requirements.
- Propose solutions to these requirements, weighing the costs and benefits with our team as well as a broader group of stakeholders involved in the open-source community
- Implement solutions and update the team on the status of work.
- Collaborate with team members in architectural discussions and contribute to general improvements across all team projects as directed.
Typical Core Duties
- Requirements gathering and end user interaction. 5%
- Creating proposals for solutions and researching existing options. 10%
- Developing, implementing, testing and deploying software solutions. 70%
- Attending team meetings. Creating status reports and presentations. 5%
- Draw on relationship and technical skills to act as technical liaison to internal and external clients. 5%
- Contribute to creation and maturing of software development best practices and new technologies. 5%
- Minimum Bachelor’s Degree in Computer Science or related field and 2 years relevant work experience in a Software Engineering role or 6 years relevant work experience in a Software Engineering role.
Additional Qualifications: Technologies
- Two or more of the following technologies:
- Back End: Java using either JAX-RS or JAX-WS to build APIs
- DevOps: Docker, Jenkins, AWS Cloud Environment, Terraform, Cloud formation, AWS Lambda
- Professional experience with one or more of (Node.Js, Python, R)
Nice to have:
- Interfacing with various data storage and indexing solutions like MySQL, Oracle, SQL Server and others.
- ETL development via AirFlow.
- Self-motivated and highly detail-oriented.
- Strong technical/systems design and development skills.
- Strong problem solving, testing, and debugging skills.
- Solid understanding of research data system implementation best practices and appropriate use of design patterns.
- Excellent verbal and written communication skills.
- A solution-focused attitude and ability to apply their skills to multiple projects at a time.