I work on creating more secure and reliable software and systems as part of Azure Sphere. My group includes the Operating System Platform, the Engineering Platform, and Checked C teams. We are hiring engineers in all these areas!
The Operating System Platform team charter is to ship the most secure IoT operating system platform and application model in the world. The team works on the OS above the hardware abstraction layer (including the kernel, energy, performance, and storage), application lifecycle, the application programming model, networking and connectivity, and OS platform security.
The Engineering Platform team charter is to empower our development team and device manufacturers to create secure and trustworthy software for IoT devices. The engineering platform is the platform for engineering software across the Azure Sphere product.
Checked C is an open-source project on GitHub that is extending C with static and dynamic checking to detect or prevent common programming errors in C such as buffer overruns, out-of-bounds memory accesses, and incorrect pointer casts. The goals are to improve system security, reliability, and programmer productivity for widely-used C and C++ code bases.
My research interests span compilers, programming languages, operating systems, and performance, with a focus on better programming languages and tools for systems programming. I was a Principal Researcher from 2015 to 2019, where I started and led the Checked C project. From 2014 to 2015, I led the System C# project, an effort to create a version of C# and an implementation suitable for systems programming on Windows. The effort was shelved largely because of incompatibilities between the programming models of C#, C++ and C. The differences were too large to overcome to make this practical at this time. C# is type-safe and uses automatic memory management, while C++ and C do not enforce strong type-safety and use explicit memory management. C++ or C code could corrupt the memory used by C# code, leading to hard-to-debug crashes in the garbage collector or C# code.
From 2007 to 2014, I led the tools team for the Midori project. I was the development lead and then the development manager for the tools team. The team built the technology that enabled the Midori OS to be written almost entirely in C#, including an ahead-of-time compiler, a lightweight runtime system, and the implementation of core OS features such as shared libraries for C#. We built on the work that we did for Singularity. The shared libraries included support for sharing generic code across libraries, something not provided by typical C++ template implementations. This reduced code size for Midori by over 35%. We also focused on reducing code size, improving optimizations for managed code, and reducing costs of managed code such as bounds checking, and ode.
Our work on highly-optimizing ahead-of-time compilation for C# directly inspired the .Net Native product, which shipped in 2014.
From 2001 to 2007, I led the Advanced Compiler Technology group at Microsoft Research. The group was one of the research groups that worked on the Singularity Project. We designed and built the Bartok compiler and lightweight runtime system used in Singularity.