I joined Microsoft Research in November 1992, fresh out of school.
I got my education at DIKU, the Department of Computer Science at the University of Copenhagen (Denmark). My thesis project was the construction of an online partial evaluator for an object-oriented imperative language (with Morten Marquard).
At DIKU I worked on programming language issues for fun and credits and on distributed operating systems issues as a research assistant.
One thing I did in the programming languages area, was to develop a data flow algorithm doing polyvariant closure analysis over infinite abstract domains. The general insight is that widening of abstract values to ensure termination is only necessary in loops. Of course, identification of loops requires the results of a closure analysis, so we have a chicken and egg problem. The algorithm uses dynamic loop detection and a dynamically maintained mapping for widening to ensure termination. The technique is applicable to other polyvariant analyses and can be used when very high precision results are desired. The work is described in an unpublished paper with Morten Marquard.
As a research assistant I worked on the Emerald distributed object-oriented system. Emerald supports both object and thread mobility on a network of workstations. Originally, Emerald only worked on a set of homogeneous workstations. I developed support for object and thread mobility between heterogeneous workstations even though Emerald threads execute native machine code. It took us a couple years to get our act together and write the SOSP'95 paper about this work.