Community Contributions

BART chose to stop publishing daily crime reports, and turned it into an email list which requires approval. This site is an attempt to bring back this public information.
Featured in SF Chronicle, SF Weekly, KRON4 News, KTVU Channel 2 News, and East Bay Times.

HTTP Strict Transport Security (HSTS) is a web security standard implemented by browsers via a Response header which instructs the browser to send subsequent requests to this particular URL over HTTPS, even if the original request was made using HTTP. When a browser receives a HSTS instruction, that instruction is retained no matter what. Even if you go incognito or private. This is a proof of concept self-hosted application which will lay a 'super cookie' using the HSTS web standard.

(under development)
A command-line focused calorie tracker which focuses on simplicity, privacy, uptime, and open source. I started this project in early 2016 as a solution for people who just want a simple way to log their calories/fitness without using all the silly apps that are available today. I'm working on this project daily and plan to release it in Summer, 2016.

A podcast calendar for listeners to have a resource for finding episodes of my favorite radio show.

Listeners of the popular radio show "The Armstrong and Getty Show" were constantly having trouble finding episodes of the podcast available online. There was no clean and easy way to find episodes. I made this site as an attempt to simplify navigation and make episodes easily searchable.

A web application which allows users to sign up and receive a daily bit of inspiration from Reddit's ShowerThoughts subreddit. Pulls the top post of the day and sends it to all subscribers.
Featured in Wired Magazine's Gear section:
http://www.wired.com/2015/08/4-new-apps-use-shower-texts-bar-roulette/

A Chrome Extension which allows you to draw pictures in your GitHub heat map.

This is a Chrome extension which will allow you to freely draw on your GitHub heat map. You can then export your drawing to a script containing a git commit log. Once you've run and pushed this script to a new repository, your commit log will match the drawing you made. Listed on GitHub's Trending Repositories on the day it was released.

My resume itself was a project of its own. Written in Python/Django - it makes it way easier to maintain my profile. And since all the data is stored in a database - it is easy to export my resume in any format.

This is a Chrome Extension which will randomly Rick Roll you.
Whenever you visit a YouTube page, you'll have a 1 in N chance of having the video element replaced with a Rick Roll. The value of N is 6 by default but you can configure this to whatever number you choose.

This library was designed to be an easy way to check text for inappropriate content. It includes a basic word list and can be used with custom word lists.
This package has been submitted to PyPI and can be installed with a simple: pip install profanity

A utility to read map points from email attachments and push them to MyFord Touch / SYNC services.

The intent of this utility is to make it easy to send web points from a phone to MyFord Touch (Sync). Currently they have a app that is supposed to do this called Sync Destinations. But it's horrible. The map data it uses is bad and they should feel bad. This allows me to use my native Maps application and just share the point. I email it to an email address, and this script checks that mail address at a regular interval. When it sees a new message, it grabs the map point (VCF file), parses it, then sends it to the web service.

Experience

Zenefits

When joining, Zenefits had a test suite of 13,000 tests - which grew to over 20,000 tests in the time I was there. The entire test suite would take well over 50 hours to run in its entirety.
My mission was to decrease the time necessary to create a full developer feedback loop. If a developer wants to test their branch, they should be able to merge into master in the shortest amount of time possible.
I developed an intelligent test planning service, dubbed "Gondor", which would devise a test plan based on data points about the branch to be tested. Some of these points of information were:
Code Coverage - look at the lines of code the branch touched, and compare them to a full coverage build of the test suite. If your branch touches a line of code shared with a test - run it.
Modules - if your test is committed to a certain module, I'm more likely to run the entire test suite for that given module.
Test History - keeping close metrics of each individual test. If this test has never failed, does it have any value? Are we just asserting that 1 == 1? Maybe it's not worth running.
Failure combinations - does this test always fail when another, less expensive, test fails? If so, maybe just run the less expensive test.
and of course Test Runtime - does this test take ten minutes to run? Combining this with other factors might make us deem this test unnecessary to run.
All of these factors were combined to add weights to each test for a given branch, and come up with a time-boxed test plan - a best guess for a test run which could allow us to safely merge to master.
The project was a huge success, Zenefits plans to open source it at some point, and I'm still on the hook to write a formal blog post about the whole thing :)

Sorry about the horrible formatting of this entry. I really need to update my resume to accept markdown properly.

Shape Security

Created a dummy web application, in Flask, containing page fixtures of every conceivable web quirk that might exist on a client site. Test Authors would write tests against these fixtures using page models.
Some features:
- A "stage" which can be set via REST. Subsequent calls to that page would respond with the stage that was set on the previous REST call.
- Complicated forms which submit in all sorts of different ways.
- Completely customizable CSP headers, response codes, rendering modes, and more.

Contributed heavily to an internal test framework - written in Python - which abstracted complex and tedious test authoring tasks into easy-to-consume libraries for test authors to use.

Created entire internal reporting application to collect test results. This application was built in Python/Django and had a very complex five-tiered object model spanning over fifteen different models. Used Django REST Framework to make REST endpoints which test authors would post results to.

"Automate the impossible" - creating tests to break countermeasures which are intended to fight bot traffic. This involves beating the very countermeasures the product is intended to protect against. (Sort of, internal debugging backdoors are often provided).

For fun, created a "Lunch Bot" which would scrape weekly lunch menus and send daily notifications to the company with the daily lunch menu.

KIXEYE

Team leader in a team of seven - in an extremely fast-paced tools environment for one of the big names in video games. Used Python + Flask to develop internal tools to manage user data within several games.

Interacted with REST endpoints for several video games, creating a common UI to manage individual aspects of each game.

TiVo

Heavy use of Django to create several internal tools, including an advanced scheduling tool used daily by the NOC team. This tool is capable of finding holes in the schedule, allowing users to request time off and allows managers to manage the schedule using a very slick UI.

In a very short time, learned the vast workings of one of the most complex Linux environments in existence. TiVo pioneered using Linux as an appliance, and the workplace offered the opportunity to work with some of the greatest minds in the field.

Mixed heavy development talents with day-to-day operations within the NOC and was able to automate many tasks, saving several man-hours per day.

MedicAlert Foundation

Honored employee - awarded recognition In April 2009. The only person in a 200+ employee company to be honored the entire year of 2009.

Assisted with migration from Sun Web Server to Apache. Wrote scripts to automatically migrate a huge list of redirects from Sun's XML redirect configuration to Apache's text based configuration.

Heavy use of JQuery and Ajax to create a personal health record editor for users of MedicAlert service. This replaced an old broken system and the company was extremely pleased to go from several dozens of customer complaints per day to virtually zero.

Developed a class library in .NET which acted as a transport for web service calls between a legacy VB6 app and newer web services.

American Medical Response

Developed an automatic update client run on the field by hundreds of ambulance which would query a web service to determine if a newer version of software was available. If a new package was available it would queue up the download using Microsoft's Background Intelligent Transfer Service (BITS) API , which would trickle download the file based on limited internet availability on the field. When the download was complete, the tool would decrypt the archive and extract, then automatically restart the necessary modules. Every bit of this was done without any UI interaction - completely invisible to the user.

Created a very sophisticated console based daemon app which would monitor Tracy Fire Department's live data stream and send information to AMR's Ambulance dispatcher units through a six-step process of downloading, extracting, converting, processing, uploading, and logging. This data was emergency-service-critical and the daemon needed to be rock solid. It never once went down.

MedicAlert Foundation

Introduced and implemented object/relational persistence tools. Created entire class library, then used NHibernate to logically map all objects to existing database structure. Then created very simple CRUDs to allow edits through a .NET Web Service.

Stanislaus County Superior Court

Developed entire cashiering system from the ground up using C# and SQL Server. This included an expansion of their database schema and migration of portions of an old, undocumented Cobol application.

Created a ASP.NET web-based court calendar application to assist with the scheduling of court cases. This calendar has become a key component in their day-to-day operations and was featured in an article in the Modesto Bee.

LowerMyBills.com

Santa Monica, California
November, 2003 - June, 2004
.NET Engineer

Developed a front-end Windows Forms user interface for data entry of lenders. Also created an auto-updating component that would query an internal web server on each launch, looking for updates. If updates were available, it would update the application and restart the application, all transparent to the user.

Performed load testing for migrating an existing application from JRUN to Tomcat with clustering and load balancing.

Wrote an extensive logging framework for tracking and debugging issues within the enterprise applications.