Software Design Engineer, Microsoft Corporation
Hired into the LAN Manager group. When Microsoft decided to
focus development on what became Windows NT, I joined its Network User
Interface group and was in charge of the installation and configuration of
all networking components, both hardware and software. I
helped design the overall setup process for Windows NT. My
primary was design and implementation of a "no questions asked" network
setup protocol involving (insofar as was possible) auto-detection of all
hardware components and automation configuration of the network stack.
The auto-configuration algorithm was written in Prolog (see
Papers for more information). I ported a small Prolog
interpreter into NT and built the necessary software bridges.
Began working with the original Decision Theory Group in Microsoft
Research late in 1993. The group's primary research are was
uncertain (i.e., probabilistic) reasoning in a Bayesian framework.
Initial focus was construction of editing tools for Bayesian belief
networks. Soon began working on collaborative filtering
algorithms, utility-based recommendations and troubleshooting, database
retrieval. Programming in a research organization required using
all available tools, both from inside and outside Microsoft, keeping current
with emerging technologies, blending the requirements of mathematical
algorithms for memory and speed with the realities of existing platforms.
Performed continual enhancement to various research toolkits running on
all Windows platforms. Pioneered usage of XML and in the groups.
Build several applications designed to monitor, record and analyze user
activity, including process activation, keyboard usage and graphical text
Projects required extensive, in-depth knowledge of C/C++, Visual Basic,
COM, ATL, HTML, XML, ODBC, SQL and many other core industry and Microsoft
technologies. Wrote many hybrid applications using Visual Basic
and C++ for maximum flexibility and performance.