Find Jobs
Find Jobs Near You – Available Work in Your Location
Skip to job details
TJ
Thomas Jefferson University
Research Programmer / Software Engineer
Job Description
Number of Positions In Requisition 1 Job Details A Research Programmer / Software Engineer position is available in the laboratory of Dr. Noa Herz in the Department of Neurology and Neuroscience at Thomas Jefferson University. Research in the Herz Lab focuses on the neural mechanisms underlying human episodic memory. We use direct brain recordings and electrical stimulation collected from neurosurgical patients with implanted electrodes undergoing seizure monitoring. Our work aims to characterize memory processes and memory dysfunction in neurological and psychiatric conditions and to develop novel brain stimulation approaches to improve human memory function. We are seeking a motivated, independent, and technically skilled programmer/software engineer to develop, maintain, and improve software tools for human memory experiments, intracranial EEG (iEEG) data processing, and scientific analysis. The successful candidate will work closely with neuroscientists and clinicians to develop new experimental paradigms, improve existing analysis pipelines, and provide technical expertise for ongoing cognitive neuroscience studies. Job Description This position is ideal for someone who enjoys solving challenging technical problems, rapidly developing new tools, and working at the interface of software engineering, neuroscience, and medicine.
Projects may involve:
- Rapid development and implementation of new behavioral experiments in human memory.
- Building and optimizing software tools for direct brain stimulation studies.
- Developing reproducible preprocessing and analysis pipelines for intracranial EEG data.
- Supporting computational analyses on high-performance computing clusters.
- Designing software systems, testing procedures, and reproducible workflows.
- Preparing software releases and maintaining code documentation.
- Troubleshooting computing infrastructure, including servers, file systems, and cluster environments.
- Contributing to the design and implementation of novel neuroscience experiments and analysis methods.
Qualifications:
- Bachelor's degree in computer science, engineering, data science, or a related field.
- Strong programming skills in Python.
- Experience with C++, or willingness to work with and extend existing C++ code.
- Experience working in Linux/Unix computing environments.
- Experience with version control and software environment management tools (e.g., Git, conda, pip).
- Demonstrated experience completing technical projects or contributing to larger codebases.
- Ability to write clean, well-documented, maintainable, and reusable code.
- Strong independent problem-solving skills.
- Excellent communication skills and ability to collaborate within multidisciplinary teams. Preferred Qualifications
- Experience with neuroscience, psychology, biomedical research, or human subjects research.
- Experience with EEG, intracranial EEG, neural time-series analysis, or physiological data.
- Experience with MATLAB, R, JavaScript, Unity, PsychoPy, Psychtoolbox, Qt, or related tools.
- Experience with scientific Python libraries such as NumPy, pandas, SciPy, MNE, matplotlib, or scikit-learn.
- Experience with software testing, deployment, or collaborative software development.
- Experience with high-performance computing, SLURM, server-based workflows, or scientific data management.
- Experience with computational modeling, simulations, or large-scale data analysis.
- Experience with hardware, electronics, or experimental systems integration.
- Interest in memory research, epilepsy, brain stimulation, clinical neuroscience, or computational neuroscience.
Benefits
- Financial Aid/Assistance
- Professional Development
- Other Retirement and Savings
- Health Insurance
Career Insights for Programmer / Analyst
See where this job fits in the broader career landscape. Knowing your career path helps you see what's possible from here.
Scorecard
Based on Indiana data
Review key factors to help you decide if this role fits your goals. How is this calculated?
What they do
A Programmer or Analyst combines programming expertise with analytical skills to design, develop, and maintain software systems or applications. Responsibilities can include software solution design, writing code, testing software applications or systems, system integration, software deployment, and technical support. This role typically develops software solutions that meet specific business objectives.
$98,790 / year median in Indiana
-29% projected decline