Work under construction

NYPL Labs R&D* / Digital

I joined the New York Public Library’s “it really shouldn’t exist but it does” Labs R&D group in late 2012. The group had a mandate to extend the library’s special collections through the development of computer vision & crowdsourcing tools. I built a couple iterations of Ensemble, an image-region annotation tool for extracting metadata about theater playbills from recently digitized microfilm. I helped with the Digital Collections reboot and public domain release.

Since early 2016 I’ve been helping to rebuild a core property of the library. More on that soon.

* Labs R&D was quietly dismantled in late 2016 to focus the library’s technical staff on core properties.

Key langauges & tech: Ruby, Mongo, Node, Postgres, ElasticSearch, Tesseract, Opencv

Brooklyn Museum

I spent nearly 6 years at the Brooklyn Museum, leaving in 2012 as Lead Developer. I contributed to dozens of coding projects including building their first comprehensive collection online, their collection API, the voting interface for Click! A crowd curated exhibition and Split Second, and the website and IOS app API for GO, a Brooklyn-wide open studio event.

Key languages & tech: PHP, MySQL, Mootools [fight me], Imagemagick, SQL Server, DTS & SSIS

Varous Freelance LAMP

I’ve built websites I’ve forgotten about at this point, mostly based on PHP & MySQL. Some of them built using FuelPHP, some using Wordpress, and some suffer no framework or discernible methodology. I really like coding and untangling sticky data/system challenges; I frequently forget to bill. Not taking new work.

Key languages & tech: PHP, MySQL, FuelPHP, Wordpress, Macromedia Fireworks [is still the best Web image editor out there], ASP/Access [as required]

MTV Networks

Helped build MTV Networks’ URGE, a digital music subscription service operating inside Microsoft’s Windows Media Player 11. Worked with MS developers in Redmond to refine the interface between host app and HTML page, comprising a dozen hooks to read & write application state. I developed much of the framework interfacing with the application layer, including many of the navigation calls. For much of this project, I was the lead Javascript developer. I also wrote much of the PCI compliant front-end account management code.

Key languages & tech: Javascript, WMP

Various Web Programming

At 15, I dialed on to the Web and kind of lost my mind over the then-exploding community of tinkerers freely exchanging code and information design ideas (mostly without qualification) over a brand new medium. I loved to pick up new tricks and pull at the seams. I made handwritten HTML cheatsheets based on tutorials. I made a site with a clickable image <map/> of my brain and a site about famous vegetarians, their names marqueed across the screen using stolen Javascript (this was years before IE introduced <marquee/>).

[The Web is still mostly a fundamentally social and creative medium.]

Then I shelved books at my hometown library and rebuilt the website roughly 15 times until they approved the [horrible] design. It has been replaced.

In college, in the middle of a Java heavy CS degree, I helped build and looked after a predecessor to This was my first taste of server-side dynamic programming. Also my first office job. I wore a tie every day. No one else did.

Then I picked up a remote contract writing PHP over MySQL, so I learned PHP and MySQL. My CS degree suffered, but I did eventually graduate with a thesis on Ajax design patterns to everyone’s shame.

Key languages & tech: Java, JSP, Postgres, HTML, Javascript