Differences between revisions 25 and 26
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#acl AdminGroup:read,write,delete,revert #acl LcnGroup:read,write,delete,revert

Software Engineer

Primary responsibilities

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.

  • Test responsibilities include:
    • Develop and execute software test plans
    • Analyze test results and recommend corrective action
    • Implement regression tests as bugs are found and fixed
    • Implement the Dart software quality system
  • 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)