Software Engineer I � Software tools for behavioral neuroscience
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.
- 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
- 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
- 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
It is the policy of the Allen Institute to provide equal employment opportunity (EEO) to all persons regardless of age, color, national origin, citizenship status, physical or mental disability, race, religion, creed, gender, sex, sexual orientation, gender identity and/or expression, genetic information, marital status, status with regard to public assistance, veteran status, or any other characteristic protected by federal, state or local law. In addition, the Allen Institute will provide reasonable accommodations for qualified individuals with disabilities.