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).



  • "How to Give a Great Research Talk" (2016) (2014) by Simon Peyton Jones. Excellent advice on what makes a great talk, delivering the key insight, limiting complexity, focusing on the audience, developing motivation, flow, etc.

  • "Even a Geek Can Speak: Low-Tech Presentation Skills for High-Tech People" by Joey Asher. Great book, found via Matt Might's academic presentation tips

Doing Research

Time Management and Organization

Time Management” by Randy Pausch.

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.