Resume-aware faculty matching

Find professors who actually fit you

Upload your resume. Four AI agents analyze your background, rank the faculty who fit, inspect their recent research, and help you draft outreach — grounded in their actual work, not templates.

Free to startNo credit cardCancel anytime
Top matches Balanced preset
Dr. Sarah Chen
Stanford · Interpretability · NLP
91
Dr. Marcus Holloway
MIT · Robotics · RL
84
Dr. Aisha Okonkwo
CMU · Fairness · HCI
82
Nova · Professor Researcher · re-ranking top 20…
Shan Lu

Shan Lu

· Associate Professor of Computer ScienceVerified

University of Chicago · Computer Science

Active 2004–2026

h-index45
Citations8.7k
Papers23154 last 5y
Funding$3.9M
See your match with Shan Lu — sign in to PhdFit.Sign in

About

Shan Lu is a Professor in the Department of Computer Science at the University of Chicago. She received her Ph.D. from the University of Illinois, Urbana-Champaign, in 2008. Her research focuses on software reliability and efficiency, particularly in detecting, diagnosing, and fixing functional and performance bugs in large software systems. She has made significant contributions to understanding concurrency bugs and performance bugs, with her work recognized through awards such as the ASPLOS Influential Paper Award. Prior to her current position, she served as the Clare Boothe Luce Assistant Professor of Computer Sciences at the University of Wisconsin, Madison, from 2009 to 2014. Shan Lu is an ACM Distinguished Member (2019), an Alfred P. Sloan Research Fellow (2014), and a recipient of the NSF Career Award (2010). Her research interests include systems, architecture, and networking, with a focus on the design and analysis of computing systems such as cloud, edge, Internet, and quantum systems. She is actively involved in the research community, serving as the Chair of ACM-SIGOPS and holding editorial and organizational roles in major conferences and committees.

Research topics

  • Computer Science
  • Programming language
  • Machine Learning
  • Artificial Intelligence
  • Computer Security
  • Human–computer interaction
  • Telecommunications
  • Simulation
  • Software engineering
  • Operating system
  • Distributed computing
  • Engineering
  • Embedded system
  • Internet privacy

Selected publications

  • VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Verus

    Lecture notes in computer science · 2026-01-01

    book-chapterOpen access
  • Clusterin Drives Fiber Endocytosis by Mesothelial Cells to Resolve Liver Fibrosis

    Gastroenterology · 2025-12-10 · 7 citations

    articleOpen access

    BACKGROUND & AIMS: Liver fibrosis, a common outcome of chronic liver diseases, is generally considered irreversible. Upregulation of clusterin (CLU), a secreted glycoprotein, occurs in several degenerative diseases and is suggested to have protective effects; however, its potential in treating or reversing liver fibrosis requires investigation. METHODS: Induction of CLU and its receptor low-density lipoprotein receptor-related protein 2 (LRP2) in fibrotic liver were determined using single-cell RNA sequencing and immunofluorescence. Its role and mechanism were examined in CLU knockout mice and mesothelial-specific LRP2 knockout mice. A peptide mimicking CLU was designed and verified. RESULTS: CLU expression was induced in pericentral senescent hepatocytes and then secreted during liver fibrosis in both patients and mice. CLU deletion exacerbated liver fibrosis, whereas treatment with recombinant CLU reduced fibrosis, suggesting that CLU induction feedback inhibits fibrosis progression. Mechanistically, LRP2, the receptor for CLU, is expressed specifically by liver mesothelial cells but not hepatic stellate cells. Recognition of CLU by LRP2 triggers mesothelial cell proliferation and migration from the liver surface into the pericentral region, followed by endocytosis of surrounding fibers, thus reducing liver fibrosis. Thereafter, we designed a 20-amino acid peptide mimicking CLU, named CLUtide, and determined its effect in resolving liver fibrosis, suggesting the considerable therapeutic potential. CONCLUSIONS: Pericentral senescent hepatocytes secrete CLU to induce the proliferation and migration of mesothelial cells to endocytose fibers by its receptor LRP2, thus reducing liver fibrosis. The engineered CLUtide mimicking CLU may be promising for resolving hepatic deposited fibers during liver fibrosis.

  • CacheBlend: Fast Large Language Model Serving for RAG with Cached Knowledge Fusion

    2025-03-26 · 34 citations

    articleOpen access

    Large language models (LLMs) often incorporate multiple text chunks in their inputs to provide the necessary contexts. To speed up the prefill of the long LLM inputs, one can pre-compute the KV cache of a text and re-use the KV cache when the context is reused as the prefix of another LLM input. However, the reused text chunks are not always the input prefix, which makes precomputed KV caches not directly usable since they ignore the text's cross-attention with the preceding texts. Thus, the benefits of reusing KV caches remain largely unrealized.

  • Lining up Garbage Collection and Application for a Far-Memory-Friendly Runtime

    ACM Transactions on Computer Systems · 2025-07-18

    articleOpen access

    Far-memory techniques that enable applications to use remote memory are increasingly appealing in modern data centers, supporting applications’ large memory footprint and improving machines’ resource utilization. Unfortunately, most far-memory techniques focus on OS-level optimizations and are agnostic to managed runtimes and garbage collections (GC) underneath applications written in high-level languages. With different object-access patterns from applications, GC can severely interfere with existing far-memory techniques, breaking remote memory prefetching algorithms and causing severe local-memory misses. We developed MemLiner, a runtime technique that improves the performance of far-memory systems by aligning memory accesses from application and GC threads so that they follow similar memory access paths, thereby (1) reducing the local-memory working set and (2) improving remote-memory prefetching through simplified memory access patterns. We implemented MemLiner in two widely used GCs in OpenJDK: G1 and Shenandoah. Our evaluation with a range of widely deployed cloud systems shows that MemLiner improves applications’ end-to-end performance by up to 3.3× and reduces applications’ tail latency by up to 220.0× .

  • AutoVerus: Automated Proof Generation for Rust Code

    Proceedings of the ACM on Programming Languages · 2025-10-09 · 4 citations

    articleOpen accessSenior author

    Generative AI has shown its value for many software engineering tasks. Still in its infancy, large language model (LLM)-based proof generation lags behind LLM-based code generation. In this paper, we present AutoVerus. AutoVerus uses LLMs to automatically generate correctness proof for Rust code. AutoVerus is designed to match the unique features of Verus, a verification tool that can prove the correctness of Rust code using proofs and specifications also written in Rust. AutoVerus consists of a network of agents that are crafted and orchestrated to mimic human experts' three phases of proof construction: preliminary proof generation, proof refinement guided by generic tips, and proof debugging guided by verification errors. To thoroughly evaluate AutoVerus and help foster future research in this direction, we have built a benchmark suite of 150 non-trivial proof tasks, based on existing code-generation benchmarks and verification benchmarks. Our evaluation shows that AutoVerus can automatically generate correct proof for more than 90% of them, with more than half of them tackled in less than 30 seconds or 3 LLM calls.

  • Keeper: Automated Testing and Fixing of Machine Learning Software—RCR Report

    ACM Transactions on Software Engineering and Methodology · 2025-06-05

    articleSenior author

    This artifact aims to provide source code, benchmark suite, results, and materials used in our study “Keeper: Automated Testing and Fixing of Machine Learning Software” [ 3 ]. We developed an automated testing and fixing tool Keeper and its IDE plugin for ML software. It automatically detects software defects and attempts to change how ML APIs are used to alleviate software misbehavior. This artifact provides guidelines to set up and execute Keeper and also guidelines to interpret our evaluation results. We hope this artifact can motivate and help future research to further tackle ML API misuses. All related data are available online.

  • AutoVerus: Automated Proof Generation for Rust Code

    arXiv (Cornell University) · 2024-09-19 · 1 citations

    preprintOpen accessSenior author

    Generative AI has shown its values for many software engineering tasks. Still in its infancy, large language model (LLM)-based proof generation lags behind LLM-based code generation. In this paper, we present AutoVerus. AutoVerus uses LLMs to automatically generate correctness proof for Rust code. AutoVerus is designed to match the unique features of Verus, a verification tool that can prove the correctness of Rust code using proofs and specifications also written in Rust. AutoVerus consists of a network of LLM agents that are crafted and orchestrated to mimic human experts' three phases of proof construction: preliminary proof generation, proof refinement guided by generic tips, and proof debugging guided by verification errors. To thoroughly evaluate AutoVerus and help foster future research in this direction, we have built a benchmark suite of 150 non-trivial proof tasks, based on existing code-generation benchmarks and verification benchmarks. Our evaluation shows that AutoVerus can automatically generate correct proof for more than 90% of them, with more than half of them tackled in less than 30 seconds or 3 LLM calls.

  • Long non-coding RNA KB-1460A1.5 promotes ferroptosis by inhibiting mTOR/SREBP-1/SCD1-mediated polyunsaturated fatty acid desaturation in glioma

    Carcinogenesis · 2024-02-23 · 11 citations

    article

    Ferroptosis is a new form of regulated cell death caused by the iron-dependent peroxidation of phospholipids and is related to cell metabolism, redox homeostasis and various signalling pathways related to cancer. The long non-coding RNA (lncRNA) KB-1460A1.5 acts as a tumour suppressor gene to regulate tumour growth in gliomas, but its molecular network regulatory mechanism is still unclear. In this study, we found that KB-1460A1.5 can induce ferroptosis in glioma and enhance sensitivity to RSL3, a ferroptosis inducer. Tandem mass tag proteomics and nontargeted metabolomics suggest that KB-1460A1.5 affects polyunsaturated fatty acid metabolic processes. Gas chromatography-mass spectrometry-based medium- and long-chain fatty acid-targeted metabolomics confirmed that upregulation of KB-1460A1.5 decreased the levels of monounsaturated fatty acids, oleic acid (OA) and palmitoleic acid (PO) in glioma cells. The addition of OA and PO restored KB-1460A1.5-induced cellular ferroptosis. Molecularly, KB-1460A1.5 inhibited the mammalian target of rapamycin signalling pathway to suppress the expression of downstream sterol regulatory element-binding protein 1 (SREBP-1), thereby attenuating the stearoyl-CoA desaturase-1 (SCD1)-mediated desaturation of polyunsaturated fatty acids. Finally, an animal model of subcutaneous glioma confirmed that KB-1460A1.5 could inhibit tumour progression, SREBP-1/SCD1 expression and ferroptosis. In conclusion, increasing the expression level of KB-1460A1.5 in glioma can promote the induction of oxidative stress and ferroptosis in cancer cells through SREBP-1/SCD1-mediated adipogenesis, demonstrating therapeutic potential in preclinical models.

  • Automated Proof Generation for Rust Code via Self-Evolution

    arXiv (Cornell University) · 2024-10-21

    preprintOpen access

    Ensuring correctness is crucial for code generation. Formal verification offers a definitive assurance of correctness, but demands substantial human effort in proof construction and hence raises a pressing need for automation. The primary obstacle lies in the severe lack of data-there is much fewer proofs than code snippets for Large Language Models (LLMs) to train upon. In this paper, we introduce SAFE, a framework that overcomes the lack of human-written proofs to enable automated proof generation of Rust code. SAFE establishes a self-evolving cycle where data synthesis and fine-tuning collaborate to enhance the model capability, leveraging the definitive power of a symbolic verifier in telling correct proofs from incorrect ones. SAFE also re-purposes the large number of synthesized incorrect proofs to train the self-debugging capability of the fine-tuned models, empowering them to fix incorrect proofs based on the verifier's feedback. SAFE demonstrates superior efficiency and precision compared to GPT-4o. Through tens of thousands of synthesized proofs and the self-debugging mechanism, we improve the capability of open-source models, initially unacquainted with formal verification, to automatically write proofs for Rust code. This advancement leads to a significant improvement in performance, achieving a 52.52% accuracy rate in a benchmark crafted by human experts, a significant leap over GPT-4o's performance of 14.39%.

  • Keeper: Automated Testing and Fixing of Machine Learning Software

    ACM Transactions on Software Engineering and Methodology · 2024-06-13 · 2 citations

    articleOpen accessSenior author

    The increasing number of software applications incorporating machine learning (ML) solutions has led to the need for testing techniques. However, testing ML software requires tremendous human effort to design realistic and relevant test inputs and to judge software output correctness according to human common sense. Even when misbehavior is exposed, it is often unclear whether the defect is inside ML API or the surrounding code and how to fix the implementation. This article tackles these challenges by proposing Keeper, an automated testing and fixing tool for ML software. The core idea of Keeper is designing pseudo-inverse functions that semantically reverse the corresponding ML task in an empirical way and proxy common human judgment of real-world data. It incorporates these functions into a symbolic execution engine to generate tests. Keeper also detects code smells that degrade software performance. Once misbehavior is exposed, Keeper attempts to change how ML APIs are used to alleviate the misbehavior. Our evaluation on a variety of applications shows that Keeper greatly improves branch coverage, while identifying 74 previously unknown failures and 19 code smells from 56 out of 104 applications. Our user studies show that 78% of end-users and 95% of developers agree with Keeper’s detection and fixing results.

Recent grants

Frequent coauthors

Labs

Education

  • Ph.D.

    University of Illinois, Urbana-Champaign

    2008

Awards & honors

  • ACM Distinguished Member (2019)
  • Alfred P. Sloan Research Fellow (2014)
  • Distinguished Educator Alumnus from Department of Computer S…
  • NSF Career Award (2010)
  • Google Scholar Classic Paper 2017
  • Resume-aware match score
  • Save to shortlist
  • AI-drafted outreach

See your match with Shan Lu

PhdFit ranks faculty by your research interests, methods, and publications — grounded in their actual work, not templates.

  • Free to start
  • No credit card
  • 30-second signup