Junfeng Yang


519 Computer Science Building
Mail Code 0401

Tel(212) 853-8447
Fax(212) 666-0140

Junfeng Yang’s research centers on building reliable, secure, and fast software systems.  Today’s software systems are large, complex, and plagued with errors, some of which have caused critical system failures, breaches, and performance degradations. Junfeng Yang has invented techniques, algorithms, and tools to analyze, test, debug, monitor, and optimize real-world software, including Android, Linux, production systems at Microsoft and VMware, machine learning systems, and self-driving platforms, benefiting hundreds of millions of users.  His recent research lead to a startup called NimbleDroid, a Columbia University spin-off in New York City that invents cutting-edge tools to redefine how developers craft  mobile apps.

Research Interests

Software systems, security, reliability, performance

In his PhD dissertation research, Junfeng Yang created eXplode, a general, lightweight system for effectively finding storage system errors. This work led to numerous bug fixes to real systems, such as the Linux kernel, including fixing data-loss bugs that cause users to lose entire file system partitions. In 2008, Junfeng Yang worked at Microsoft Research Silicon Valley, extending eXplode to check production distributed systems. The resulting system, MoDist, was transferred to Microsoft product groups. At Columbia University, Junfeng Yang’s work on reliable multithreading was featured by sites such as ACM Tech News and The Register.  Most recently, Junfeng Yang has been working on improving the reliability, security, and privacy of machine learning systems, in particular deep learning systems and self-driving platforms. This work was featured in The Atlantic.  

Yang received a BS in computer science from Tsinghua University in 2000 and a PhD in computer science from Stanford University in 2008.   He won the Sloan Research Fellowship and the Air Force Office of Scientific Research Young Investigator Program Award, both in 2012; the National Science Foundation CAREER award in 2011; and a Best Paper Award at the USENIX Symposium on Operating System Design and Implementation in 2004.


  • Postdoctoral fellow, Microsoft Research Silicon Valley, 2007-2008


  • Associate professor of computer science, Columbia University, 2013–
  • EMC-endowed Chair Professor Group (Adjunct), Tsinghua University, 2013–2016
  • Assistant professor of computer science, Columbia University, 2008–2013
  • Technical consultant, Microsoft Research Silicon Valley, 2008-2012


  • Association for Computing Machinery (ACM)
  • Advanced Computing Systems Association (USENIX)
  • Institute of Electrical and Electronic Engineers (IEEE)


  • Google Faculty Research Award, 2014
  • Sloan Research Fellowship, 2012
  • Air Force Office of Scientific Research Young Investigator Research Program (AFSOR YIP) Award, 2012
  • National Science Foundation Faculty Early Career (NSF CAREER) Award, 2011
  • Best Paper Award of the Sixth USENIX Symposium on Operating Systems Design and Implementation (OSDI), 2004


  • NSF, ONR, DARPA, IARPA, AFRL, AFOSR, Sloan, Google, Canon, Huawei, WeChat


  • David Williams-King, Graham Gobieski, Kent Williams-King, James P Blake, Xinhao Yuan, Patrick Colp, Vasileios P Kemerlis, Junfeng Yang, and William Aiello. Shuffler: Fast and deployable continuous code re-randomization. In Proceedings of the Twelfth Symposium on Operating Systems Design and Implementation (OSDI ’16), 2016 
  • Eric Koskinen and Junfeng Yang. Reducing crash recoverability to reachability. In Proceedings of the 39th Annual Symposium on Principles of Programming Languages (POPL ’16), pages 267–283, January 2016. 
  • Yinzhi Cao and Junfeng Yang. Towards making systems forget with machine unlearning. In Proceedings of the 2015 IEEE Symposium on Security and Privacy (S&P ’15), 2015. 
  • Junfeng Yang, Heming Cui, Jingyue Wu, Yang Tang, and Gang Hu. Determinism is not enough: Making parallel programs reliable with stable multithreading. Communications of the ACM, 2014. 
  • Heming Cui, Jiri Simsa, Yi-Hong Lin, Hao Li, Ben Blum, Xinan Xu, Junfeng Yang, Garth A. Gibson, and Randal E. Bryant. Parrot: a practical runtime for deterministic, stable, and reliable threads. In Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP ’13), November 2013.