Differences between revisions 26 and 27
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
Responsible for test and maintenance of a multi-platform (Linux and Mac) software application (FreeSurfer) used in the field of brain-imaging research. Focus on test suite development that ensures correctness of software results and coverage of the software suite. 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)
Line 10: Line 17:
  * Analyze test results and recommend corrective action   * Monitor automated tests, analyze test results and recommend corrective action
Line 13: Line 20:

 * Release responsibilities include:
  * Coordinate with developers

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:
    • Coordinate with developers
  • Maintenance responsibilities include:
    • Assist in bug-fixing, and feature enhancement
    • Maintain multi-platform builds of the FreeSurfer code-base and its accompanying 3rd-party packages

    • Help resolve multi-platform compatibility, installation and run-time issues
    • Port to new platforms when necessary
    • Maintain an issue tracking system
    • Help resolve open-source build issues

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)