Over 90 % of today’s worldwide computing power is found in unexpected places like cell phones, kitchen appliances, and pacemakers. Software has become one of the most complicated artifacts produced by man, making software bugs unavoidable. The Henzinger group addresses the challenge of reducing software bugs in concurrent and embedded systems. Concurrent systems consist of parallel processes that interact with one another, whether in a global network or on a tiny chip. Because of the large number of possible interactions between parallel processes, concurrent software is particularly error-prone, and sometimes bugs show up only after years of flawless operation. Embedded systems interact with the physical world; an additional challenge for this kind of safety-critical software is to react sufficiently fast. The Henzinger group invents mathematical methods and develops computational tools for improving the reliability of software in concurrent and embedded systems.