I joined Microsoft as a Software Design Engineer in 1994. I began on Visual FoxPro 3.0, which shipped in mid-1995, and subsequently worked on pulling the database engine out of FoxPro for standalone use in the form of a FoxPro ODBC driver. Over the next several years, we re-packaged the basic client-side database functionality and shipped it in several different forms, most widely as the client-cursor implementation for ADO (ActiveX Data Objects) and OLEDB (OLE Databases). In 1999 I became the development lead for the ADO family of components (ADO, ADOR, ADOX, RDS, etc.) shipping with Windows, Office, SQL Server, and Visual Studio.
I joined Microsoft Research in 2000, starting in the Easyliving group, a ubiquitous computing group using computer vision to build and maintain a live geometric room model. This model was used to enable various smart room and dynamic computing scenarios (such as continually displaying your work on the nearest screen automatically as you move around a room). In 2002 I began working on exploring scenarios for computing on larger surfaces in the Large Display User Experience group (LDUX), which became the VIBE group in 2003. VIBE continues to have many different areas of research, from basic PC user experience questions, to social computing, to novel visualizations and interaction techniques for evolving display and input technologies, to affective computing.
In 2008 I joined Desney Tan and Dan Morris in spinning off a new subgroup of VIBE called the Computational User Experience group (CUE). Over the next 5 years CUE grew to a team of seven researchers working in domains as varied as information visualization, physiological sensing, and home automation, often in conjunction with machine learning. In 2015 several members of our group formed the MSR Medical Devices group, spinning off the development of novel wearable health monitoring devices.