Research Software Engineer (Waterloo)

Research Software Engineer (Waterloo)

24 Oct
|
University of Waterloo
|
Waterloo

24 Oct

University of Waterloo

Waterloo

Research Associate — Research Software Engineer, Nengo Neural Simulation Ecosystem

Position summary

The Centre for Theoretical Neuroscience is hiring a research software engineer on an 11-month term to modernize Nengo, our open-source neural simulation ecosystem. Nengo is a widely used spiking neural network simulator. The post is funded by a Research Software Maintenance Fund award from the Digital Research Alliance of Canada.

The work is focussed on rebuilding continuous integration and test coverage, modernizing the OpenCL and deep-learning backends, returning the project to automated signed releases, and leaving documentation good enough for maintainers who did not write the code.

About the project and team

Nengo is a Python framework for building large-scale functional brain models, in continuous development since 2013. It has shipped 21 stable releases, records more than 270,000 downloads, and runs models across CPUs, GPUs and neuromorphic hardware including Intel Loihi and SpiNNaker.

The ecosystem has outgrown its maintenance capacity. Several packages lag current Python, NumPy and GPU runtimes, continuous integration has gaps across the platform matrix, and one release sits unshipped behind completed dependency fixes. This post exists to solve these problems.

You would report to Professor Chris Eliasmith and work alongside Terry Stewart and Michael Furlong of the National Research Council of Canada, who contribute code review and continuity. All work happens in public repositories through reviewed pull requests.

Key responsibilities

The funded work plan has seven packages. You would lead the technical work in all of them.

- Testing and continuous integration. Rebuild CI across the supported platform matrix, raise automated test coverage, and add property-based tests for the numerical solvers. Establish performance and regression baselines so later improvements are measured rather than asserted.
- Release engineering. Restore automated signed releases to PyPI and conda. Refresh packaging, dependency pinning and Python version support. Harden the build pipeline around credential handling and artefact signing.
- GPU and accelerator backends. Update NengoOCL for current OpenCL runtimes, GPU drivers and Python versions.
- Deep learning integration. Modernize NengoDL against current deep-learning runtimes.
- Interactive interface.



Broaden NengoGUI compatibility across current browsers, since it is the main entry point for new users.
- Models and examples. Update the NengoZoo model and example collections.
- Documentation. Consolidate user and maintainer documentation, update the maintainer handbook and contributor guide, record architecture decision records for the core abstractions, and publish machine-readable citation metadata with a versioned DOI per release.

Alongside these, you would integrate software composition analysis and static analysis into CI, enable dependency vulnerability monitoring, and help publish a documented vulnerability disclosure procedure.

Required qualifications

- Training in computer science, engineering, neuroscience, physics, mathematics or a related field. PhD preferred.
- Solid Python, with demonstrated fluency in the scientific stack, particularly NumPy and SciPy.
- Demonstrated experience maintaining a non-trivial open-source project or research codebase: continuous integration, packaging, releases, issue triage and code review.
- Working knowledge of at least one accelerator or deep-learning runtime, such as OpenCL, CUDA, PyTorch, TensorFlow or JAX.
- Comfort working in public repositories through reviewed pull requests, with the code and the discussion visible.

We are interested in evidence of what you have built and maintained.

Preferred qualifications

- Prior use of Nengo or the Neural Engineering Framework, including through the Nengo Summer School.
- Experience with neuromorphic hardware: Intel Loihi, SpiNNaker, BrainScaleS or FPGA targets.
- Background in computational neuroscience, cognitive modelling or spiking neural networks.
- Supply-chain and software security practice: dependency scanning, static analysis, artefact signing, vulnerability disclosure.
- Full stack web development, for the NengoGUI work.
- Technical writing for a developer audience, including API and architecture documentation.

Terms of appointment

Research Associate, University of Waterloo

Term:



11 months, non-renewable under this award

Salary: $110,000 for the full term

Start date: December 1, 2026, or as soon as possible thereafter

Hours: Full time, 1.0 FTE

Location: Waterloo, Ontario. Hybrid, with a strong preference for candidates who can work from campus regularly. Fully remote within Canada will be considered for an exceptional candidate.

Unit: Centre for Theoretical Neuroscience, University of Waterloo

Supervisor: Professor Chris Eliasmith

The term is 11 months, which is a condition of the award. The appointment does not include pension participation or insured health benefits, which Waterloo extends to research appointments of one year or more; statutory benefits and vacation pay apply.

We are reviewing applications as they arrive.

How to apply

Use the indeed application process. If possible, please include

- A CV.
- A link to code you have written or maintained, with one or two sentences on what your contribution was. A public repository, a package you maintain, or merged pull requests to someone else's project all work.
- A short note, no more than a page, on how you meet the job requirements, and what you would tackle first and why.

Applications are reviewed as they arrive and the posting closes when the position is filled.

Required disclosures

- Compensation. $110,000 for the 11-month term. There is no bonus, commission or other variable compensation attached to this position.
- Vacancy status. This posting is for an existing vacancy, newly created by external research funding.
- Artificial intelligence. Artificial intelligence is not used to screen, assess or select applicants for this position.
- Canadian experience. Canadian work experience is not required. Applicants must be legally entitled to work in Canada by the start date.

Applicants will be notified of the outcome within 45 days of their final interview.

The University of Waterloo is committed to achieving barrier-free accessibility for persons with disabilities. Applicants who require accommodation during the recruitment process should contact the address above. The University regards equity and diversity as integral to academic excellence and encourages applications from all qualified candidates.

Pay: $110,000.00 per year

Work Location: Hybrid remote in Waterloo, ON N2L 3G1

📌 Research Software Engineer (Waterloo)
🏢 University of Waterloo
📍 Waterloo

Reply to this offer

Impress this employer describing Your skills and abilities, fill out the form below and leave Your personal touch in the presentation letter.

Subscribe to this job alert:

Get the latest job offers by email for: research software engineer (waterloo) / waterloo

Subscribe to this job alert:

Get the latest job offers by email for: research software engineer (waterloo) / waterloo