Plan and conduct comprehensive applications/web development for complex projects; typically work as part of a team to implement complex business solutions. Perform expert coding: design, develop code at an expert level, and manage development projects, teams, programs. May manage multiple projects simultaneously.
The Department of Biomedical Informatics (DBMI) at Harvard Medical School is looking for a Senior 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:
- Application communication via JaxRS Web-Based APIs
- AWS Cloud Environment with DevOps tools like Docker, Jenkins, Terraform
- Highly collaborative scientific informatics projects
- Big Data problems in the biomedical and genomic space
- Interfacing with various data storage and indexing solutions like MySQL, Oracle, SQL Server and others
Specific responsibilities for this position include:
- Develop and maintain new and pre-existing features of and integrate applications with our existing APIs as well as third-party APIs
- Work with research scientists both internally and externally to identify 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.
- Create documentation, examples and client libraries related to requirements and the project in general.
- Collaborate with team members in architectural discussions and contribute to general improvements across all team projects as directed.
- Participate in and contribute to sprint ceremonies
Typical Core Duties
- Participate fully in software development life cycle
- Research, design, and implement technical solutions to deliver business requirements
- Identify opportunities to improve and simplify applications portfolio and implement related enhancements
- Contribute to creation and maturing of software development best practices and new technologies
- Draw on relationship and technical skills to act as technical liaison to internal and external clients and to mentor junior staff
- Abide by and follow the Harvard University IT technical standards, policies and Code of Conduct
- Minimum of five years' post-secondary education and/or relevant work experience
- Proficiency in relational database systems leveraging JPA, Java, and web-based applications
- 3+ years of experience with developing and consuming JAX-RS or JAX-WS APIs
- 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