Open Access Publications


  • "How to Write a Great Research Paper" by Simon Peyton Jones. Essential watching for writing research papers.

  • "Politics and the English Language" by George Orwell. A critique of propaganda, it also illustrates the difference between clear, simple, honest language vs abstruse, over-wrought, abstract language. The latter style makes it hard to understand the writer's true meaning, either intentionally (propaganda) or not (poor writing).



Doing Research

Programming Languages Research

Time Management and Organization


Miscellaneous Software

  • Courgette: A compression algorithm for object files that makes Chromium's updates smaller. During my internship at Google I contributed to Courgette, adding support for ELF binaries and the ARM instruction set, and documented its internals.
  • GraphicML: An intermediate language for data charting. I developed this while working at Educational Testing Service.
  • timesheet: A painless command-line time tracker I created during graduate school to see in detail what I was spending (and not spending) time on.
  • podcasts: Scripts to download podcasts from the command-line or via a cronjob.