Education:
I completed my Ph.D. in Computer Science at Cornell University in May of 2004. My
dissertation, entitled "An efficient, unifying approach to simulation
using virtual machines", showed that it is possible to create a
simulation system that can execute discrete event simulations efficiently, by
performing simulation-specific optimizations transparently, yet do so using
only a standard systems language and its runtime. I also built such a system
using Java, called JiST (Java
in Simulation Time). In general, my research interests
lie in the areas of distributed systems, databases, languages, networking, and
edge (or ubiquitous) computing.
I received my M.Sc. in May 2002, for the design and
development of MagnetOS (Mobile
Ad hoc Network Operating System), a distributed
operating system for sensor networks that enabled power-aware, adaptive, and
easy-to-develop sensor networking applications.
In tandem with my research, I completed an MBA at the JGSM (Johnson Graduate School of
Management), which I received in December 2002. I am particularly
interested in economics, finance, and strategy.
Previously, I studied at the University of Toronto where I received my
Honours B.Sc. combining studies in Computer Science and Biology, along with some research and work opportunities.
Teaching:
Teaching is an experience I recommend to everyone. The art of communication
and the ability to teach are important in any discipline.
Toronto: As an undergrad, I TA'ed for csc108 (Intro. to
Computer Programming), csc148 (Intro. to Computer Science), csc258 (Computer
Organization) twice and csc270 (Fundamental Data Structures and Techniques).
I was selected by the student and faculty body to receive a University of
Toronto teaching award.
Cornell CS: I designed a new curriculum and was twice the
lecturer for cs202 (Transition to Java). I also designed and taught cs433
(Database Practicum) and assisted in the teaching of cs432 (Introduction to
Database Systems), among other courses. I was a teaching assistant for cs100
and cs514 (Distributed Systems). In the summer of 2003, I co-taught cs414
(Operating Systems). My syllabi for cs202, cs433 and
cs414 are available.
Cornell JGSM: While at the Johnson School of Management,
I co-designed and taught nba685 (Electronic Business) with Professor Alan
McAdams.
Mentoring:
It has been my pleasure to advise, mentor and work with some very hard-working,
intelligent students on a variety of projects:
Mark
Fong
JiST-event debugger
Edwin
Cheung
SWANS-field GUI
Clifton
Lin
SWANS-AODV
Ben
Viglietta
SWANS-DSR
Kelwin
Tamtoro
SWANS-TCP
Daren
Zou
GloMoSim-ZRP
Vlad
Muste
stock analysis language
Stephen
Miller
stock analysis language
Competition:
IBM Linux Scholar Challenge 2002: The contest
was an IBM initiative to futher promote and support Linux development
efforts among college students. For my entry, I wrote rImap, a generic 3-way mail
replication engine. I started working on the idea a few months prior, to
satisfy my personal email needs, and then improved on the basic
implementation for the actual contest submission. I was surprised to learn
that there were 1462 submissions! Here are some related press releases: contest,
entries,
editorial. Of
course, it didn't hurt to get an IBM Thinkpad T23 laptop for my
efforts. That's my second free computer from IBM!
ACM '97: Each year the ACM
holds their annual programming contest. We (myself, Paul Leventis,
Michal Karczmarek) competed as the "UofT B" team, and came 6th in the
regionals. If you are interested in practicing, here is a good archive to start with.
Footprint-IBM Java contest: The Headstart contest in
Java was an initiative of Footprint Software, an IBM subsidiary, back in the
days of Java's infancy. Entrants were to write a Java application in one of
three categories (networking, user interface or open). I wrote and entered a
communication-oriented application, and won myself a fully loaded
Aptiva S90!
University of Toronto Inter-Campus Programming Contest: 1st individual
university-wide contestant for two consecutive years.
Canadian Association of Physics contest: 1st in school, 30th in
province, with honourable mention.
Waterloo Sir Isaac Newton Physics contest: 2nd in school.
Waterloo Descartes Mathematics contest: 2nd in school.
Awards:
Fully supported for the entire duration of my PhD and MBA studies
Recipient of Daniel Berlin Memorial Scholarship for Computer Science
Received Rose White Academic Scholarship
University of Toronto National Scholarship Book Award and entrance
scholarship
Received University of Toronto and Cornell Computer Science Teaching
Awards
On Dean's list throughout undergraduate studies
Courses:
Selected courses that I have taken during many years of study.
Graduate (Computer Science, Cornell University): Advanced
systems, Adaptive systems, Distributed systems, Distributed computing,
Networks, Replicated data, Advanced programming languages, Reasoning about
knowledge, Analysis of algorithms, Theory of computing
Business (Johnson Graduate School of Management, Cornell
University): Micro-Economics, Finance, Financial Statement
Analysis, Corporate Financial Policy, Corporate Governance, Strategy,
Management Consulting, Operations, Logistics management, Financial Accounting,
Cost Accounting, Marketing, Entrepreneurship, Leadership, Management of
Organizations
Undergraduate (Computer Science, University of Toronto):
Data Structures and Algorithms, Databases, Programming Languages, Formal
Languages and Automata, Complexity, Compilers, Artificial Intelligence,
Intermediate Logic, Computer Organization, Calculus I and II, Probability,
Statistics I and II, Discrete Mathematics, Combinatorics, Linear Algebra I
and II, Numerical Analysis, Numerical Optimization
Undergraduate (Biology, University of Toronto): Biology,
Microbiology, Cell Biology, Molecular Biology, Immunology, Chemistry,
Organic Chemistry, Biochemistry, Physics
Some of the presentations that I gave in various classes are available: cs714 (Distributed Systems), cs632 (Advanced Database Systems), cs614 (Advanced Systems), and Systems Lunch.