I am a highly skilled and motivated senior software engineer with a background in neuroscience and over 10 years experience specializing in data architecture and full-stack test-driven development.

Employment History

2023
Senior software engineer, International Brain Laboratory, UCL
I manage the data architecture of a large international scientific collaboration comprising over 20 labs across the USA and Europe. During my tenure we have consistently met our funding targets and doubled our core software development team.

Achievements:

  • Managed several successful projects as technical lead where I both managed a software development team and liaised with research clients to support and deliver their scientific objectives.
  • Designed and maintain several Django metadatabases deployed on AWS with RDS which include both an admin Web interface for user data entry and a RESTful API for integration with several automated data pipeline services.
  • Oversaw our organization's largest ever public data release of ~40,000 datasets, registering downloads of over 2 million files by over 4,000 unique IPs in the first 6 months. This data release has already borne fruit in the wider scientific community with published papers such as Pellegrino et al. 2023.
  • The exceptional feedback I received in my 360 employment review.
  • Led our organization in adopting Agile project management using custom Github project boards integrated with Toggl Plan for effective time tracking, resource management, issue triaging and progress reporting.
University College London employee profile.
2019
As part of the core software development team I built from the ground up a large-scale, distributed data pipeline that combines electrophysiological, optical imaging, behavioural and histological data from myriad sources.

Achievements:

2014
Research assistant, Cortical Processing Lab, UCL
I contributed to many projects both experimentally and analytically. In particular my interests lay in perceptual decision-making and how learning occurs under sensory uncertainty. I was also the primary developer for our lab's codebase, used by multiple institutes worldwide.

Achievements:

2013
Principal technician, Genetic Microdevices Ltd
A microfluidics company developing a novel form of macromolecular analysis based on electrophoresis. My role included analysis of product data, extensive materials research and development for the microfluidics devices. In addition to this was intermediate electronics analysis.
2012
Dissertation & voluntary placement, Margrie Lab, NIMR
Working with the Margrie group I contributed to a project correlating physiology and morphology of visual cortex neurons.

Education

2025
Certificate in Engineering leadership for emerging leaders, MIT
2013
BSc. Neuroscience, UCL • Upper 2nd Class
2010
A-levels, Whitby Community College • 3xA, C

Skills

  • MATLAB
  • Python
  • Node.js
  • Django
  • HTML
  • PostgreSQL
  • C
  • PHP

Other skills

Advanced: Git, Github Actions, AWS (EC2, RDS, S3).

Strong: Grafana, Docker, Chart.js, Numba, Kanban, Agile and Scrum.

Programming paradigms: Object-oriented, functional, functional reactive, parallel programming (joblib, multithreading, asyncio).

Projects

Below are a select few code projects I have worked on.

ONE API and Alyx database

The Open Neurophysiology Environment (ONE) is a Python API for sharing, searching and loading standardized neurophysiology data, stored either on a user's local machine or on a remote server. Experiment datasets are stored in redundant, distributed file servers. The ONE API allows one to connect to a database to search experimental meta data and then download the data from a remote repository (e.g. an AWS S3 bucket or similar).

Users can download data both synchronously or asynchronously, with file hash checking and a local cache for both data and database meta data cache for offline use. The API also allows one to register new datasets to the database (which handles remote data transfers) and to index local data for offline sharing and searching of datasets.

The code has 100% coverage and extensive documentation.

The Alyx database is a Django postgreSQL database deployed on an AWS EC2 instance with an RDS backend, and is used by experimenters to record experiment meta data such as animal colony management, dataset records, experiment notes, and distributed preprocessing pipelines.

ONE and Alyx are used by over a dozen labs around the world to collaboratively share and analyze data.

A companion Website for data visualization allows users to explore the data through interactive plots.

Links:

Rigbox & Signals

Rigbox is a high-performance, open-source MATLAB toolbox for managing behavioral neuroscience experiments. Rigbox simplifies hardware/software interfacing, behavioral task design, and visual and auditory stimuli presentation. Additionally, Rigbox can time-align datastreams from multiple sources and communicate with a remote database to manage experiment data. Rigbox is mostly object-oriented and highly modular, which simplifies the process of designing experiments.

Rigbox includes a GUI for experimenters to parameterize their experiments, trigger, record and synchronize data signals from multiple computers and acquisition devices, and to monitor subject behaviour.

Signals is a framework written in C and MATLAB for programmatically designing bespoke behaviour experiment protocols. It employs functional reactive programming to asynchronously transform datastreams, allowing one to design and run both open- and closed-loop audiovisual experiments.

Both Rigbox and signals are used by numerous labs to run behaviour experiments, and to synchronize stimulus presentation and recording modalities.

Links:

LabCI

LabCI is a continuous integration server built with Node.js. It allows one to trigger a full suite of integration tests on any remote server, including those behind institutional firewalls. The server interacts with GitHub via webhooks, allowing tests to be triggered when code repositories are updated. The server delivers a live log and implements a job management system to run through multiple test suites. It also reports coverage to coveralls.io and can deliver condensed reports of the test runs via an API.

Links:

ibllib

ibllib is the main code repository for the International Brain Laboratory (IBL). Highlighted here are two notable parts of the codebase:

Preprocessing pipline

IBL comprises a dozen experimental labs distributed across the USA and Europe. As new data are acquired, experimental sessions are registered automatically by a lab server to a common database. These distributed servers then query the database for queued preprocessing pipeline tasks. Each server then extracts neural and behaviour data from modalities such as video motion tracking, multiphoton imaging, eletrophysiology and fibrephotometry. This includes algorithms for spike sorting, cell detection, time alignment, behaviour model fitting and histological alignment. The extracted datasets are then registered to the database and remotely transferred to various remote repositories for wider access.

Additionally, a battery of quality assurance metrics are recorded and reports are automatically generated for experimenters to monitor the progress of their of data.

The 'imaging preprocessing pipeline' code (linked below) is an example of the pipeline task structure we developed. The Python module demonstrates extensive documentation, logging and clear coding techniques, numerical computing optimizations with Numba, and advanced use of object-oriented and functional programming paradigms.

Brain atlas visualization

A brain atlas package within ibllib allows users to generate 2D and 3D plots of neural activity aggregated from hundreds of neural recordings all over the brain. The atlas allows one to use multiple brain region mappings and coordinate systems.

Links:

Publications & conference proceedings

Journal articles

2023
The International Brain Laboratory, et al., "A Brain-Wide Map of Neural Activity during Complex Behaviour", bioRxiv visit
2023
Coen P, et al., "Frontal cortex learns to add evidence across modalities", Neuron visit
2023
The International Brain Laboratory, et al., "A modular architecture for organizing, processing and sharing neurophysiology data", Nature Methods visit
2021
The International Brain Laboratory, et al., "A standardized and reproducible method to measure decision-making in mice", eLife visit
2019
Lak A, et al., "Dopaminergic and Prefrontal Basis of Learning from Sensory Confidence and Reward Value", Neuron visit
2019
Bhagat J*, Wells MW*, et al., "Rigbox: an Open-Source Toolbox for Probing Neurons and Behavior", bioRxiv visit
2019
Burgess CP, et al., "High-Yield Methods for Accurate Two-Alternative Visual Psychophysics in Head-Fixed Mice", Cell Press visit

Conference proceedings

2019
Bonacchi N, et al., "The IBL data architecture: tools for storing and accessing diverse datasets collected at multiple sites", Society for Neuroscience 2019 visit
2019
Shen S, et al., "The IBL data architecture: DataJoint pipeline", Society for Neuroscience 2019 visit
2019
Pan-Vasquez A, et al., "The International Brain Laboratory: standardizing and reproducing a decision making task in mice across laboratories", Society for Neuroscience 2019
2018
Aguillon V, et al., "The International Brain Laboratory: reproducing a single decision-making behavior in mice across labs", Society for Neuroscience 2018
2018
Lak A, et al., "Dopaminergic and frontal signals for reward learning in perceptual decisions", Federation of European Neuroscience Societies 2018
2018
Coen P, et al., "Audiovisual spatial localization in head-fixed mice", Federation of European Neuroscience Societies 2018
2017
Wells MJ, et al., "Probing contrast sensitivity and adaptation in the head-fixed mouse", Society for Neuroscience 2017 visit
2017
Coen P, et al., "Multisensory spatial integration in a two-alternative forced choice task for head-fixed mice", Society for Neuroscience 2017 visit
2017
Fournier J, et al., "Simultaneous Spatial Representations in Visual Cortex And Hippocampus", Society for Neuroscience 2017 visit
2017
Carandini M, et al., "Projection-specific roles of dopamine neurons in decision making", Society for Neuroscience 2017 visit
2016
Fournier J, et al., "Integration of self-motion and visual signals in mouse CA1", Society for Neuroscience 2016 visit