Recent Clients#
Blackrock Neurotech#
As part of a larger effort to design a neuroscience experiment framework, I was hired to design and implement a component that serves to guide the participant and record all of their interactions and associated state changes to automate task-oriented experiments often done in neuroscience. This was a component design from start to MVP with the added requirement that it would be done in Python.
The goal of this project was pretty hard in that it needed to do quite a number of competing things simultaneously. It had to:
- automatically understand what and when to record data with as little user (developer users included) involvement as possible–shouldn’t have to manually post data events or anything.
- provide a simple configuration interface with yaml with a wide range of parameterization
- provide a simple Python based extension mechanism that drops into the yaml configuration and accounts for the automated data recording.
It had to be easy to use and code for users who might be capable coders or even developers but not software engineers. Users of the system will have already dabbled in Python, Matlab, and might have even done things with something like Unity but their study is in something else (like neuro or data science). Some users would have none of this experience and need to be able to work on only configuring different options and goals. So the target users’ skillsets were quite variant.
Wyss Center for Bio and Neuroengineering#
Continued support, maintenence and development of an existing neural signal recording and processing program. Refined its Python scripting interface, added a Python plugin interface, smoothed some real-time processing, and other continued development and support. Supported the project in the lab providing immediate issue resolution and extension support–writing custom modules for use that day.
Created support components for BCI products including a keyboard and mouse emulator that can be controlled by a neural decoder and other support tools.
Helped establish coding standards and policies for ISO 62304 software development. Aided in establishment of vetted SOUP components and trained developers on tooling and methods.
Implemented key components in high-performance hardware driver using recent C++ additions to achieve high-bandwidth acquisition at low latency. This was made easier by more recent C++ standard additions that I used and trained their developers on.
Also trained their developers on the use of pytest and Jupyter to great result in both a Python project and also in C++ integration testing. Experimented with and trained developers on use of containers using docker and podman.
Throughout my time working with Wyss I helped them establish the Ability spin-off company and its products from almost the beginning to right before they launched. My help and training was instrumental in that effort and I learned a great deal about development efforts to support medical science research.
Blackrock Microsystems & Aziosoft#
Hired as additional engineering support and joined a team working on a neural signal recording and processing program using the JUCE Audio framework. Here I provided help as requested and needed. Helped design and implement some essential units, provided user documentation, and wrote a first draft of a test protocol for CE marking.