Junfeng Yang

Computer Science

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.

  • 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.