Web fonts served by Typekit.

Headings and display text are set in P22 Underground, a digitization by P22 Type Foundry of Edward Johnston's legendary London Underground typeface from 1916. This is the direct typographical forerunner to Gill Sans, which is used in my personal wordmark and print materials.

Body text is set in Freight Sans, a humanist sans-serif designed by Joshua Darden in 2005.

Front end

This site is built with hand-coded, standards-focused HTML and CSS on a skeleton provided by the HTML5 Boilerplate and Meyer CSS Reset. Toeholds in the DOM are provided by jQuery, a modicum of backwards compatibility provided by the HTML5 Shiv. All other code is my own.

It has been designed responsively to be viewed in modern browsers and on a variety of devices, with minimal loss in IE8 and less graceful degradation in IE7 and IE6.

I strive to structure my markup in as semantically correct a manner as is reasonable. The practical benefits of this can arguably be minimal, but I figure it also can't hurt. And sometimes it just feels nice to fight on the side of the angels against the forces of entropy.

Back end

Site hosted by ICDSoft.

Portfolio content is served with custom PHP and managed via a series of YAML flat files parsed by sfYaml‎, with typographic enhancements courtesy of PHP Markdown, PHP Smarty Pants and Shaun Inman's Widon't function. The PHP output is cached server-side by a custom stand-alone PHP class heavily inspired by PEAR Cache.

Images, scripts and style sheets are served via custom PHP with pixel manipulations by ImageMagick, PNG compression by OptiPNG, CSS minification by CssMin and JS optimization via Closure Compiler.

None of the above would have been possible without a steady diet of StackOverflow.


Ever a slave to Apple and Adobe, I spend much of my time on my MacBook with my nose buried in Adobe CS/CC products. Photoshop is my general weapon of choice. For web work, SVGs are crafted in Illustrator and the cruft edited out by hand in my text editor.

Code and text edited in Sublime Text 2, images optimized with ImageOptim, files shuttled to and fro with Transmit.