During my time at the HKU (Utrecht University of the Arts) I was involved in both research and teaching.
The research project was part of a larger European project involving different Universities. I was responsible for designing a server side framework for media file analysis. With this system different processing algorithms, like video recognition and speech-to-text analysis, can be combined in a network and have their results stored in a database for searching.
The system, written in Node.js, declares a network of processors, each with their input and output artifacts. A processor is activated as soon as its input artifacts become available, allowing a graph of processes to cascade differently depending on the input and what can be extracted from it. Algorithms can be local executables or remote services.
For a while I also taught classes on music software using Max and C++.