Relevant to software, I have three passions: tooling, data, and the web— the web because of its unparalleled ability to distribute information, and data because its proper analysis and presentation allows people to make informed, and therefore better, decisions. Tooling— so contentious!— is more a matter of priority, and my priority is this: I desire to craft software that is correct, readable, elegant, and performant. No language provides me this capability as does Haskell (and associated PureScript, Elm, etc)— the basis for my current and future endeavors.


and relative confidence


  • Thoughtleadr 2015–present


    As part of an international and asynchronous team, I contribute to an array of Haskell-based event processing services and use real-time data analysis to deliver valuable and relevant native advertising.

  • Bendyworks 2013–2015

    Developer, Project Lead

    In addition to maintaining a near-perfect record on client happiness, I contributed numerous technical talks on functional programming, assisted others in learning Haskell, and ran the Madison Haskell Users Group.

  • Liaison 2011–2013


    I helped renovate and rewrite a massive, hundreds of read/writes-per-second, distributed, document-parsing and ETL process.

  • Center for Inquiry 2009–2011

    Developer, System Administrator

    Along with administering this international non-profit's servers, designing their multiple websites, and end-to-end revamping publishing and editorial processes for their magazines and promotional media, I developed a conference website engine to simplify future website generation.

Reading List

and completeness
Statistical Analysis Using R
Types and Programming Languages
WebGL Programming Guide
The Elements of Computing Systems
Relational Theory for Computer Professionals
Functional Javascript
Learn You a Haskell
Metaprogramming Ruby
Agile Web Development with Rails


  • hsyslog, Haskell interface to the C syslog library
  • hsyslog-udp, Syslog over UDP supporting standard and arbitrary protocols.


in progress!