His core interests and expertise encompass model-driven software engineering (MDSE) and algorithm engineering. His work in MDSE has varied from developing model-driven virtualizations of high-tech systems, to generation of efficient algorithm toolkits based on taxonomies of proven-to-be-correct algorithms. More recent work focuses on analyzing large collections of models and extracting variability and commonality information from them. His research in algorithm engineering has focused on pattern matching on text sequences (including natural language text, DNA sequences, and source code), often using finite automata as an efficient (and elegant, and correct) way to represent and process such data. A recent focus in this field is on parallel processing, made possible by multi-core CPUs and networks of computing devices, and made necessary by ever-growing amounts of data.