I am a research software development engineer in the Programming Principles & Tools group at Microsoft Research Cambridge. My research interests are dynamic and static program analysis, software testing, program correction and specification mining and machine learning. I finished my PhD in 2012 at Chair of Software Engineering, ETH Zurich, under the supervision of Prof. Bertrand Meyer. Bertrand is really a cool person. The first words he told me when I started as a PhD student was "Have fun!" -- I did have a lot of fun during my PhD working on automated software testing and correction at Chair of Software Engineering.
I'm working on two projects, the Bing Code Search project and the PowerPoint assistant project.
The Bing Code Search project (you can try it online) suggests ready-to-use snippets from user’s natural language queries in Visual Studio. I started this project when I was an intern at MSR Cambridge in 2011. The project has been selected to present in TechFest’12, Microsoft Summit’12 and TechFect’14. In 2012, I used this idea to participate in the VentureKick startup competition and got venture capital support in Switzerland. Now, at Microsoft, working together with the VS platform team, we are about to release a Visual Studio addin in DevLabs.
The Bing Code Search Add-in for Visual Studio 2013
In Bing Code Search, we (together with Mukund Raghothaman) used Hidden Markov Model to learn patterns from existing code repositories; used IBM translation model 1 to learn a mapping from natural language words to C# tokens; used Bayesian network to decide the most likely control-flow and variable assignments; used Roslyn to perform data-flow analysis; used FastRank to train a code ranker to outperform Bing’s default ranking for code snippets. Since the data is in large scale, we used COSMOS to process data, Aether to run model training and Azure (websites, worker roles, SQL databases, tables, queues, traffic manager) to host the code suggestion services.
FlashPoint is a PowerPoint addin, which suggests new materials for slide builders. FlashPoint provides zero query experience. The algorithm analyses users‘ current slide to decide to suggest pictures, wiki definitions or to perform fact checking. The poject was selected to present at TechFest’14.
Previously, I was a software engineer at Eiffel Software. I developed a library to launch external processes for the Eiffel language; improved the project navigation system for the EiffelStudio development environment; and developed the new metrics tool to calculate software product metrics. All these code are in the official release of EiffelStudio.