I’m thrilled that our paper On the Reliability of Code Comprehension Proxies has been accepted at ASE 2026. Congrats to Erfan and the rest of the team on a successful human study! See you in Munich!
I’m an assistant professor at the New Jersey Institute of Technology, in the Department of Computer Science. During the semester, you can usually find me in my office (GITC 4314); feel free to come by any time that my calendar says that I’m free. You can also use my self-service “schedule a meeting with me” form, although if you are a prospective student you should read this page first.
My research focuses on making software verification practical for every developer: that is, on making verification a standard part of every developer’s toolkit, in the way that techniques like unit testing or code review are today. My core research interests are focused on two approaches to making verification more practical:
- improving the expressivity of simple verification technologies: making it possible to prove more facts about a program within the constraints that developers actually work under. Examples of this approach include my work on accumulation analysis for resource leaks (ESEC/FSE 2021) and for initialization (ICSE 2020).
- convincing developers of the benefits of verification: by deploying verification technologies in new domains, and by improving the usability of verification. An example of this approach is my work on compliance verification (ASE 2020).
As faculty, my interests have expanded to several related lines of work, including:
- type inference techniques for pluggable type systems, which can help overcome the “annotation burden” barrier to the adoption of lightweight verification techniques. Examples include Checker Framework Whole-Program Inference (ASE 2023) and RLC Inference (OOPSLA 2023).
- program comprehension, and especially whether verifiers can plausibly help us automatically discern where humans will struggle to understand code. This line of work started with a meta-analysis of prior studies that showed a small correlation (FSE 2023).
- indirectly scaling verification by shrinking programs while maintaining analysis behavior via a new technique that we’ve invented called “type-directed slicing” (ISSTA 2025). Our prototype type-directed slicer is open-source, and I encourage you to check it out!
- combining formal methods (especially pluggable typecheckers) with AI code generation tools, both to improve the quality of the output of the models and to help engineers adopt more advanced verification technology. An example of this line of work is NullRepair, which automatically resolves “residual” warnings from NullAway after running type inference (ISSTA 2026).
If any of these lines of work sound exciting to you and you want to get involved, check out my page for prospective students.
I completed my Ph.D. at the University of Washington Paul G. Allen School of Computer Science & Engineering. I worked in the PLSE group under the supervision of Michael Ernst.
Outside of work, I enjoy playing all kinds of games—video, tabletop, board, etc.—skiing, watching baseball and soccer, reading (especially ancient history and science fiction/fantasy), and a little bit of tea snobbery. Some of my favorite games include Civilization, Dungeons and Dragons, and Dominion. I’m a big fan of the Washington Nationals and of the Seattle Sounders.
I’ve made my academic job market materials publicly available: CV Research statement Teaching statement Diversity and Inclusion statement Job Talk: “Verification for working developers”
News
Our paper Verifier Warnings Do Not Improve Comprehensibility Prediction appeared at the Reproducibility and Negative Results track of EASE. Though this works shows that adding verifier warnings to the state-of-the-art experimental ML models for comprehensibility doesn’t make them better, our results actually suggest that the fundamental problem is that those state-of-the-art models just aren’t very good (as the authors of the papers we’re working on top of concluded), and verifier warnings just aren’t enough to fix the problem. More work on this topic coming soon, but you can look at this arxiv paper if you’d like a hint ;)
Our paper LLM-Based Repair of Static Nullability Errors has been accepted at ISSTA. Camera-ready coming soon!
I was honored to receive a Distinguished Reviewer award at FSE this year. Reviewing takes a lot of time, but I think it’s important for us all to do our part to help our community stay healthy.
I’m extremely honored to have won the 2024-25 James A. McHugh Excellence in Teaching for Faculty award. Thanks to YWCC’s selection committee and to my students, without whom there would be no teaching :)
Papers
- On the Reliability of Code Comprehension Proxies
- to appear at Automated Software Engineering (ASE), October 2026
- [bibtex]
- Command Coding: A Methodological Framework for AI-Accelerated Software Development
- to appear at Automated Software Engineering (ASE), Industry Showcase track, October 2026
- [bibtex] [implementation] [artifact]
- LLM-Based Repair of Static Nullability Errors
- to appear at International Symposium on Software Testing and Analysis (ISSTA), October 2026
- [bibtex]
- Verifier Warnings Do Not Improve Comprehensibility Prediction
- International Conference on Evaluation and Assessment in Software Engineering (EASE), Reproducibility and Negative Results track, June 2026
- [bibtex]
- Repairing Leaks in Resource Wrappers
- Automated Software Engineering (ASE), November 2025
- [bibtex] [implementation] [artifact]
- Static Program Reduction via Type-Directed Slicing
- International Symposium on Software Testing and Analysis (ISSTA), June 2025
- [bibtex] [implementation] [artifact]
- A New Approach to Evaluating Nullability Inference Tools
- Foundations of Software Engineering (FSE), June 2025
- [bibtex] [slides] [artifact]
- Lightweight and Modular Resource Leak Checking (Extended Version)
- International Journal on Software Tools for Technology Transfer (SOAP 2024 edition), April 2025
- [bibtex]
- On the Relationship Between Code Verifiability and Understandability
- European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), December 2023
- [bibtex] [artifact] [slides] [talk video]
- Inference of Resource Management Specifications
- Proceedings of the ACM on Programming Languages (OOPSLA), October 2023
- [bibtex] [artifact]
- Pluggable Type Inference for Free
- Automated Software Engineering (ASE), September 2023
- [bibtex] [scripts and data] [slides] [implementation]
- Accumulation Analysis
- European Conference on Object-Oriented Programming (ECOOP), June 2022
- [bibtex] [artifact (data for literature survey)] [slides (pdf)] [slides (pptx)]
- Lightweight Verification via Specialized Typecheckers
- PhD Thesis, University of Washington, Seattle, USA, June 2022
- [bibtex]
- Lightweight Verification via Specialized Typecheckers
- doctoral symposium at ESEC/FSE 2021, August 2021
- [bibtex] [slides]
- Lightweight and Modular Resource Leak Verification
- European Software Engineering Conference/Foundations of Software Engineering (ESEC/FSE), August 2021
- (note that this version of the paper has been updated to correct a minor error in table 3)
- [bibtex] [artifact (scripts and data)] [slides (pdf)] [talk recording]
- Continuous Compliance
- Automated Software Engineering (ASE), August 2020
- [bibtex] [artifact (scripts and data)] [slides (pdf)] [slides (pptx)] [key-length checker] [crypto-policy checker] [bucket-compliance checker] [no-literal checker]
- Verifying Object Construction
- International Conference on Software Engineering (ICSE), May 2020
- [bibtex] [code] [artifact (VM image)] [talk video] [slides (pdf)] [slides (pptx)]
- Compile-time Detection of Machine Image Sniping
- ASE 2019 Student Research Competition, Graduate Division, November 2019
- Won 1st place at ASE ‘19’s Student Research Competition
- [bibtex] [slides (PDF)] [poster (PDF)]
- Lightweight Verification of Array Indexing
- International Symposium on Software Testing and Analysis (ISSTA), July 2018
- [bibtex] [slides (PDF)] [slides (PPTX)] [artifact] [docker image]
- Combining Bug Detection and Test Case Generation
- FSE 2016 Student Research Competition, Undergraduate Division, November 2016
- Won 1st place at FSE ‘16 and 3rd place in the SRC Grand Finals
- [bibtex]
- Combining Bug Detection and Test Case Generation
- Technical Report, September 2016
- [bibtex]
Teaching
Spring 2026: CS 485/698: AI-Assisted Software EngineeringFall 2025: CS 490: Guided Design in Software Engineering
Spring 2025: CS 485: Compilers
Fall 2024: CS 490: Guided Design in Software Engineering
Spring 2024: CS 684: Testing and Quality Assurance
Fall 2023: CS 490: Guided Design in Software Engineering
Spring 2023: CS 490: Guided Design in Software Engineering
Fall 2022: CS 785: Practical Program Analysis
Students and Alumni
This section lists all of the past and present PhD students that I've supervised, and a selection of past undergraduate and masters students who have stayed in academia after working with me. If you're a past undergraduate or masters student and you think you should be on this list, send me an email.Kazi Amanul Islam Siddiqui, PhD student, 2023-present
Erfan Arvan, PhD student, 2023-present
Loi Nguyen, undergraduate student, 2022-2024 (PhD at UC Riverside since Fall 2024)
Professional Service
Program Committee member, PLDI 2026Program Committee member, FSE 2025-6
Sponsorship Co-chair, SPLASH 2024-5
Program Committee member, ISSTA 2023-25
Student Research Competition judge, ESEC/FSE 2023
Co-chair for Student Volunteers, ISSTA 2023
Student Research Competition judge, PLDI 2023
External Review Committee member, OOPSLA 2022-23
Artifact Evaluation Committee member, PLDI 2020
Program Committee member, testing tools track, ICST 2020
Artifact Evaluation Committee member, VMCAI 2020
Funding
- Collaborative Research: SHF: Small: Verification-guided Assessment and Reduction of Code Complexity
- $600,000 from the NSF CCF over 3 years (my share $300,000), July 2024
- Collaborative Research: SHF: MEDIUM: General and Scalable Pluggable Type Inference
- $900,000 from the NSF CCF over 4 years (my share $450,000), June 2023