He has experience in both pure research and industrial software development. His early research focused on the semantics of inheritance in object-oriented languages, formalization of mixins, and polymorphic type systems for object languages. He is currently working on model-driven development, interfacing programming languages and databases, distributed computing and web services, type theory and data abstraction.