Front-end engineer for Nextdoor.com, the Nextdoor Agency Platform, and internal tools.
Android core engineer and React Native platform engineer.
Front-end engineer for Google Developer Console. The Developer Console replaces the APIs Console and the App Engine admin console as the single interface to all of Google's developer offerings.
Software engineer for the APIs Explorer. The APIs Explorer is an entirely browser-based web app that uses Google's Discovery API to provide a playground for all of Google's APIs.
Engineer and Support Engineer on Sencha GXT (formerly Ext GWT). GXT is a user interface toolkit built on GWT (formerly Google Web Toolkit) that provides a variety of user interface widgets and data presentation elements not provided by GWT.
Engineer on the Java port of the AT&T API Platform, a Servlet-based translation of a Ruby on Rails service.
2004–2009: B.Sc. in Computer Science; graduation with distinction
Specialisation in human-computer interaction, including the principles of HCI, techniques in interface prototyping, and user research and data collection.
Currently undergoing maintenance
Conapp helps people at conferences find each other. In indoor venues and in close quarters, traditional checkin and geolocation apps don't represent fine enough detail for team members to find each other.
By letting users enter their location as free text, updates can be much more descriptive and can include locations not officially part of the venue. For example, a user can update their location as “Panel Room B”, “Hilton Lobby”, or even “Chipotle on 4th”.
Conapp is composed of a Go-based server backed by PostgreSQL, and frontends on web, iOS, and Android. iOS and Android users receive push notifications about location updates. (The backend also supports SMS through Twilio, but this option has been retired.)
This resume is built on Bootstrap 3 and is available on GitHub.
Talking stick is a Go App Engine app developed as a 20% project to facilitate the polite sharing of resources at Google. There are often shared test instances of apps like the Developer Console. By using Talking Stick, an engineer can claim this instance for exclusive use for a configurable amount of time. This triggers notifications via an internal chat system and email.
This IRC bot watches conversation go by in channel and expands JIRA tickets for configured projects when they are mentioned.
This bot was written in Python. It uses suds to access resources from the JIRA SOAP API.
This IRC bot polls JIRA Studio, later Atlassian OnDemand, for changes in issue status and for the status of automated builds.
This bot was written in Python. It originally used urllib2, then later requests, both to request resources from the JIRA REST API and to send messages using the HipChat API.
JForum is an implementation of a basic web forum in Java Servlets/JSP. We developed it in a four-person team as the final project for Advanced Software Engineering (CPSC 410 UBC) for the fall 2008 term.
The system uses MySQL, Java EE (Servlets, JSP, JDBC), and HTML, CSS, and JQuery on the frontend.
We developed under the waterfall model, including writing of specifications and user testing (grading).
This is a BitTorrent-like peer-to-peer filesharing system that is more robust to cases where sources for a piece of a file are scarce or missing. We use the Parity Volume Set format – popularised in Usenet binary newsgroups – to generate check segments that can act as wildcards. These can correct for any missing segment of that size that is no longer available from any peer on the network. Once a full set of source files is obtained, any check segments not downloaded can be generated locally. Best of all, this system could be overlaid over existing protocols, such as BitTorrent.
I worked on a team of three students to develop Rareshare as the Distributed Systems (CPSC 416) term project for fall 2008.
My contributions on StackOverflow
My writing on Medium
Head First Design Patterns
Have tried Objective C, Haskell, Prolog
Comfortable using GWT, Sencha GXT, servlets, Swing, Django, Jinja 2, Flask, AngularJS, Closure Library, Bootstrap
Have some experience with SQLAlchemy, JDBC
5684 Bay Street