Software Engineer I- Neural Data Processing, Moore Lab

Howard Hughes Medical InstituteStanford, CA
1dHybrid

About The Position

The laboratory of Professor Tirin Moore at Stanford University is seeking a Software Engineer. The Moore lab seeks to understand the neural circuits underlying fundamental perceptual and cognitive functions. In addition, the team is committed to developing and implementing novel and innovative tools, technologies and approaches to fundamental problems in systems and circuit-level neuroscience. For more information about the lab check out: https://www.moorelabstanford.com/ . About the role: The role will be in-person with hybrid flexibility and is a perfect opportunity for someone looking for a 1-year, fixed-term project. We are looking for a software engineer to develop new features and extend the capabilities of a real-time neural data processing and decoding platform. This includes optimizing GPU-accelerated signal processing pipelines, improving system performance under strict latency constraints, and building robust interfaces for experimental workflows. The engineer will also help maintain the codebase by triaging and resolving GitHub issues, reviewing contributions, and addressing bugs that arise as the platform is used in active research settings. The platform is built in C++ with CUDA-based computation running on NVIDIA GPUs, and is being developed both for use within the Moore Lab and for broader adoption by the global neuroscience research community. What we provide: A team that believes in continuous learning and cultivates an environment where all members of the group help each other. Opportunity for growth as a software developer in areas such as CUDA programming, analysis of neural data, machine learning model applications, and real-time applications Opportunities to learn more about systems neuroscience and neuroengineering One on one mentorship with graduate students and postdocs Understanding of project management and system level design of an experimental computer application Experimental experience with electrophysiological tools, and neurophysiological data such as neuronal spiking activity, local field potentials, and eye tracking A team culture that champions a healthy work life balance A competitive compensation package, with comprehensive health and welfare benefits Opportunities for involvement in authoring research articles and development of scientific communication skills

Requirements

  • Bachelor’s degree in an engineering or scientific discipline, or equivalent work experience
  • Minimum of one year of experience in software development
  • General languages (preferred): C++, Python, MATLAB
  • CUDA (strongly preferred)
  • Machine learning knowledge. e.g. logistic regression, SVM, neural network models
  • Basic experience with networking and client/server applications
  • System level design- object oriented programming
  • Basic knowledge of hardware- digital signaling/ basic circuits
  • Understanding of real-time latency and computational efficiency

Nice To Haves

  • Experience with scientific programming and algorithms is desirable
  • Experience working in a research environment a plus

Responsibilities

  • Write good code, which means learning to make implementation decisions based on (a) understanding the software development lifecycle, spanning customer requirements, planning, design, prototyping, agile feedback, implementation, maintenance, testing, requirements staging, (b) technology selection, (c) implementation style (degree of object orientation, degree of performance optimization, framework leverage), (d) likelihood of reusability or service containerization, (e) documentation requirements.
  • Be responsive to scientists, labs, and projects.
  • Attend meetings, brainstorm sessions, building working relationships with scientists, post-docs, and other software developers and project stakeholders.
  • Active solicitation of feedback and prioritization is important, as is timely delivery of working software components.
  • Continuously improve and build software skillset, to increase their impact and project versatility.
  • Additionally, new projects will often require becoming familiar with specific tools, frameworks, and techniques. Learning is expected to be a core job responsibility.
  • Will effectively communicate with both scientists and team members, including ad-hoc conversations, meetings, presentations, emails, and group collaboration tools as-needed.
  • Collaborate with other team members on technology decisions, coding style, and workflow prioritization.
  • This will require the free give and take of ideas and sometimes require compromising individual preferences.
  • Support software packages for collaborators and the community.

Benefits

  • competitive pay
  • exceptional health benefits
  • retirement plans
  • time off
  • a range of recognition and wellness programs
© 2024 Teal Labs, Inc
Privacy PolicyTerms of Service