I am a third year PhD student in the Computer Systems and Networks Group at the Department of Computer Science, University of Toronto under the supervision of Prof. Bianca Schroeder.
My research so far deals primarily with improving the performance and reliability of large-scale computer systems running scientific and commercial applications. My interests however also include operating systems, computer architecture, database systems, computer security, and anything interesting/fun.
I received my MSc. from the University of Toronto in 2012 under the supervision of Prof. Bianca Schroeder, 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 experience in the form of internships at Microsoft and Google, IBM T.J. Watson Research Center, and Microsoft Research. (see CV for more details).
September 2012: I presented our work on the effects of temperature on the performance and reliability of data centers at Boston University's Network Reading Group.
August 2012: Our work on DRAM reliability was featured in a Wired article:
Wired: "Your PC Just Crashed? Don’t Blame Microsoft"
July 2012: I am interning at IBM T.J. Watson Research Center until the end of October, working on system performance in a virtualized environment.
May 2012: Our Sigmetrics'12 paper wins the Best Paper Award!
May 2012: Our Sigmetrics'12 paper is featured on James Hamilton's blog "Perspectives" and on Data Center Knowledge:
Perspectives: "Temperature Management in Data Centers"
March 2012: I presented our paper “Cosmic Rays Don’t Strike Twice: Understanding the Nature of DRAM Errors and the Implications for System Design” at ASPLOS 2012.
February 2012: I presented our work on DRAM reliability at the Computer Architecture Lab at Carnegie Mellon's seminar series.
Temperature Management in Data Centres: Why Some (Might) Like it Hot ( PDF | Technical Report | ACM ) Nosayba El-Sayed, Ioan Stefanovici, George Amvrosiadis, Andy Hwang, Bianca Schroeder Best Paper Award Sigmetrics/Performance 2012
Cosmic Rays Don't Strike Twice: Understanding the Nature of DRAM Errors and the Implications for System Design ( PDF | ACM ) Andy Hwang, Ioan Stefanovici, Bianca Schroeder The Seventh International Conference on Architectural Support for Programming Languages and Operating Systems ASPLOS 2012
IBM Research T.J. Watson - Research Summer Intern - Cloud Computing, Virtualization and Data Center Management (July 2012 - November 2012)
Designing and implementing customer-facing performance and management analytics for cloud environments.
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.
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.
Advanced Topics in Database Systems - 2011
Implemented the PAX (Partition Attribute Across) layout for data pages in PostgreSQL.
Goal was to improve query performance by increasing on-chip cache utilization, and investigate the effects of changes in modern CPU architectures (specifically L2 cache size and hardware-level prefetching techniques) on cache locality for read-heavy queries.