Differences between revisions 27 and 28
Deletions are marked like this. Additions are marked like this.
Line 22: Line 22:
  * Coordinate with developers   * Determine and implement a release schedule based the tracking of known issues and new features
  * Maintain Release Notes documentation
Line 26: Line 27:
  * Maintain multi-platform builds of the FreeSurfer code-base and its accompanying 3rd-party packages
Line 28: Line 28:
  * Port to new platforms when necessary
Line 30: Line 29:
  * Help resolve open-source build issues
 * Support responsibilities include:
  * Monitoring the !FreeSurfer mailing list and responding to end-user issues
  * Assist with !FreeSurfer courses, which are conducted a few times a year in different parts of the world

 * Documentation responsibilities consist primarily of maintaining and contributing to the !FreeSurfer wiki

Software Engineer

Primary responsibilities

We are looking for someone to take primary responsibility for the build, test, release, maintenance, support and documentation of a multi-platform (Linux and Mac) software application (FreeSurfer) used in the field of brain-imaging research.

  • Build responsibilities include:
    • Monitor the nightly build platforms and resolve build issues with the developers
    • Maintain up-to-date 3rd-party packages and resolve platform compatibility issues
    • Simplify the build issues associated with 3rd-party package dependencies
    • Spearhead and implement transition from CVS to Git version control system
    • Spearhead and implement true open-source availability (github or similar)
  • Test responsibilities include:
    • Develop and execute software test plans
    • Monitor automated tests, analyze test results and recommend corrective action
    • Implement regression tests as bugs are found and fixed
    • Implement the Dart software quality system
  • Release responsibilities include:
    • Determine and implement a release schedule based the tracking of known issues and new features
    • Maintain Release Notes documentation
  • Maintenance responsibilities include:
    • Assist in bug-fixing, and feature enhancement
    • Help resolve multi-platform compatibility, installation and run-time issues
    • Maintain an issue tracking system
  • Support responsibilities include:
    • Monitoring the FreeSurfer mailing list and responding to end-user issues

    • Assist with FreeSurfer courses, which are conducted a few times a year in different parts of the world

  • Documentation responsibilities consist primarily of maintaining and contributing to the FreeSurfer wiki

Qualifications

BSCS or related technical degree. C and C++ programming experience in a Unix environment is required. Basic shell scripting, and Perl, Python and Tcl/Tk scripting experience desired. Unix autoconf and CVS experience desired.

About MGH

You will be working at the Martinos Center for Biomedical Imaging at the Massachusetts General Hospital (MGH), affiliated with both Harvard Medical School and MIT. It is one of the premier brain imaging centers in the world, and the FreeSurfer software package is used in research centers worldwide. If you have a background or interest in brain or medical image processing, and want to learn the inner workings of this complex software package by testing and maintaining it, then this is an ideal position for you. MGH offers an extensive benefits package to its employees, and the Charlestown Navy Yard location provides a unique and enjoyable work environment.

Tasks

  • Test:
    • Setup automatic tests of aseg and aparc atlases
    • Setup an automatic group analysis test, using the buckner40
    • Create unit tests for all in-use binaries that don't have one, and enhance the critical tests that do exist (create a wiki page listing each binary and how and whether its tested).
    • Profile major binaries, identify important routines, and create unit tests for those.
    • Create a Dart server, with Dashboard, to receive nightly build and test results, for public web-page display

    • Buy and setup a 64bit Intel Mac Pro, and setup as a build and test machine
    • Quantify variability of results for a single subject due to algorithm randomness and platform differences
    • Run valgrind on each binary to check for memory trampling
  • Maintenance:
    • Create VMWare Freesurfer virtual machine for Linux (so that freesurfer can run on Windows)
    • Create a Mac Universal binary for Freesurfer (which is compatible with both powerpc and intel)
    • Explore and mess with trying to get freesurfer to build in CMake, at least portions of it relating to Qdec
    • Share 'baby-sitting' tasks of monitoring nightly build and test platforms.
  • Bug fixing

SoftwareEngineer (last edited 2017-07-24 12:52:02 by AllisonStevens)