Lab Positions:
Software Engineer
We require a software engineer for the NIH-funded Neurogrid project. Neurogrid is a specialized neuromorphic hardware platform that will emulate (simulate in real-time) a million neurons in the cortex. The project's goal is to make it easy and affordable for neuroscientists to perform simulations at a scale that can link cellular-level mechanisms to the system-level functions that they enable, thereby accelerating progress in brain research.
Requirements
You will be responsible for building a software platform to control Neurogrid and visualize the data it generates. Our existing chips emulate 1,000-10,000 neurons and are controlled using simple GUIs (example1, example2) that display spike rasters, population histograms, membrane-potential traces etc. We require a new software system to:
1. Configure Neurogrid
- The GUI should allow them to intuitively transition to building large scale simulations with a million neurons, either in groups or individually.
- Neuroscientists presently use Neuron (link, screenshot) and Genesis (link, screenshot) to configure and simulate a few neurons.
- The back-end should be able to communicate with Neurogrid (through 10-gigabit LAN, eSATA or possibly USB 3.0), and be able to process (visualize and/or save to disk) neuron data in real time (400Mb/s of data).
- The front-end should intuitively display spike data and population statistics from 10^6 neurons, and analog data such as ion-channel currents and membrane-voltage traces from a few neurons.
- Layers of abstraction might be useful. For example, a high level view of groups of neurons with the ability to scope down and view individual neurons.
- Users should be able to easily create customized visualization subroutines.
- The software should allow advanced users to configure experiments using a custom (preferably Python-based) scripting language.
The ideal candidate would closely collaborate with the Neurogrid team and take ownership of the software initiative immediately. Meeting these requirements demands good graphics programming, GUI design and development, and hardware interface programming.
Qualifications:
- BS in Computer Science or related discipline. An MS or PhD in the sciences or engineering is strongly preferred.
- Expertise in software design, human-computer interaction and data visualization.
- Experience in professional scientific computing, neuroscience and/or brain research is a strong plus.
- Proficiency in C, C++ and Python.
For information about Neurogrid, see http://www.stanford.edu/group/brainsinsilicon/neurogrid.html
To apply
Visit http://jobs.stanford.edu/ and enter 23676 (the Job ID) in the keyword search.

