Hello! I’m Brian Cottingham, also known on the Internet as spiffytech.

I’m a fan of open source stuff. I do hobby programming projects in Python and F#, and have used Linux as my desktop OS since before Ubuntu was a gleam in Shuttleworth’s eye. I even spent three years as the president/vice president of the NCSU Linux Users Group, where I still reside as chairman of the Alumni Committee, and Chief Subcaptain of Switzerland.

I graduated from N.C. State University with a degree in Computer Science a few years ago, and currently work at Youth Digital as a Software Engineer using PHP and Docker to bring tech education to the kiddies.

Encrypted contact

You can find all of my PGP-authenticated web accounts on Keybase.

You can send me files encrypted with minilock using my ID: 2GWvVjfXE6WAy7nKkVh9q3JA78pWdXAmGsVAtzKog5CaH8


In 2013 I took an RV trip around the country, I saw some pretty cool things, and had a great time! You can read more on my travel blog.


Here are some projects I’ve worked on in my free time. Some of them even seem kinda complete.

  • NPCWorld is a game/art piece that aspires to be a sort of digital ant farm. NPCs will behave somewhere in a cross between The Sims and Civilization, and the game will visually resemble Age of Empires II. Players’ interactions will be limited to metaphorically “shaking” the ant farm (the project is supposed to be mostly decorative). It’s much closer to “started” than “finished”.

  • csvmaster is a command line utility for parsing nontrivial CSV files. awk/cut don’t handle quotes or delimiters in the content, but csvmaster does.

  • MobileBlur is a mobile-friendly web-based interface for the NewsBlur RSS reader. It handles the basic reading features very well. Due to bugs in web2py (the framework used) it’s not always reliable, and I never resolved that since native NewsBlur mobile apps eventually surpassed MobileBlur’s features.

  • ImageFilter is a very simple tool I rigged up to quickly filter an enormous pile of images between “keep” and “delete”.

  • ynab-reconcile is a CLI script with an improved reconciliation algorithm for the YNAB budgeting tool. It assumes two transactions within a few days for the same amount are the same transaction, thus reducing the number of transactions you have to manually reconcile. It compares YNAB transactions with Mint transactions (for easy portability between banks).

  • pavol is a command line tool for adjusting PulseAudio volume.

  • spiffyscore was one of my final college projects. It generates a MIDI music file algorithmically based on some sample musical phrases you give it. (Technically, it generates using a context-free grammar for each instrument, with some attention to coordinating the instruments.)