Andy is a current Software Engineering PhD student in Software and Societal Systems Department at Carnegie Mellon University. They study formal modelling and verification of systems, including work on model-checking assume-guarantee contracts and cyber-physical systems. Andy is currently researching formal verification of the recoverability of a system and how recoverability can be used to design software that cannot be verified for safety.