You are viewing a preview of this job. Log in or register to view more details about this job.

Software Engineer

If interested in this opportunity, please visit www.mghcareers.org and apply for
JOB ID #3204576
Job Link: https://partners.taleo.net/careersection/jobdetail.ftl?job=3204576&lang=en

GENERAL SUMMARY/ OVERVIEW STATEMENT:

Software engineer to lead software development of the “Neurobooth” project, which is an effort to perform large scale digital phenotyping inside the Mass General neurology clinic. With funding from industry, government, and academic institutions, we have created a booth that is equipped with an array of devices, including consumer and industrial grade cameras, eye trackers, microphones, wearable sensors, and other sensors for physiological measurement. Patients perform motor and cognitive tasks inside the booth while collecting synchronized data from the devices. Sensor data are integrated with clinical data, organized in a database, and routed to a computing cluster for analysis. Data visualizations and summaries are generated in real-time to enable sharing of information with clinicians and patients in the clinic. This long-term project will generate the first dataset of its kind to support training of machine learning models and creation of tools to detect early signs of disease, precisely measure disease for clinical trials, and understand molecular and systems-level underpinnings of behavior in neurological diseases.
The role requires an experienced and multitalented software engineer to ensure that the custom built Python-based operating system that controls all aspects of Neurobooth is highly robust, uses software development best practices, end enables any team in the world to use and build upon the system as an open source project.
 
PRINCIPAL DUTIES AND RESPONSIBILITIES:
This position involves a wide range of responsibilities, including:
  • Managing and organizing software and hardware development plans for Neurobooth in an Agile framework
  • Creating separate production and development environments to enable simultaneous development of Neurobooth while it’s deployed and collecting data from patients in the clinic. This includes creating a reduced form of Neurobooth in the office space for development and testing, and a second version of the system at a cutting edge clinical research facility in the Charlestown Navy Yard (i.e., “Neuroroom”).
  • Incorporating software best practices including continuous integration and error handling
  • Creation of automatic tests to ensure the network and hardware are running properly
  • Creation of automatic tests to support incorporation of new features
  • Improvement of real-time time series visualizations and to help ensure data quality at collection time
  • Development of time series analyses to ensure devices are collecting data at the specified sample rates and to evaluate data synchronization across devices
  • Implement improvements of the GUI for running a Neurobooth session
  • Reorganization of code base as necessary to avoid duplication of code
  • Careful documentation of the code base
  • Create and update documentation for the network architecture, hardware architecture, data flow, and database schema
  • Management of computers, devices and other connected hardware
  • Integration of new devices and sensors into the Neurobooth system
  • Creation of new behavioral tasks to run in the booth using PsychoPy
  • Managing and further developing the PostgreSQL database and API that specifies Neurobooth session parameters (e.g., study, task, device), ingests clinical and survey data from REDCap, and logs session, task, and sensor files generated in Neurobooth for easy query and analysis
  • Leading next steps with moving the database to Google Cloud Platform and the Terra data platform created at the Broad Institute
  • Build upon automatic data flow processes to ensure robust data transfers and backups
  • There are additional software development, data visualization, and data analysis opportunities depending on the individual’s interests
  
SKILLS/ABILITIES/COMPETENCIES REQUIRED:
  • Proficiency with Python, SQL, Docker required.
  • Demonstrated ability in developing software applications that control hardware over a network for time series data acquisition.
  • Expertise in relational database management and ETL for batch processing
  • Facility with "tools of the trade", e.g., Unix system administration, shell scripting, building and deployment tools, version control.
  • Comfort with time series data visualization and analysis.
  • Experience with cloud computing.
  • Familiarity with use of lab streaming layer (LSL) and creating behavioral tasks using PsychoPy is preferred.
  • Proven ability to meet deadlines and work cooperatively in a collaborative team.
  • Demonstrated capability as highly organized, a creative problem-solver.
  • Detail-oriented, self-motivated, and able to work independently as well as within cross-functional teams.
  • Ability to adapt to rapidly changing and high-demand environments.
  • Excellent written and oral communication skills.
 
EDUCATION:
Bachelor’s degree required. Master’s degree in Computer Science or related field preferred.
 
EXPERIENCE:
3+ years of experience working in software development.
2+ years of experience with SQL.
Experience in healthcare systems and standards preferred.
 
WORKING CONDITIONS:
The software engineer will work within a team of data scientists, clinical research coordinators, and physician-scientist neurologists. Work will be performed in the Laboratory for Deep Neurophenotyping and the Alzheimer’s Clinical and Translational Research Unit, in collaboration with other academic and industry partners in the Greater Boston area.