\chapter{Introduction} \section{Coherent Multidimensional Spectroscopy} % Unraveling quantum pathways using optical 3D Fourier-transform spectroscopy doi:10.1038/ncomms2405 \Gls{CMDS}, \gls{coherent multidimensional spectroscopy} \section{The CMDS Instrument} From an instrumental perspective, MR-CMDS is a problem of calibration and coordination. % Within the Wright Group, each of our two main instruments are composed of roughly ten actively moving component hardwares. % Many of these components are purchased directly from vendors such as SpectraPhysics, National Instruments, Horiba, Thorlabs, and Newport. % Others are created or heavily modified by graduate students. % The Wright Group has always maintained custom acquisition software packages which control the complex, many-stepped dance that these components must perform to acquire MR-CMDS spectra. % \section{Scientific Software} When I joined the Wright Group, I saw that acquisition software was a real barrier to experimental progress and flexibility. % Graduate students had ideas for instrumental enhancements that were infeasible because of the challenge of incorporating the new components into the existing software ecosystem. % At the same time, students were spending much of their time in lab repeatedly calibrating optical parametric amplifiers by hand, a process that sometimes took days. % I chose to spend a significant portion of my graduate career focusing on solving these problems through software development. % At first, I focused on improving the existing LabVIEW code. % Eventually, I developed a vision for a deeply modular acquisition software that could not be practically created with LabVIEW. % Using Python and Qt, I created a brand new acquisition software PyCMDS: built from the ground up to fundamentally solve historical challenges in the Group. % PyCMDS offers a modular hardware model that can ``re-configure'' itself to flexibly control a variety of component hardware configurations. % This has enabled graduate students to add and remove hardware whenever necessary, without worrying about a heavy additional programming burden. % PyCMDS is now used to drive both MR-CMDS instruments in the Group, allowing for easy sharing of component hardware and lessening the total amount of software that the Group needs to maintain. % Besides being more flexible, PyCMDS solves a number of other problems. % It offers fully automated strategies for calibrating component hardwares, making calibration less arduous and more reproducible. % It offers more fine-grained control of data acquisition and timing, enabling more complex algorithms to quickly acquire artifact-free results. % In conjunction with other algorithmic and hardware improvements that I have made, PyCMDS has decreased acquisition times by up to two orders of magnitude. % A companion software, WrightTools (which I also created), solves some of the processing and representation challenges of multidimensional data. %