At Scribd, a library subscription service, I’m responsible for the rendering of millions of documents, ebooks, sheet music, and magazines using web platform technologies.

I also serve as Scribd's W3C Advisory Committee Representative, internal standards advocate, and a member of the Epub Working Group.



Thanks to a Shuttleworth Foundation grant, I’ve been developing a set of open-source tools to create print-ready PDFs in browsers or from a CLI.

Paged.js implements the parts of the W3C Paged Media specifications (ie the Paged Media Module, and the Generated Content for Paged Media Module) not yet natively supported by browsers using JavaScript for content fragmentations and re-writing print stylesheets.

→ → View on Gitlab


I lead the development of an open-source library for using ePubs in browsers that came out of my graduate studies at the UC Berkeley School of Information.

Epub.js is now used by many different ebook reading systems from universities to publishers and accessible book providers.

Epub.js provides an interface for common ebook functions (such as rendering, persistence, and pagination) from ePubs and W3C Publication Manifests.

→ View on Github → Try it out at → Book Business Magazine Profile

Web Annotations

I gave a talk for a 2014 W3C Web Annotations Workshop, in which I proposed a note-first approach for reading systems (like EPUB.js), in which the user first creates the annotation body, then anchors it afterward; in order to facilitate note authoring.

→ Annotations in Reading Systems POV → Web Annotations Workshop Report (2014)

Jam with Chrome

Jam with Chrome was a web-based musical project created for Google's Creative Lab, enabling people from all over the world to form a band and jam in real-time inside the browser.

I developed the interface (with interactive guitars, keyboards, and drums) to show off Chrome’s implementation of the Web Audio API.

→ My Case Study on HTML5rocks → FWA / Adobe Cutting Edge Project winner → Read more on