Our Faculty and Staff
From exploring the intersection of architecture and cyber-physical systems to automatic bug fixing, our faculty work across discplines and borders to take on the real, tough technical challenges inherent to modern software.
Software Engineering Faculty
Jonathan Aldrich
Usable Language Design • Program Verification • Type Systems• Enforcing Software Design
Specializes in usable programming language approaches that aid in reasoning about software systems
Andrew Begel
Human Aspects • Neurodiversity • Accessibility • HCI • Collaboration Tools • Organizational Behavior
Specializes in understanding and supporting software engineering teamwork
Travis Breaux
Requirements Engineering • Software Design • Privacy and Security • Policy Compliance
Specializes in engineering secure systems that meet regulatory requirements
Fraser Brown
Program Correctness • Compiler Verification • Systems Security • Cryptographic Proof Systems • Bug Finding
Specializes in verification and security techniques for complex software systems, including browser JITs and cryptographic compilers
David Garlan
Software Architecture • Pervasive Computing • Self-Healing Systems • Formal Methods
Specializes in architectural approaches for robust adaptive systems
James Herbsleb
Software Teams • Open Source • Collaboration • Coordination • Global Development
Specializes in socio-technical aspects of distributed software development
Eunsuk Kang
Software Design • Assurance • Modeling • Verification • Security • Cyber-Physical Systems
Specializes in design methods for safe, robust, and secure software-intensive systems
Christian Kästner
Software engineering for AI • Supply chain security • Open source sustainability • Variability and reuse
Specializes in supporting the development of complex and large-scale software systems
Claire Le Goues
Software Quality • Defect Detection • Program Analysis • Automatic Bug Repair • AI for SE
Specializes in automated techniques for software evolution and bug fixing
Heather Miller
AI Systems • Language Design • Distributed Programming • Distributed Runtimes • Data Consistency
Specializes in programming models for reliable distributed systems and AI systems
Brad Myers
UI • Programming Environments • API Usability • End-User Programming • DevX
Specializes in human-centered approaches to programming tools and interfaces
Riccardo Paccagnella
Cybersecurity • Privacy • Hardware Security • Systems Security
Specializes in system-level security and privacy protection mechanisms
Rohan Padhye
Program Analysis • Software Testing • Software Security • Distributed Systems
Specializes in automated testing techniques for software reliability and security applied to large-scale systems
William Scherlis
Software Assurance • Security Analysis • Safe Concurrency • Development Tools
Specializes in verification techniques for software safety and security
Bradley Schmerl
Software Architecture • Self-Adaptive Systems • Software Engineering Tools
Specializes in architectural approaches for building adaptive software systems
Mary Shaw
Software Design• Software Architecture • Sufficient Correctness
Specializes in high-level software design and the engineering discipline of software.
Joshua Sunshine
Programming Languages + Human-Computer Interaction • Visualization • Program Analysis • End-User Programming
Specializes in human-centered tools and visualizations that help domain experts build and refine their own software.
Christopher Timperley
Search-Based Software Engineering • Automated Program Repair • Program Analysis • Cyberphysical Systems
Specializes in automated techniques for finding and fixing software defects
Ben Titzer
Systems • Systems programming languages • Compilers • Virtual machines • Managed runtime systems • Higher-level systems that they support
Bogdan Vasilescu
Software Analytics • Social Aspects • Collaboration • Open Source Ecologies • "Big Code"
Specializes in data-driven approaches to understanding software development teams
Chunqiu Steven Xia
Agentic Software Engineering • AI for SE • Automated Program Repair • Software Testing
Specializes in building and evaluating AI-driven systems for software generation, repair, testing, and evolution in real-world codebases
Staff
Connie Herold
Senior Academic Programs Manager
Alisha Roudebush
Academic Program Coordinator