Cells are the building blocks of all life. If we could program living cells as effectively as we program digital computers, we could make fundamental breakthroughs in the treatment of disease and the biofabrication of materials, while also gaining insight into the workings of life itself. In spite of this promise there are still many challenges to overcome. First and foremost, programming cells remains highly complex and error-prone, and we have reached a point where powerful computer software is needed to design and construct larger systems. This session presents our web-based software for programming cells including molecular circuits and understanding decision-making in stem cells. We present a molecular program of an optimal consensus algorithm and show results of the working system compiled into DNA. We’ll demonstrate our software tool chains for analysis of existing cellular function and the design of genetic devices from characterised parts. We show how software techniques including satisfiability analysis and property-based testing can be used to establish correctness in such a complex application. Just as software for programming digital computers heralded a new era of technology, software for programming cells could enable new applications of biotechnology.