I work with scientists at the Coral Resilience Lab (formerly Gates Lab) to design and build custom automation and monitoring tools for coral research. Current projects include building aquarium tanks and automated photogrammetry pipelines for research related to selective breeding of corals.
The lab runs a few dozens of temperature-controlled water tank for experiments. To determine the effect of temperature on the coral samples, the tanks are designed to follow predetermined temperature profiles over time - sometimes it's to replicate an old temperature time series, other times to track a predicted one decades in the future. I designed the user interface for these temperature controllers so that each tank can be configured by a researcher with minimal instruction and effort. I also made user interface for technicians to monitor the operating status of the tanks remotely in real-time.
I built and maintain a "camera gantry" to take high resolution macro photos of baby coral (~size of a sesame). The gantry moves a camera over predetermined positions along a programmed path with configurable imaging settings. It can process several hundreds samples per hour.
The user interface is made such that the user can control which coral sample to visit and in what order. The automated nature of the tool allows this process to be done periodically (weekly/monthly), which enables experiments that require tracking the samples over time.
I found it critical to control the complexity of my designs. Maturity of the tech stack, long-term availability of components, balancing user desires vs. implementation costs are critical to allowing me to continue to take on more interesting projects. The easier it is for future self / the next untrained to jump into the system to make changes/fixes, the less of my time is spent on the operation, maintenance, and training on existing projects.