Software developer based in Portland, OR.
Elsewhere & otherwise
Page Builder is the content editing system for the re-launched TED.com. With rich-text editing tools and widgets, staff can create complex, dynamic site pages. I was the lead engineer responsible for building this system.
Page Builder's content editor is conceptually inspired by the rich-content editor Sir Trevor. In the Page Builder model, a page is a layout with editable regions that contain an ordered series of content modules called blocks.
Unlike many WYSIWYG editors, Page Builder does not output HTML; rather, each module knows how to transform "what you see" into Markdown-formatted strings within JSON. Page Builder is rendering-neutral.
Page Builder also includes page previewing, revision history, and tools for navigation and URL management.
Technologies: Ruby on Rails, Sass, Haml, jQuery, Backbone.js, Redis, Capistrano, MySQL, MongoDB.
Inside is TED's company intranet website. It's a portal into a variety of information and tools that help the staff do their jobs better. Inside was my first big project after joining TED's engineering team.
A few of its features, as shown in the screenshot:
Inside also includes a bunch of other goodies, such as employee calendars, a feed of activity on TED.com, and an aggregate analytics page for the daily talks.
Technologies: Ruby on Rails, Sass, Haml, jQuery, Sphinx, Delayed Job, Capistrano, MySQL.
Two of TED's key initiatives, TEDx and TED-Ed, have large communities that produce video content which TED publishes on YouTube. I helped replace this formerly manual process with a self-serve, automatic one integrated with TED's digital asset management system.
Videos are uploaded to intermediate hosting, metadata is collected, content is validated and approved, and then videos are transferred to YouTube's servers asynchronously. Videos can then be managed directly by community members.
Technologies: Ruby on Rails, Sass, Haml, jQuery, Active Admin, Resque, Capistrano, MySQL.
Several key metrics for TED are spread across different services: Graphite, Google Analytics, Kibana, Ganglia. During my tenure as TED's interim web analyst, I built Dashface to help me pull together — and display — data from all these sources in a simple, flexible way.
Technologies: Ruby on Rails, CSS, HTML, jQuery, Flot, Capistrano.
As TED's interim web analyst, I built Motley Metrics to collect, aggregate, and remap data from TED's social media accounts and other third-party services.
Motley Metrics collects data from Twitter, Facebook, YouTube and other APIs on a daily basis, then exposes the aggregates via a simpler API from which other internal services can pull reports. It also performs data reductions in the background, such as calculating the viewer dropoff rate for talks by analyzing server logs.
Technologies: Ruby on Rails, MySQL, Capistrano.
As TED's QA Lead, I wrote a small framework for running integration tests against TED.com during a period of time in which a variety of infrastructure upgrades and service changes were occurring.
With Jacuzzi, integration tests and fixtures were stored in a shared code repository. A command-line tool was provided for running the test suite. It could target specific environments or feature sets.
Technologies: Ruby, RSpec, Selenium, Capybara.
WikiTrivia is a simple website featuring trivia prompts based on random articles from Wikipedia. The prompt is displayed for a few seconds, and then the answer. (The first few lines of the article summary are processed to form the prompt, and the article subject is the answer.)
Serincipity, my first deep foray into Ruby on Rails, was a book discovery web application that featured the opening sentences of books. Opening sentences from books could be browsed, searched, or filtered by subject matter and several other attributes. Users could also submit their own original first sentences.
Serincipity was integrated with Amazon, Google Books and the Library of Congress for title and ISBN matching. Thumbnails and additional metadata were displayed. Users could also rate, post reviews, and suggest their own modified versions of the opening lines.