I'm a second year Ph.D. student with the programming languages research group at Penn. My battle is against the ever-growing complexity of software. My weapons of choice are the theory and design of programming languages and tools that increase programmer productivity and software reliability in spite of that complexity.
Previously, I was a program manager for the Visual C++ compiler front-end. As much as I love higher-level programming languages and abstractions, let me tell you that native code is still alive and kicking and don't let anyone else tell you otherwise.
And before that, I received my undergraduate degrees in Computer Science, ACMS, and CHID from the University of Washington.
Research
My research advisor is Steve Zdancewic. We are currently investigating the viability of integrating linear types into a general purpose programming language.Join Diesel
With Craig Chambers, I investigated the integration of Join Calculus-style primitives in the spirit of Polyphonic C# and Cω into Diesel. Our main challenge was ensuring that the semantics of join-style function calls played nicely with the classless objects, multimethods, and static type-checking guarantees of Diesel.
- Peter-Michael Osera. Join Diesel: Concurrency Primitives for Diesel. Undergraduate research thesis. December 2005. [pdf]
-
Presented at the UW-CSE undergraduate research seminar (Winter 2006) [slides (pdf)]
Teaching
I am currently a TA for CIS 262: Automata, Computability, and Complexity.Other courses I've been involved with here at UPenn:
- TA: Introduction to Programming in C# (CIS 399-005, Spring 2009)
- Grader: Automata, Computability, and Complexity (CSE 262, Autumn 2008)
At UW I served as an undergraduate TA coordinator for Stuart Reges. I had the pleasure of helping hire, train, and ...coordinate a rock star group of TAs during the 2005-2006 school year.
Courses I've TAed as an undergraduate at UW:
- Introduction to Formal Models (CSE 322, Autumn 2004)
- Introduction to Algorithms (CSE 421, Winter 2005)
- Computer Programming I (CSE 142, Spring 2005, Spring 2006)
- Computer Programming II (CSE 143, Autumn 2005, Winter 2006)
Focus groups (discussion seminars) I've lead through the CHID department at UW.
- Perspectives on Open Source (CHID 496F, Spring 2005)
- Games and Culture (CHID 496J, Winter 2006)
- Game Design Lab (CHID 496S, Spring 2006)
Software
- A Vim mode for Ott: ott.vim (v1)
Personal
- My blog.
