I'm an experienced front end engineer with a background in biomedical science, UX design, data visualization and statistics.



Tableau Shared Widgets (2016)

Dev Talk Slides (PDF)
Developed using React, Typescript, C#, Node, Webpack
Led a four-person development team
Tableau Shared Widgets is a React UI component and tools library. The goal of the project was to unify design and functionality of all web UI controls across Tableau's many web clients and codebases. To accomplish this, we not only needed to build the components themselves, but also the tools and paradigms needed for integration across multiple languages and platforms. The project also included creating a comprehensive visual design system, an interactive demo site, comprehensive tutorials and documentation to encourage adopation.

Tableau Server 9.0 (2015)

Corporate Site
Developed using AngularJS, Typescript, Java, Stylus, Jade
As part of a fifteen-person development team
Tableau Server is Tableau's enterprise content management system (CMS). For version 9.0, the web client and APIs were completely rewritten as an Angular/Java application. I owned design (UX and APIs) and implementation of many features, such as: site and server settings, licensing, initial administrator setup, help, server status, login, error routing, favorites, site logo and trial experience. I also led the effort to optimize the UI for tablets.

ESPN Fantasy Football iPhone & iPad Apps (2012-2014)

Developed using Objective-C, Javascript
As part of a seven-person development team
ESPN's Fantasy Football iPad and iPhone apps were completely rebuilt from the ground up in 2012 and 2013, respectively. For the first time, fantasy players were able to draft teams and use a live scoring 'Fantasycast' interface to follow real world and fantasy games from their mobile devices. Both iOS apps run off the same codebase, but have separate functionality and interfaces.

Sim·TwentyFive (2011)

Live Demo
Developed using D3, R, Javascript
Sim·TwentyFive is an interactive visualization decision support tool for the exploration of physiologically-similar patients developed for physicians in the Pediatric Intensive Care Unit at Children's Hospital, Los Angeles (CHLA). The similarity data of 10,598 PICU patient episodes was provided by Kale et al. at CHLA. Probabilistic clustering (a Gaussian mixture model), bolstered by a maximum a posteriori expectation maximization algorithm (to handle missing values), was applied to the data set, using only discretized physiologic readings as features. Similarity scores were determined using the inter-cluster cosine similarity.

MyNote (2010)

Demo Video
Developed using HighChartsJS, SPARQL, Javascript
Collaborators: Madiha Mubin, Sam King, Jason Ma
MyNote is a temporal-annotation application that is designed to work inside any electronic medical record (EMR) or personal health record (PHR) that adopts the SMART data model. As a PHR application, MyNote allows patients to add temporal notes to any problem, medication or laboratory test in order to self-manage health patterns and drug responses. As an EMR application, MyNote provides an intuitive, interactive timeline of patient history with disease-specific schemes to facilitate physician assessment.

Hyperisk (2010)

Developed using Django, Python
Collaborators: Mike Polcari, Jenny Chen, Chris Longhurst, Scott Sutherland
Hyperisk is a web-based, EMR-integrated, pediatric hypertension diagnosis and treatment decision support tool. Hyperisk can be seamlessly integrated into any EMR or used at home by outpatients.
  • Used daily by pediatricians at Lucile Packard Children's Hospital

Psychiatric Intervention Search System & Ontology (2010)

Developed using Protege, OWL
Collaborators: Beth Percha, Jon Palma, Sam King, Steve Pan
The Psychiatric Intervention Search System & Ontology is a tool for mental health physicians to compare the published evidence between psychiatric drugs (and other treatment modalities), which is predicated on an ontology that was developed from the complete set of psychiatric clinical trials in the Cochrane database.

Analyzing Variation in Expression Profiles and eQTLs for Genes Associated with Schizophrenia Between Cortical Brain Regions (2010)

Single nucleotide polymorphisms (SNPs) that were previously identified as putative causative factors in the polygenic model of schizophrenia by genome-wide association studies (GWAS) were tested in an expression quantitative trait loci (eQTL) statistical analysis to discover differences in expression patterns between the temporal and frontal cortex.

Using Temporal Text Data From an Electronic Medical Record to Build Cohorts for Heart Failure Therapy and Hormone Replacement Therapy (2010)

Collaborators: Yi Liu, Diego Munoz, Steve Pan MD
Using a database of concept unique identifiers (CUIs) from every patient visit extracted from the complete Stanford Hospital EMR (i.e., STRIDE), pre-treatment matched cohorts were built using CUI Tanimoto similarity in order to find the post-treatment CUIs that were most significant for predicting prior drug regimens in both heart failure and hormone replacement therapy patients.


The Road (2010)

Live Demo (music)
Developed using Javascript
An adaption of Cormac McCarthy's novel into a short Oregon Trail-inspired HTML5 game.
  • Featured in Penny Arcade: Extra Credits and TheEscapist.com
NFL Season Path

NFL Season Path (2011)

Live Demo (music)
Developed using D3, R, Javascript
An interactive data visualization tool for exploring the trends for each NFL team from 2002-2010.
  • Featured in ThePowerRank.com