My research interests include software engineering, programming languages and formal methods. My current research is focused on automated program repair techniques that eliminate bugs in program source code. My goal is to develop a general-purpose program repair system — a system that is able to address many kinds of defects in commodity software. The underlying principle behind my research consists in understanding the meaning of software defects via semantic analysis, which helps to navigate the conceptually large search space of patches and to compensate the lack of specification in real-world software.