I am a software craftsman. I take pride in doing complex things well. I'm not afraid to pick up a new technology if it's the right tool to achieve a goal; I have done this many times professionally and on other projects. I am often a knowledgeable resource to my friends and coworkers. I think I'm a pretty full-stack developer but my soldering, boot code and kernel hacking is a little rusty. I'm not the guy you hire to run your Hadoop cluster; I'm the guy you hire to write a new alternative to Hadoop.
I want to make the neatest stuff. I want to care about the stuff I'm making.
Primary Languages | Go (Since 2011), Python (since 2007), C/C++ (since 1992), Java (since 1998), Javascript (since 2009) |
Operating Systems | Currently fluent in Linux and Mac OS |
Tools | AWS, PostgreSQL, git, dozens of things... |
expand all
Employment | ||
Algorand Boston, Massachusetts |
December 2018 - | Go development details...
|
PatientsLikeMe Cambridge, Massachusetts |
February 2016 - November 2018 | Java and Ruby development details...
|
Diffeo Cambridge, Massachusetts |
September 2013 - August 2015 | Python development and do-er of things in startup environment. details...
|
Vistaprint Lexington, Massachusetts |
March 2012 - August 2013 | C# development on manufacturing operations software. details...
|
CloudLock Waltham, Massachusetts |
November 2010 - January 2012 | Python AppEngine and django and other server side data processing. As Senior Software Engineer in addition to my own contributions I advised technical details and software engineering oversight to the team working on the company's main product. details...
|
Google Cambridge, Massachusetts |
July 2007 - November 2010 | C++/Python misc infrastructure for big web apps. Javascript user interface with cross browser support. details...
|
Green Hills Software Santa Barbara, California |
June 2001 - June 2007 | C, PowerPC, Mips Ported INTEGRITY OS to new ppc and mips chips writing kernel code in C and assembly. Wrote ethernet drivers. Wrote USB Stack and drivers from ground up based on specification. Maintained and upgraded documentation build system. Worked on-site with customers. details...
|
pre 2001... | ||
Green Hills Software Santa Barbara, California |
Summer 2000 | C, Mips, Arm, ColdFire Wrote USB Stack and a few drivers from ground up based on specification. Also wrote a couple serial drivers. |
Carnegie Mellon Pittsburgh, Pennsylvania |
Spring 2000 | Teaching Assistant. for Fundamentals of CS 1, the second semester CS major class. (taught in Java) Designed homework. Answered student questions. Taught a recitation. |
Green Hills Software Santa Barbara, California |
Summer 1999 | C, PowerPC Wrote example code to help users write interrupt routines, embedded boot code, and modified standard libraries. |
Signition Inc. Los Alamos, New Mexico |
Summer 1998 | C, C++ Rewrote and optimized (2-200x speedup) an interpreter. Worked with an existing 25,000 line code base and rewrote about 6000 lines of it over 3 months. |
Los Alamos National Laboratory: Division T-DO Los Alamos, New Mexico |
Summer 1997 | C, C++ optimization, audio file format exchange (Solaris & some porting to Linux) |
Los Alamos High School Los Alamos, New Mexico |
School year 1996-1997 | Chief of UNIX System Administration, network of ~60 computers (30 Macs, 20 PC, 8 Linux, 1 SunOS, 2 IRIX) used by 500 students and a few dozen faculty/staff. |
Los Alamos National Laboratory:
Advanced Computing Lab Los Alamos, New Mexico |
Summer 1996 | UNIX System Administration, network of many computers (IRIX, AIX, Solaris, SunOS, Linux). |
I graduated from Carnegie Mellon in May of 2001 with a BS in Computer Science and a minor in Robotics.
Automatic Impartial Redistricting. Downloaded and processed US Census data including Tiger-line files. Wrote heuristic directed solver to create district maps. Optimized compute-intensive C application to improve run time. TEDxCambridge June 2016: Engineering Elections Without Bias https://github.com/brianolson/redistricter
CBOR (RFC 7049) implementations in Python and Go
Java-servlet based web polling site, backed by PostgreSQL:
http://betterpolls.com/
Wrote and maintained 10,000-20,000 line Java project.
Implemented new features based on user feedback.
Simulation of elections. Implement standard and theoretical election methods in C/C++, optimized, made multi-threaded to take advantage of SMP computer, ran millions of times, collected statistics and graphed the results. Then, refactored to run a different kind of visualization.
I publish and maintain open source election method implementations.
Unitarian Society of Santa Barbara Board of Stewards. 2003-2006. Served on a 12 member board in monthly meetings to take care of the policy decisions of the business of running a church.