Junfeng Yang

Professor
Co-director of Software Systems Lab
Department of Computer Science
Columbia University

500 West 120 Street, 519 CSB
Mail Code 0401
New York, NY 10027

Email of Junfeng Yang

Lab: 487 CSB
Phone: (212) 939-7012
Fax: (212) 666-0140

[ Awards | Publications | Software ]
[ People | Press | Teaching | Support ]

Picture of Junfeng Yang

My research centers on making reliable and secure systems. Some of my current research thrusts are (1) security and robustness of machine learning, (2) tools to better protect, verify, analyze, test, and debug software, and (3) programming and runtime systems for cloud applications. After getting a BS in Computer Science from Tsinghua University, I earned my PhD in Computer Science at Stanford, where I created eXplode, a general, lightweight system for effectively finding storage system errors. This work has led to an OSDI best paper award, numerous bug fixes to real systems such as the Linux kernel, and a featured article in Linux Weekly news. In 2008, I worked at Microsoft Research Silicon Valley, extending eXplode to check production distributed systems. MoDist, the resultant system, is being transferred to Microsoft product groups. At Columbia University, my recent work on reliable multithreading was featured in sites such as ACM Tech News. I won the Sloan Research Fellowship and the AFOSR YIP award, both in 2012; and the NSF CAREER award in 2011.

I'm looking for a few graduate students, postdocs, and undergraduate interns. If you know how to build systems/tools, we should talk.

Columbia undergraduate and master students: the above applies to you, too. Also, take a look at some projects available for academic credits.

I was on sabbatical in 2016 co-founding a Columbia spin-off called NimbleDroid. NimbleDroid provides automated, comprehensive app performance analysis to help teams build performant apps. Its mission is to leverage research breakthroughs to automate mundane tasks in software engineering.

Select Awards

Recent Papers and Drafts

(If you're interested in a paper draft but it isn't available online, please email me for a copy.)

Select Publications (Complete list...)

Software

People

I'm fortunate to work or have worked with these brilliant people.

I co-advise some students in the SSL lab.

Articles and Discussions about Research

DIVID: Columbia Engineering
Raidar: Science News Explores, Columbia Engineering, Columbia Magazine
DeepXplore: Scientific American, IEEE Spectrum, CACM Research Highlight (Video), Newsweek, TechRadar, Columbia News, China News, Sohu, Sina, CCTV's Hello AI documentary
Shuffler: Network World, ACM Tech News
Machine unlearning: The Stack, EurekAlert, The Atlantic, KurzweilAI, ACM Tech News
Peregrine: CACM, ACM Tech News, The Register, Columbia Engineering, TG Daily, Physorg.com
MoDist: Softpedia
eXplode: Linux Weekly News
Static analysis: Linux Kernel Mailing List

Teaching

Fall 2023 -- W4152: Engineering Software-as-a-Service
Fall 2023 -- E6998: Engineering Blockchain and Web3 Apps

Fall 2022 -- W4152: Engineering Software-as-a-Service
Fall 2022 -- E6998: Engineering Blockchain and Web3 Apps
Fall 2021 -- W4995: Engineering Software-as-a-Service
Fall 2021 -- E6998: Security and Robustness of ML systems
Spring 2021 -- W4156: Advanced Software Engineering
Spring 2021 -- E6998-003: Security and Robustness of ML systems
Spring 2020 -- W4156: Advanced Software Engineering
Spring 2020 -- E6998-010: Security and Robustness of ML systems
Spring 2019 -- E6121: Reliable Software
Spring 2019 -- E6998-001: Security and Robustness of ML systems
Spring 2018 -- E6121: Reliable Software
Spring 2018 -- E6998-009: Security and Robustness of ML systems
Spring 2017 -- E6121: Reliable Software
Fall 2016 -- Teaching leave
Spring 2016 -- Sabbatical leave
Fall 2015 -- Sabbatical leave
Spring 2015 -- Teaching leave
Fall 2014 -- E6121: Reliable Software
Spring 2014 -- Teaching leave
Fall 2013 -- W4118: Operating Systems I
Spring 2013 -- Teaching leave
Fall 2012 -- E6121: Reliable Software
Spring 2012 -- W4118: Operating Systems I
Fall 2011 -- E6121: Reliable Software
Spring 2011 -- W4118: Operating Systems I
Fall 2010 -- E6998-1: Reliable Software
Spring 2010 -- W4118: Operating Systems I
Fall 2009 -- E6998-1: Reliable Software
Spring 2009 -- W4118: Operating Systems I
Fall 2008 -- E6998-2: How to Make Reliable Software

Support for Research and Teaching

We are grateful to the sponsors of our research and teaching, including NSF, ONR, DARPA, AFOSR, AFRL, Sloan Foundation, Google, Facebook, Amazon, and Accenture (an incomplete list).