I am primarily interested in Software Engineering research with a focus on improving software reliability and security. In particular, I devise novel program analysis techniques to analyze existing code properties and apply advanced machine learning models to learn from those properties. Such models help me building tools that automate program development, bug detection, and program repair for real-world large scale software.

Details of my research can be found here. Here is my current cv and research statement.

I am looking for new students (undergraduates, graduates, and post-doc) who are interested in machine learning based program analysis, software engineering and security related topics. email me if you are interested.

Research Projects




  • Dec, 2018 : We are organizing a workshop, DeepTest 2019, co-located with ICSE 2019, to discuss various topics on testing for and with Deep Neural Network.
  • Dec, 2018 : NEUZZ: Efficient Fuzzing with Neural Program Smoothing got accepted in S&P (Oakland) 2019.
  • July, 2018 : "Replay without Recording of Production Bugs for Service Oriented Applications" got accepted in ASE, 2018.
  • Joining Columbia University, City of New York as an assistant professor from July 2018.
  • December, 2017 : "DeepTest: Automated Testing of Deep-Neural-Network-driven Autonomous Cars" got accepted in ICSE, 2018.
  • September, 2017 : ErrDoc got best paper award in FSE, 2017.
  • June, 2017 : ErrDoc got accepted in FSE, 2017.
  • May, 2017  : Distinguished paper award, MSR 2017.
  • July, 2016  : Attended Microsoft Faculty Summit.
  • July, 2016  : "APEx: Automated Inference of Error Specifications for C APIs" got accepted to ASE 2016.
  • May, 2016  : "Automatically Detecting Error Handling Bugs using Error Specifications" got accepted to Usenix Security 2016.
  • December, 2015  : "On the Naturalness of Buggy Code" got accepted to ICSE 2016.
  • October, 2015  : Attended NL+SE, an interdisciplinary workshop between NLP and Software Engineering, at Redmond, WA.