Cells are the ultimate computational devices. Cells use genetically-encoded molecular networks to monitor their environment, make sophisticated decisions, and execute diverse tasks. We are fundamentally interested in the function and evolution of these complex networks. Using synthetic biology, we build artificial versions of these circuits from genetic “parts” to understand the molecular basis by which cells solve computational and information-processing problems. In turn, we use these tools and insights to create genetic programming languages that allow us to engineer cells for a range of therapeutic and diagnostic applications. Complementing these molecular approaches, we develop novel fluidic technologies to manipulate and analyze cells in dynamic environments that mimic those in Nature, e.g. in the wild or human body. These platforms provide new capabilities and resolution for studying how cellular systems – single cells and populations – behave and evolve in diverse environments.