Colin Stebbins Gordon

 [first initial, middle initial, last name]@cs.washington.edu

 http://cs.washington.edu/homes/csgordon/

About Me

I'm a first year PhD student interested primarily in improving software reliability by providing guarantees of interesting and useful properties of programs. I'm partial towards various forms of static analysis or choice of programming abstractions that disallow certain classes of errors (though programming abstractions that guide away from errors are of interest as well). I'm particularly interested in applying these techniques to parallel programs, operating system kernels, and language runtimes. So I study programming languages. I'm part of the programming languages (WASP) and software engineering (catchy name and link coming soon) groups here at UW. In the past I worked a fair bit with operating systems, which is probably how I ended up TAing CSEP551 this quarter.

In the past I was an undergrad at Brown University. While I was there I worked on a few projects and was involved in the Brown PLT group. I worked with Shriram Krishnamurthi, doing some fiddling with a model checking formalism, an attempt at a type system to ensure lock-free data structure implementations are linearizable, and work on type-safe stack inspection for a garbage collector in ML (honors thesis). I also worked with Maurice Herlihy on software and hardware transactional memory. In between all those things I TAed a number of courses, including several introductory courses, the operating systems course, and the upper level software engineering course. After that I spent a bit over a year working on an operating system incubation project at Microsoft before starting at UW CSE.

In my spare time, I tend to pick up hobbies and drop them within a few months, so I've had experience with many, but mastered few. When I was younger I wrestled, played piano, and did Tae Kwon Do. In the somewhat more recent past I've done intramural soccer and softball, guitar, and rock climbing. More recently I got my motorcycle license (and am currently looking to purchase one). The things I've managed to stick with over the years are reading (non-CS), cooking, and bass guitar, though I'm still not so great at that last one.

And now, I will summarize my life as a series of bullet points.

Publications

Refereed

Unrefereed

  • Colin Stebbins Gordon. Type-Safe Stack Inspection for Garbage Collector Implementation. Brown University Senior Honors Thesis. May 2008. Undergraduate Thesis.
    [ abstract / BibTeX | pdf | slides | other honors theses ]
  • Meyerovich, L.A., Weinberger, J.H.W., Gordon, C.S., Krishnamurthi, S.: ASM Relational Transducer Security Policies. Technical Report CS-06-12, Computer Science Department, Brown University, Providence, RI, USA. November, 2006.
    [ abstract / BibTeX | department page | pdf ]
    This report is essentially an extended version of Composition with Consistent Updates for Abstract State Machines

Unpublished Projects

Sadly not everything can make it to the presses (though sometimes this is for the best).

  • Work towards a type system to check linearizability of lock-free data structure implementations (2008)
  • Using hardware transactional memory to reduce power consumption in embedded systems (2007-2008)
  • Dynamic rebalancing of software transactional memory contention management policies based on recent workload (2007)

Industry Experience

  • Microsoft: Technical Strategy Incubation - Kernel developer on an unannounced systems project. Worked on whole-system post-mortem debugging, platform abstractions, interrupt dispatch (scheduler activations), and a variety of other subsystems. (August 2008 - September 2009)
  • Sun Microsystems: Solaris Kernel Group - Intern, merged two processor grouping scheduler abstractions. (Summer 2007)
  • NetApp: Filesystems Group - Intern, designed, documented, and implemented special-purpose filesystem. Resulted in two patent applications, one public so far: WO/2008/133977 a.k.a. PCT/US2008/005333 (Summer 2006)

Honors

Teaching

This site is constantly (albeit slowly) under construction.

Useful or interesting links: