resume current as of 2023-07
Medford / Boston, MA 02155

https://bolson.org/ resume
https://www.linkedin.com/in/bolson/
https://github.com/brianolson

Brian Olson

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.

Core Competencies

Tech Capabilities

Primary Languages Go (Since 2011), Python (since 2007), C/C++ (since 1992), Java (since 1998), Javascript (since 2009)
ToolsLinux, MacOS, AWS, PostgreSQL, git, dozens of things...
expand all

Employment

High performance blockchain
April 2023 -
Principal Software Engineer details...
  • Focus on networking code. Benchmarking and ensuring no bottlenecks
  • Rust
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...
  • Rewrote networking subsystem implementing a message passing mesh network
  • Designed and implemented "TEAL" on-chain smart contract language, compiler, and interpreter
  • Built "Indexer" to create searchable archive of transactions
  • Analyzed performance of and optimized algorithms, database access patterns, and network protocols as part of team that took Algorand through its initial 1000 transactions per second at release and up to 5000 TPS three years later
  • Go, Python, PostgreSQL, AWS
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...
  • Rewrote data processing from Ruby to Java to achieve 2-10x speed improvements
  • Tech lead and individual contributor for small data processing group (2-5 engineers)
  • Java, PostgreSQL, Python, AWS, Ruby, Javascript
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...
  • Wrote custom job control system for queueing large batches of work
  • Architected/implemented graph data library and schemas that ran on several database backends
  • Main application in Python with C plugins to speed up critical sections
  • Go and C implementation of some standalone components for improved performance
  • Accumulo, PostgreSQL, sqlite3, and in-memory databases. AWS.
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...
  • Internal factory operations app in C# with MSSQL database
  • Introduced web tech to group producing Windows-desktop internal applications
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...
  • Extensive work with the features and tradeoffs of the Python AppEngine system including its nosql-type datastore
  • Google Docs API used to fetch data and make administrative changes
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...
  • MapReduce processing of terabyte+ data sets
  • Bigtable schemas for those data sets
  • Several job control and monitoring systems for automated maintenance and serving of production data.
  • Client side Javascript for Google Image Search and C++ server side code to connect with it.
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...
  • PPC 405, 440, 8560, 970. MIPS 4K series. Worked on the system in general and specifically MMU kernel support and often integrated ethernet controllers.
  • UHCI, OHCI, EHCI host side USB interface drivers and the protocol stack.
  • Documentation system single-sourced in custom language, translated by custom software to HTML and LaTeX. System had been abandoned by previous author and I picked it up and modernized it to use new features of HTML and PDF.
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.
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).

Education

I graduated from Carnegie Mellon in May of 2001 with a BS in Computer Science and a minor in Robotics.

Other Projects

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.