Assistant Professor
Institute for Software Research
School of Computer Science
Carnegie Mellon University

Office: TCS Hall 322
Email: eskang [at] cmu [dot] edu
Phone: (412) 268-3761

I work mainly at the intersection of software engineering and formal methods. My research aims to find better ways to design software systems that are safe, secure, and reliable to use. I am especially interested in automated reasoning, specification languages, design methods, model-driven engineering, system safety, security, and cyber-physical systems (CPS).

Some of the systems that I’ve recently worked on include intelligent vehicles, industrial control systems, medical devices, IoT and mobile platforms, and web applications.

I am always looking for motivated students to join our group! If you are interested in any of these topics, please drop me an e-mail or consider applying to the CMU SE PhD program.


  • Designing for robustness: What does it mean for software to be robust against an evolving or misbehaving environment? How do we design systems to be robust? (FSE ‘20)
  • Feature interactions: How do detect and safely manage unanticipated interactions between system components? (ASE ‘20, RV ‘18)
  • Resilience in CPS: Can we identify potential safety failures in complex CPS before they occur? How do we recover from such a failure? (RV ‘20, CDC ‘17)
  • Secure-by-design methods: What impact do early design decisions have on security? Can we systematically evaluate and synthesize secure designs? (CAV ‘19, FSE ‘16, SecDev ‘16)




Prior to joining CMU, I spent a year working on connected vehicles at Toyota, and was a postdoctoral scholar on the NSF ExCAPE program with Stéphane Lafortune and Stavros Tripakis. I received a PhD in Computer Science at MIT, working with Daniel Jackson. Before MIT, I studied software engineering at the University of Waterloo, where I spent several wonderful terms as an undergraduate researcher in WatForm.