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.