Echo Nolan

Software Engineer

Links online at echonolan.net/resume/cv.html or via QR code

Professional Experience

December 2018 - present
Protocol Engineer. O(1) Labs, San Francisco, CA. Helped build a new cryptocurrency. Worked primarily on security issues, performance and peer to peer networking. Achievements include: Designed and implemented the trust system for DDoS mitigation. Rebuilt the transaction pool for efficiency and resiliency. Made the ledger Merkle synchronization process more efficient and secure.
July 2017 - November 2018
Software Engineer. Signal Vine Inc., remote with myself in Portland, OR and the company headquarters in Alexandria, VA. Worked on the backend of a two-way text messaging platform in the education technology space. Achievements include: Added support for new upstream providers, allowing the company to serve clients in foreign countries and saving the company ~33% on messaging and phone number costs. Improved SQL query performance by 40x in some cases, making users happy and enabling further growth. Primarily worked in Haskell, as well as Scala, PostgreSQL and MySQL.
2008 - 2016
Computer Support Technician. Joe Nolan DMD, West Linn, Oregon, USA. Provided general support in a small dental office.

Open Source Experience

October 2016 - June 2017
Beescheduler. A single page web application to schedule goals using the goal tracking service Beeminder’s API. Personal project. Frontend using React, backend using Node.js and the Serverless Framework. Online at http://beescheduler.echonolan.net.
June 2014 - October 2016
Idris. A programming language with dependent types, implemented in Haskell. Many contributions including improvements to the dynamic linker, parser, build system, terminal support, continuous integration and documentation. Wrote bug reports and reduced others, helped people on mailing lists and Stack Overflow.
January 2016 - June 2017
Software Quality Causes Project. An ongoing personal project empirically researching the effects of tools, programming languages and practices on software quality outcomes. Design notes here. Created a web application to survey users on their perception of the quality of software they use. Written in Haskell, using Yesod, Docker, Selenium, Postgres and JavaScript. Not live in production yet.
December 2015 - August 2016
AlanDeniseEricLauren. Personal project. An implementation of the ADEL algorithm for finding minimal subsets of a given input satisfying an arbitrary upward-closed property. Found a recent (2014) academic conference paper solving my problem and turned it into working, performant code. Released on Hackage.
March 2016 - June 2016
GHC Libraries. The built-in libraries for the flagship Haskell compiler. Fixed an especially hairy bug in the Windows networking functionality. The build tool Stack would hang intermittently when downloading dependencies. Traced it down to http-conduit, then to base. Submitted a patch to GHC which was merged May 19 2016. Submitted a workaround patch to the network library. Wrote a blog post describing the process.
April 2015
PIA-Forward. Personal project. Uses a simple REST API to set up port forwarding on the Private Internet Access VPN service.
Various
Small changes to Cabal, Stack, the Selenium Docker images, Haskell’s network library, the NixOS packages, serverless-offline and serverless-simulate. A mostly-complete BitTorrent client, Whiteout.

Education

June 2016 - July 2016
Oregon Programming Languages Summer School. Two week intensive on the academic study of programming languages located at the University of Oregon. Topics included type theory, category theory, verification and programming language theory generally.
March 2016 - June 2016
Machine Learning Coursera Course. Taught by Andrew Ng of Stanford. Implemented linear regression, logistic regression, neural networks, clustering, and Support Vector Machines. Certificate.
2010-2011
Computer science baccalaureate program (incomplete), Portland State University, Portland, Oregon, USA.