What are the responsibilities and job description for the Scientific Programmer I position at Salk Institute for Biological Studies?
The CNL-MCell Scientific Programmer will work closely with the MCell Research Group to develop sophisticated computational tools relevant to the modeling of neuronal structure and function.
The objective of this position is to perform the scientific programming software development tasks required in the MCell Project. The scientific programmer receives direction for major project goals and requirements from the MCell project leaders.
ESSENTIAL FUNCTIONS
The scientific programmer's job can be broken down into several high-level elements as follows:
- Interface with MCell project leaders to receive direction on project goals, specifications, time frames, and progress reports.
- Participate with members of research team using the software to evolve/refine the software spec. c) Break down software engineering goals to a time-line of specific tasks with milestones.
- Design APIs to meet software spec.
- Implement APIs and required unit tests for software spec.
- Document and publish software and tutorials on project website.
- Organize and generate reports for internal and external agencies.
Current specific goals appropriate for a scientific programmer. Requires intimate knowledge of 3D Electron Microscopy (3DEM) processing workflows.
- Develop command-line tools for high-throughput image registration
- Build flexible 3-D graphical user interfaces for data visualization, manipulation, and sharing.
- Contribute to and extend open-source tooling for volumetric rendering via web interfaces
- Employ Model-View-Controller architecture for design of novel software for image registration
- Develop and maintain MCell software and related tooling
EXPERIENCE
Required:
4 years full-time experience in a neuroscience research laboratory setting 2 years full-time experience relevant to computer science, preferably using Linux operating system 1 year experience with application development, especially with Qt graphical framework, either C or Python API Experience with multiple programming languages, including C , Python, and shell scripting Experience with Linux, distributed computing environments, and high performance systems Deep knowledge of biological sciences (particularly genetics and molecular biology). Strong written and oral communication skills.
Preferred:
- Ability to code publication-quality figures using Python, MATLAB, and/or R
- Experience with software tools including git version control, vi or Emacs, various scientific Python modules
- Experience with applied machine learning
- Experience with web development, i.e. databases and relational programming Knowledge of test-driven development, unit testing, cross-platform development
EDUCATION
- Required Bachelor's degree in Neuroscience, Computer Science, Bioinformatics or a related field
- Preferred Master's degree in computer science or significant coursework relevant to computer programming (10 courses)
SKILLS AND ABILITIES
The scientific programmer should be a highly self-motivated individual with well-developed leadership and organizational skills. Since this position requires some management of, as well as participation in software development the scientific programmer must be able to take a nuts-and-bolts/hands-on approach and work well in a team.
SPECIAL CONDITIONS OF EMPLOYMENT
- Must be willing to work in an animal-related research environment.
- Satisfactory completion of the Institute’s background investigation.
- Willing to sign a confidentiality agreement
PHYSICAL REQUIREMENTS/MENTAL ACTIVITIES/ENVIRONMENTAL CONDITIONS
The incumbent in this position will be constantly adjusting focus, grasping, hearing, keying, seeing, sitting, analyzing, calculating, communicating, reading, reasoning, writing, and working indoors.
Salary : $68,700 - $87,100