
Research Developer
Research Areas
New Models of
Programming
Exploring new ways of building applications, from prototypes to shipping products. Rethinking the language, application model, runtime, tools, and team structure needed to meet the demands of modern applications. How to better support the role of interaction design, how to build applications faster 10-100x faster.
New Models of
Assistance
Making application features more discoverable, learnable, and automatable. Can a Natural Language Agent help the user sort thru application features and their unexpected behaviors? Can a “User Model” be created to improve user interaction, and the teaching of application concepts to the user?
New Shell Models
Making the operating system Shell work better for the user. Bringing PIM (Outlook) data and tasks to the top of the user’s experience. Shaping the Shell around the user’s activities.
Cognitive Foundations
What are the cognitive models for working with applications? What, at the cognitive level, makes working with Applications hard? What are the dynamics of user frustration and joy, as they work with applications?
Background
Before joining Microsoft Research, I worked as a senior developer at Microsoft and other companies working on programming tools (compilers, interpreters, IDE’s, frameworks), OS internals, database systems, and 3D graphics/animation. The products I helped ship include dBASE, C++ Builder, Visual C++, and Windows XP.
Current Projects:
DynaVis – a data visualization and interaction framework. First version includes charting tools with the ability to animate between data changes and view changes, the ability to directly interact with the visual data, and the ability to easily build composite charts from simple charts.
TapGlance – a new data-centric, notification-aware shell for the phone, based on a consistent animated navigation scheme using the 1-9 keys of the phone.
Triage – an email/browser based shell that helps users schedule their time on tasks and helps minimize the damage when things go wrong.
Papers
EasyThead – a Visual Studio add-in that allows the programmer to mark C# methods (using attributes) as “foreground” or “background” for easily adding threading to applications.