Check out this unique job opportunity at the Allen Institute for Brain Science and apply to be part of a diverse team of neuroscientists and engineers working to understand how experience influences neural processing. Python fluency and a desire to work as part of a team are key qualifications.
The Allen Institute for Brain Science seeks a Software Engineer to be
an essential member of a scientific team investigating how neural
circuits represent visual categories and how this coding is modified by
experience, expectation, and motivation. The datasets created as part of
this project will be publicly released as an open data resource for the
community, in line with the Allen Institute’s core principles of big
science, open science & team science.
The primary role of this Software Engineer will be to work
closely with neuroscientists and engineers to develop and maintain
software tools for conducting and analyzing experiments designed to
measure brain activity during behavior. This will require developing an
in depth understanding of the scientific motivation and rationale of
these studies in order to effectively translate scientific requirements
into code. Accordingly, experience with or interest in neuroscience is
highly valued.
As part of a highly collaborative environment with an existing
software ecosystem, good communication and enthusiasm for working with
and learning from others is essential to this role. This position will
serve as a bridge between scientific and engineering teams by
contributing to early development alongside scientists, then helping to
translate that development work into a highly standardized production
environment. This will involve making use of existing tools and building
extensions that can be used for new avenues of research.
Responsibilities of this position include designing and writing
stimulus control software, testing and troubleshooting code for running
experiments and interacting with experimental hardware, building
visualization tools to observe data acquisition in real time, writing
tests, validation functions, and documentation to ensure that code is
robust and results are accurate, attending meetings to discuss
scientific goals and task requirements, and facilitating cross team
coordination.
RESPONSIBILITIES
- Collaborate with diverse scientific and technical teams
- Contribute to the design and creation of open data resources
- Work with scientists and software engineers to transform complex requirements into software
- Develop code to control and interact with hardware for running experiments
- Implement behavior task logic in code using existing or new codebases
- Understand and utilize internal databases for data management
- Create and analyze visual stimuli such as images or 3D rendered objects
- Write, test and troubleshoot scripts for running behavior experiments
- Write unit tests and validation functions to ensure that software is working according to specifications
- Write well documented code, refactor and document existing code
- Manage scientific analysis codebase, address GitHub issues, maintain documentation
- Build visualization tools to evaluate data quality and scientific results
- Transfer knowledge of scientific code to the Process Engineering team for production implementation
- Enjoys solving problems
- Strong communication skills
- Desire to work as part of a team in a collaborative environment
- Dedicated team player
REQUIRED QUALIFICATIONS
- Bachelor’s degree in a relevant technical discipline, such as
computer science, computational neuroscience, data science, or
biomedical engineering
- Proficient in Python
- Strong programming ability for scientific computing
- Experience with Python tools for scientific computing (numpy, scipy, pandas, scikit-learn, scikit-image, etc)
- Working knowledge of Git for version control and collaborative coding
- Experience writing unit tests, debugging code, using profiling tools
DESIRED QUALIFICATIONS
- 1+ years of relevant experience in a team oriented software development environment
- 1+ years of experience with scientific computing
- Experience with systems or behavioral neuroscience
- Experience refactoring existing code bases to improve maintainability.
- Experience with relational (e.g. postgres, SQL) and/or distributed (e.g. MongoDB) databases
- Experience with scientific data visualization
- Experience with image or signal processing
- Experience with hardware interfaces, graphical user interfaces
- Experience meeting aggressive timelines and deliverables
- Experience pursuing research projects in collaborative fashion