Principal/Architect Software Engineer with 22+ years of experience. Focuses in high performance, high reliability, distributed networks. Comfortable negotiating with stakeholders to design the right solution. Technical leadership of small groups and mentoring junior engineers while also directly contributing to the Software Engineering effort. Design new high performance software from scratch or analyze an existing system and improve its performance.
I want to make things I'm proud of that matter to people and make the world a better place; and I want to solve interesting technical challenges along the way.
Primary Languages | Go (Since 2011), Python (since 2007), C/C++ (since 1992), Java (since 1998), Javascript (since 2009) |
Tools | Linux, MacOS, AWS, PostgreSQL, git, dozens of things... |
expand all
Employment | ||
High performance blockchain April 2023 - |
Principal Software Engineer details...
|
|
High performance blockchain December 2018 - February 2023 |
Principal Software Engineer reporting to Director of SWEng. Responsible for designing and implementing key pieces of Algorand blockchain details...
|
|
Social network for chronic illness with science on crowdsourced data February 2016 - November 2018 |
Principal Software Engineer reporting to VP Eng. Responsible for small team of engineers that ran and improved data pipeline from website to data science details...
| |
Knowledge graph tool with linguistic analysis September 2013 - August 2015 |
Principle Software Engineer reporting to CEO/Founder in tiny startup of 3-5 engineers details...
|
|
Mass-customization print-on-demand of all kinds of things March 2012 - August 2013 |
Lead Software Engineer reporting to management and SW architect. Design and implement solutions with colleagues and mentor junior engineers. Ensure timely delivery of software to factory and keep the codebase clean and flexible for years of new features to come details...
|
|
Document security control panel for Google Docs November 2010 - January 2012 |
Senior Software Engineer in early phase of project at startup, reported to VP Eng. Wrote substantial core functionality and features details...
|
|
YouTube and Image Search divisions July 2007 - November 2010 |
Software Engineer. C++/Python misc infrastructure for big web apps. Javascript user interface with cross browser support. details...
|
|
Embedded tools; memory protected RTOS June 2001 - June 2007 |
Software Engineer. 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... | ||
Embedded tools 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. | |
University Computer Science 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. | |
Embedded tools Summer 1999 |
C, PowerPC Wrote example code to help users write interrupt routines, embedded boot code, and modified standard libraries. | |
Signal-processing focused tool a little like MATLAB 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 Research Lab, Signal processing team Summer 1997 |
C, C++ optimization, audio file format exchange (Solaris & some porting to Linux) | |
Los Alamos High School Public High School (9-12) 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 Research Lab, High Performance Computing (HPC) 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
Web polling site, implementation in: Go + PostgreSQL:
https://betterpolls.com/
Simulation of elections. Implement standard and theoretical election methods in C/C++, optimized, multi-threaded, 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.