Curtis McEnroe

I’m interested in learning the intricate details of systems and building well-crafted tools. I want to make software that works.

Here are some of the technologies I’ve enjoyed working with:

Funemployed at home, August 2017 –

Away from work, I focused on creativity and communication. I created a collaborative ASCII art project as a public SSH service. I started a terminal IRC client and worked on easy but significant UX improvements. I designed a colour scheme, wrote a PNG optimizer, a bitmap font editor and a syntax highlighter.

Software developer at Hopper, May 2017 – August 2017

I learned a little bit of Scala, HBase and Elasticsearch. I didn’t stay long due to lasting negative mental health effects of my previous job.

Software developer at AdGear, October 2015 – April 2017

I designed and implemented a replacement for the primary ETL providing time-sensitive state to a real-time bidding system. The design solved performance, correctness and concurrency issues in the legacy system. I vectorized a hash table implementation in a specialized key-value store to take advantage of SIMD. I set up fuzzing jobs for many Erlang NIFs written in C, for which crashes can bring down the BEAM. I also designed schemas and database constraints to ensure data integrity.

Software developer at Busbud, December 2013 – April 2015

I migrated geographic data from CouchDB to PostgreSQL, and replaced Elasticsearch with Postgres materialized views and trigram indexes. This centralized data and improved performance. I introduced promises and functional programming to the Node.js server, which facilitated writing organized, asynchronous code. I helped redesign the interfaces and data models for integrating partner APIs into Busbud’s, which were previously too restricted and lossy.