Brian Olson
Value Proposition
Principal/Architect Software Engineer with 24+ years of experience.
High performance, high reliability, distributed networks.
Technical leadership of small groups and mentoring junior engineers while also directly contributing to the Software Engineering effort.
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.
Tech Capabilities
Primary Languages |
Go (Since 2011),
Python (since 2007),
C/C++ (since 1992),
Java (since 1998),
Javascript (since 2009)
|
Tools | Linux, MacOS, AWS, GCP, PostgreSQL, NoSQL, git, dozens of things... |
Core Competencies
- Independent/Self-directed development — Turn me loose and I'll get things done
- High Performance Software — At any scale whether embedded or datacenter clusters. Micro-optimize CPU performance. Efficient data access patterns
- Sustainable Software Engineering — Maintain code base to get short term goal done this month and remain flexible for features next year and into the future
- 80/20 design — Work with stakeholders to find a solution to give the most benefit in the near term with path to refine in the future
- Technical Leadership — Mentor junior engineers and be a resource to colleagues at all levels. Keep team moving to latest tech. Keep team's technical design choices aligned.
Social Network
July 2024 - Mar 2025
Principal Software Engineer in small team startup details...
- 1000-2000 qps through "relay" which gathers from thousands of servers to produce the firehose of events and distributes it to hundreds of consumers
- several other small services and misc data projects
- Go
High performance blockchain
April 2023 - July 2024
Principal Software Engineer details...
- Focus on networking code. Benchmarking and ensuring no bottlenecks. Refactor 10_000 line chunk of code into much clearer and simpler 8_000 line chunk of code
- 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
- 100_000_000+ transactions searchable through "Indexer" which made blockchain available in SQL db
- 5x throughput increase. 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...
- 2-10x speed improvements: Rewrote data processing from Ruby to Java
- 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
Principal 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.
Research Lab, High Performance Computing (HPC)
Summer 1996
UNIX System Administration, network of many computers (IRIX, AIX, Solaris,
SunOS, Linux).
Education
Carnegie Mellon, Bachelors of Science in Computer Science with 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.