About

Investigating the development and application of software engineering techniques to improve systems involving complex aspects such a concurrency, synchronization, and exceptional situations (e.g., concurrent Java programs, medical procedures). Formally defining such systems and then applying static program analyses (e.g., model checking) to the system definitions to help prevent defects, vulnerabilities, or inefficiencies in the systems. Recently investigating how to use the analyzed system definitions to support real-time monitoring and guidance for the human performers (e.g., medical professionals) to help achieve the desired system outcomes. For evaluation purposes, collaborating with technical and non-technical stakeholders to put together real-world case studies and to apply such techniques to them.

Volunteering to mentor undergraduate students in computer science research through the REU (Research Experiences for Undergraduates) program as well as the University of Massachusetts Amherst Honors program.