Ioan Stefanovici

Microsoft Research

21 Station Road
Cambridge, CB1 2FB
United Kingdom
E-mail: t-iostef[at]

I have graduated and moved to Microsoft Research Cambridge!
Click here for my new webpage!


I am now at Microsoft Research Cambridge. I completed my PhD in the Department of Computer Science, University of Toronto, advised by Prof. Bianca Schroeder.

I'm broadly interested in large-scale computer systems and storage. My work so far has focused on improving system reliability, controllability, and programmability, as well as reducing the impact of large-scale systems on the environment.

I received my MSc. from the University of Toronto in 2012, and my H.BSc. from the University of Toronto in 2010 doing a Computer Science: Information Security Specialist with a minor in Mathematics at the University of Toronto Mississauga.

I've had industry and industrial research experience in the form of internships at Microsoft and Google, IBM T.J. Watson Research Center, and Microsoft Research. (see CV for more details).

I am currently supported by a Natural Sciences and Engineering Research Council of Canada Alexander Graham Bell CGS D Doctoral Award.




Microsoft Research Cambridge - Research Intern (May 2013 - August 2013, January 2014 - May 2014)

IBM Research T.J. Watson - Research Summer Intern - Cloud Computing, Virtualization and Data Center Management (July 2012 - November 2012)
  • Researched and prototyped a customer-facing performance and management analytic for cloud environments, offering predictive and "what if?"-type exploration of application performance characteristics.

Google - Software Engineer Intern (May 2009 - August 2009)
  • Designed and implemented services that are available to the entire Google user base for the first public release of Google Apps Script, which enables users to leverage various Google services to automate tasks and increase workflow productivity.
  • Services allowed users to programmatically interact with Google Finance, Google Spreadsheets, and Google Contacts via JavaScript.
  • Improved the security analyzer used by the Google Apps Script server to perform static analysis of JavaScript code as a means of generating a list of security requirements that require user validation.

Microsoft - Software Design Engineer in Testing Intern (June 2008 - August 2008)
  • Created a static code analysis taint-tracking tool used by the Common Language Runtime (.NET runtime engine) team on the Silverlight and 4.0 version releases of the engine, focusing primarily on its new security model.
  • The tool was designed to track the flow of potentially-malicious user input from the public surface of an API into critical regions of managed assemblies like mscorlib.dll. It was used by the CLR team to prioritize security-related fuzz-testing targets.
  • Created fuzz-test scenarios, and made recommendations concerning the highest-priority public surface areas of mscorlib.dll that required security-related fuzz-testing.


I am on the Eurosys 2016 Shadow PC.

I've been a reviewer for SOSP 2015, Usenix ATC 2015, ASPLOS 2015, Eurosys 2014, FAST 2014, Usenix ATC 2013, MASCOTS 2013, Systor 2012.

I was a scribe for the FAST 2014 Programming Committee meeting.

I was the President of the Computer Science Graduate Student Union (the CSGSBS).


I was an Assistant Instructor for CSCC69 - Operating Systems - Spring 2013.

I've been a Teaching Assistant for the following courses:

Miscellaneous Course Projects

Topics in the Design and Implementation of Operating Systems - 2012
  • Designed and implemented a virtualized fault-injection framework based on QEMU.
  • Framework simulated the effects of permanent memory errors in user-specified locations, and was designed to be extended to replay memory error traces on a live system.

Special Topics in Software Engineering: Dependable Systems - 2012
  • Designed and implemented ReconDB, a modified version of SQLite that performs online consistency checking on critical DB metadata to protect itself against bugs in its own codebase.
  • ReconDB's online consistency checks were based on metadata invariants derived from SQLite's built-in offline consistency checker.


I was born in the city of Deva, Romania, where I spent the first 12 years of my life. I moved to Toronto, Canada in 2000, where I've been ever since (ish...; I seem to have developed a thing for travelling at times...)