Research applies insights from programming languages, formal verification, and computing education to automations across software development (including specification understanding, planning, code generation, and testing frameworks), with broader interest in how such automations shape the ways humans and society can and should build, understand, and engage with software.