Software Engineer-Full Stack

Principal Duties and Responsibilities

  • Develop the full stack functionality for product-ready, clinically relevant software 
  • Work to develop and maintain efficient, reliable code; identify bugs and bottlenecks; and maintain code quality and organization 
  • Work tightly with the broader software team to identify the path to a successful product 
  • Take responsibility for strengthening the team by facilitating the adoption of processes that will allow us to work faster and hire exceptional team-mates 
  • Interface with our physicians and researchers to help answer important clinical questions based on medical imaging, pathology, and electronic health record data 
  • Design frameworks for interfacing between health IT systems and research workflows 
  • Produce/contribute to detailed software requirement specifications based on input from software, product, and clinical teams 
  • Quickly produce well-organized, optimized, and documented source code and debug existing source code 
  • Provide support for product testing in alpha environment before going live, and ongoing support for deployments 
  • Preparation of training manuals for users 
  • Use the Partners HealthCare values to govern decisions, actions and behaviors. These values guide how we get our work done: Patients, Affordability, Accountability & Service Commitment, Decisiveness, Innovation & Thoughtful Risk; and how we treat each other: Diversity & Inclusion, Integrity & Respect, Learning, Continuous Improvement & Personal Growth, Teamwork & Collaboration 
  • Other duties as assigned 


  • A Bachelor’s degree in computer science, engineering, or equivalent field in an undergraduate or graduate program required
  • A minimum of 5+ years of experience in full-stack software development required  
  • Knowledge of Python is required, as are standard tools for continuous integration and versioning (i.e. Git, etc.) 
  • A combination of education and experience may be substituted for requirements 
  • Experience with highly concurrent environments, network optimization, with bandwidth and compute resource optimization, as well as scalable computing strategies are strongly preferred 
  • Some experience with common tools for data management and analysis including machine learning (i.e. Tensorflow, Theano, Torch), distributed computing (i.e. Hadoop, Spark), database software (SQL or variants), and general scientific computing are strongly preferred 
  • Familiarity with Node.js, Flask, Express, micro services with containers, and .NET are  preferred 
  • Knowledge of software team management philosophies (e.g. Agile, Scrum) and various product management/software development tools (e.g., JIRA, Trello, etc.) are desired 

Skills/Abilities/Competencies Required

  • Strong sense of urgency and proactiveness 
  • Ability to function effectively and independently in a fast-paced environment, organize and prioritize work independently, and meet tight deadlines 
  • Self-motivated, with an entrepreneurial mindset and ability to learn quickly 
  • Strong analytical, planning, organization and time management skills with a high attention to detail 
  • Excellent interpersonal skills to effectively communicate with technical teams, cross-functional teams, and staff at all levels of the organization including both technical and non-technical personnel 
  • Ability to relate to and gain insights from product end users 
  • Excellent and succinct written and oral communication skills 
  • Ability to effectively conduct meetings and lead and facilitate large working sessions with all levels of staff and across various stakeholder groups 
  • Ability to successfully negotiate and collaborate with others of different skill sets, backgrounds and levels within and external to the organization 
  • Ability to empathize with the end user, understand and intuit customer needs 
  • and gain insights from product end users 
  • Strong decision making skills, with the ability to negotiate/balance decisions and priorities across functions; comfort making hard decisions with incomplete data and in a timely manner 
  • Demonstrates strong evidence of algorithmic and structured thinking, and intuition for logic, pattern matching, what-if analysis, problem decomposition. and synthesis 
  • Demonstrates ability to organize and incorporate complex systems requirements into product features and prioritize features effectively