I’ve done some things

newyorker.com

Groups on Web

Client: Skillshare

My team reinvisioned Skillshare's Groups on Mobile product as a web experience, to increasing engagement through general interest and Top Teacher groups on the Skillshare platform. I managed the team of four engineers who built this project over the course of six weeks, launching ahead of schedule and feature complete. We've seen a solid uptick in engagement, particularly within teacher-hosted groups.

HTML5, CSS3/Sass, Backbone.js, PHP, Webpack, Docker, Amazon Web Services, MySQL

newyorker.com

The New Yorker

Client: Condé Nast

Migrated from WordPress to a Condé Nast-built CMS, The New Yorker relaunched this spring. Working with a small group of engineers, we converted the old site's PHP-based HTML to isomorphic React components, powered by Node.js on Amazon Web Service.

HTML5, CSS3/Sass, React, Redux, JavaScript/ES6, Webpack, Node.js, Docker, Amazon Web Services, MongoDB

View the live site

festival.newyorker.com

The New Yorker Festival

Client: The New Yorker

This three-day conference generated over $1 million in ticket sales and brought top-level talent to New York panels. I built this year's event site, working closely with a product manager and designer, to bring New Yorker's event planners' ideas to life.

PHP, HTML5, CSS3/Sass, JavaScript/ES6, Grunt, WordPress

techfest.newyorker.com

TechFest

Client: The New Yorker

This one-day conference, coinciding with The New Yorker Festival, draws some of the biggest names in tech and science. I built this year's event site, working closely with a product manager and designer, to bring New Yorker's event planners' ideas to life.

PHP, HTML5, CSS3/Sass, JavaScript/ES6, Grunt, WordPress

tidepool.org

Tidepool App

Client: Tidepool

This single-page web app ingests overwhelming amounts of Type 1 diabetes data, from devices such as glucose meters and insulin pumps, aggregating it into comprehensible data visualizations, which help guide treatment plans.

HTML5, CSS3/Sass, JavaScript/ES6, React, Redux, D3.js, Webpack, Node.js, Go

Learn more

vimeo.com/business

Vimeo Business

Client: Vimeo

Vimeo’s newest product tier targets it’s latest burgeoning audience: the enterprise. I led the team that was responsible for building enterprise-grade services into the Vimeo platform, including: granular account access permissions for team collaboration, Google Analytics and e-mail capture/lead generation into the Vimeo player, and integration of third-party e-mail marketing services.

PHP, OAuth2, HTML5, CSS3/Sass, React, JavaScript/ES6, project management

Learn more

vimeo.com/moodscreen

Mood Screen

Client: Vimeo

Vimeo has historically done a "year in review" annual report, but this year we decided to do something different. As a throwback to mood rings of yore, we created Mood Screen to surface all the awesome videos on Vimeo in a fun way. I served as lead on this project, overseeing the front- and back-end work, and ensuring we met our end-of-year deadline.

PHP, HTML5, CSS3/Sass, JavaScript/ES6, Canvas, project management

vimeo.com/blog

The Vimeo Blog

Client: Vimeo

It started as a project to enhance a few things on the current Staff Blog. It turned into an extensive redesign, which merged the Staff Blog and Vimeo Video School, with a completely redeveloped CMS. This was a challenging project, as I had to take two disparate, legacy platforms and turn them into a modern CMS, while battling extensive scope creep and deadlines. Our small team was successful in launching on time and meeting the needs of many departments in the company.

PHP, HTML5, CSS3/Sass, JavaScript/ES6, project management

meetup.com

Meetup

Client: Meetup

Meetup is a social media site of a different nature, striving to allow people to find others in their community (usually strangers) with common interests. My work consisted of front-end development for high-traffic areas of the site, spanning from new member registrations to group discovery and creation. Many of these sections required brainstorming and close collaboration with product managers and designers, usability testing, and quick iterations, to create simple user experiences.

HTML5, CSS3/Sass, JavaScript

technologyreview.com

MIT Technology Review

Client: MIT TR

Technology Review’s flagship site relaunch required extensive rapid prototypes (over 60), for the quickly-approaching deadline. I led the front-end effort building these templates from scratch using modern HTML5 and CSS3 standards, while still ensuring IE7 and 8 users would not have a terrible experience.

I also assisted with integrating these templates into Drupal, brainstormed interfaces and interactions, and oversaw quality assurance testing.

HTML5, CSS3/Sass, JavaScript, Drupal/PHP

EmTech MIT

EmTech MIT

Client: MIT TR

MIT TR produces an emerging technologies conference at MIT. In years past, we linked directly to a video stream on livestream.com. One of my first projects was to build a real-time, event-driven platform that provided video and additional information during each talk. After the conference ends, an on-demand video library allows interested visitors to watch presentations from the two-day conference.

Node.js, Redis, Backbone.js, HTML, CSS

ICEX

ICEX

Client: MIT TR

New Technologies from Spain is a sponsored microsite produced by MIT TR and Instituto Español de Comercio Exterior (ICEX). This re-envisioned site cleaned up years-old HTML, is built in a simplified .NET (C#) template system, and makes frequent use of CSS3 animations—all to provide a better experience.

.NET (C#), CSS3, jQuery, project management

MIT Video

MIT Video

Client: MIT News Office

MIT Video serves as a centralized, curated video portal for all videos pertaining to MIT. I rapidly developed prototypes, then oversaw a small team of developers, building out the front-end and assisting with back-end development. From start to finish, the first phase of this site was built in four weeks.

HTML, CSS, project management

JetBlue Sky's The Limit Challenge

Sky’s The Limit Challenge

Client: JetBlue

Sky’s The Limit Challenge was a JetBlue campaign that allowed TrueBlue rewards members to increase the jackpot by tweeting, liking, and sharing the website. I used Facebook and Twitter APIs to calculate the number of points generated every minute since the campaign launched. The website was hosted on Amazon S3/CloudFront, with the back-end daemon running on an Amazon EC2 instance.

PHP, Facebook SDK, Radian6 SDK (with access to Twitter firehose), jQuery, REST API, Ubuntu administration

Century21 Buyer / Seller Tab Builder

Buyer/Seller Tab Builder

Client: Century 21

Originally, Century 21’s Buyer/Seller tab was used to connect potential buyers and sellers to various resources. Extending this idea, the account producer and I brainstormed a Facebook app which would not only give control to Century 21 headquarters, but also their agents across the country to build a similar tab. This screenshot shows how a simple form-based Facebook app was created, allowing agents to easily customize their own tab.

PHP, MySQL, Facebook SDK, jQuery

Brand Bowl

Brandbowl

Client: Mullen

Brandbowl was built to gauge public reaction to the brands advertised during the Super Bowl, by analyzing sentiment on Twitter. Front- and back-end were developed using jQuery and Django. The complementary mobile site was designed and developed for quick loading. A Python daemon polled the Radian6 API and stored sentiment in a Memcached store. The Django application allowed users to authenticate against Twitter with OAuth and post directly from the site. Coordinated with Boston.com to deploy application on Amazon EC2 instances with load balancing.

Endless Sandwich

Endless Sandwich

Client: Grain Foods Foundation

Designed a back-end system for visitors to submit recipes via Facebook Connect identification. Used Facebook’s OpenGraph API to collect number of likes and comments for each recipe. Back-end returned an XML dataset to the Flash front-end, rendering each sandwich’s unique ingredients. Managed a small team consisting of a front-end and Flash developer.

Type 2 Diabetes Risk Test

Type 2 Diabetes Risk Test

Client: American Diabetes Association

Originally built in Flash, I worked closely with a production designer to re-implement the type 2 diabetes risk test using only JavaScript and jQuery animations. The application was designed to fit within a Facebook tab’s dimensions, allowing the ADA to use it across multiple web properties and on mobile devices.

Recipe Cookbook

Recipe Cookbook

Client: FAGE

Custom-built cookbook and recipe database that allows FAGE fans to submit their own favorites through Facebook Connect. Used Facebook’s OpenGraph API to rank recipes based on Facebook likes. Moderation of recipes is enabled through a custom-built web framework and CMS.

Today's Military

Today’s Military

Client: Department of Defense

I inherited this Django-based website and performed numerous enhancements, including updating videos to use Brightcove (relying on Brightcove’s JavaScript API), lead fulfillment, and SEO optimization. Strict cross-browser testing and Section 508 compliance required, with a strong focus on security and reliability.

FedEx Website

FedEx

Client: FedEx

I was one of four engineers creating the front-end redevelopment of fedex.com. Custom modules built without the use of jQuery, and targeting browsers as old as IE6, made this quite a challenging project. But at 30 million visitors a month, it is also some of my highest profile work.

Extracareercular

Content Management System ×

While in college, I began developing a content management system (CMS) for use at Statler & Waldorf, a student-run art and literary magazine. After college, I was approached by Wee Hours to use this system to power websites it hosts. Working largely alone, I planned and developed the system from the ground up, from front-end to back-end. I often collaborated with external developers and graphic designers, overseeing and integrating their work into the project.

Although currently used by a variety of websites as a CMS, the base system is a more general web application framework, providing a template engine, authentication, database abstraction, logging and log analysis, software update, version control, caching, and a number of other features. The majority of modules were developed to serve the purpose of managing website content, but the underlying framework can be used to develop web-based applications or back-office solutions.

The system was developed to run in a Linux, Apache, MySQL, PHP (LAMP) environment and utilizes new (at the time) technologies, such as Ajax, to provide a desktop application experience. It was built in a modular architecture, using object oriented programming in a custom model/view/controller environment. This allows for sites to easily share common components, while also allowing for customized solutions. I have plans for the system to support externally-developed modules in the future, through documented APIs.

I am rebuilding the system to make use of HTML5/CSS3 and WebSockets and plan on releasing it as open source.

Learn more, starting with the Dashboard.

Additional information is available on the desktop version of this site.

Glance

Glance is an informational display system I have mounted in my kitchen/entryway (it’s a small apartment). It is a real-time, event-driven web app that aggregates various feeds and APIs for an at-a-glance summary of current and upcoming information. While serving a practical purpose, it also is a great platform to keep my skills sharp, learn new things, and try out bleeding-edge technologies.

Built partially on the above CMS and framework, Glance is mainly comprised of a Node.js server, which shares Backbone.js modules between the front- and back-end, manages data sources, and pushes updates out through WebSockets (socket.io). I am using Express for the application framework, a multitude of modules from NPM, and some custom-written ones for my environment. There are also a few Python and Ruby scripts I have written, to keep things interesting. Data is stored in MySQL and MongoDB, with ephemeral information going into Redis.

It also aggregates environmental sensors around my apartment, measuring: light, temperature, humidity, occupancy, bandwidth, and WAN uptime. I have customized a version of Pianobar to push currently playing and upcoming songs, with album art and lyrics.

The front-end is comprised mainly of Backbone.js collections, models, and views. It nicely abstracts updating the DOM when data changes are pushed to the client through WebSockets. The front-end makes heavy use of JavaScript, some CSS3 animations, and Canvas elements.

I had been working on an interface for interacting with widget’s detailed views using a Microsoft Kinect, but have since switched to a Leap Motion. It’s an interesting challenge for creating an interface that doesn’t rely on precise manipulation through cursors, or directly through touch.

Glance acts as a physical notification system, too, signaling alerts through attached LEDs (controlled through an Arduino) and push notifications to my iPhone. This is primarily used for timers, weather updates, and package delivery notifications.

A selection of data sources consumed and displayed: Forecast.io, Foursquare, iCloud (CalDav, Find My iPhone), MTA (and MBTA, when I lived in Boston), Netflix, New York Times, Nextbus, package tracking (FedEx, UPS, USPS), TV Guide, Twitter, and Weather Underground

ST(A)RANNE

I’ve always loved the appearance of IKEA’s STRANNE lamp, but the lamp itself left something to be desired. When plugged in, all 36 individual LEDs stay constantly illuminated. Kind of boring, for such a crazy looking lamp, right? Fortunately, the innards of the lamp are easily accessible. Using an Arduino and a few TLC5940 chips, I’ve turned the lamp into a unique, twinkling illuminator.

I have a few further enhancements in mind: a WiFly shield for information radiation and audio input or microphone for music visualization.

In the long-term future, it would also be cool to retrofit the lamp with RGB LEDs, but the plastic bulbed ends make that a little tricky. Once I’m pleased with the structure of innards, I’d like to design a printed circuit board for the components and make a 3D-printed mounting kit for the inner base of the lamp. I’ll offer detailed schematics, and potentially a DIY kit for purchase.

Thanks!