Work

I’ve quite a few open source repositories on GitHub (over 60!) and several more that I contribute to, but I have a few that I consider is representative of the work I am currently able to do.

If you are interested in my job history or a list of my skills and where I rate them between ‘Beginner’ and ‘Master’, see my résumé.

web.py

I created a small, thread-pooled web server in Python designed around conforming to the HTTP/1.1 standard, building RESTful interfaces, and automatic read/write resource locking. I additionally created several addons for hosting files, performing authentication, decoding submitted HTTP forms, request decoding and response encoding with JSON, and page templating. On top of this base, I created several web applications which can be selected via the navigation bar at the top of this page. In essence, I created a complete web stack and web applications using little more than the standard Python library and a lot of my own code.

vbx

I created a virtual branch exchange for controlling and routing my Twilio phone number. It includes flow based controls, online device detection, device proxying (e.g. you can directly respond to messages from XMPP and SMS), and a web interface that functions as the primary interaction with the number for sending and receiving calls and messages.

overlay

I maintain over 150 packages in a personal Gentoo overlay, fkmclane. These packages range from system utilities I’ve written to Plex packages to the Unity 3D Editor. Most of these ebuilds I wrote myself, but some of them were taken from the main tree or an overlay as they only required minimal changes for my needs.

CUCyber/presentations

I created the build and update system for using reveal.js presentations for the cyber defense club at Clemson University. It sets up several reveal.js plugins, automatically handles resources, and generates a set of static pages that are automatically uploaded to the GitHub repository from which the website is hosted. Additionally, I wrote many of the presentations and take on the role as editor for each of them to ensure visual appearance, grammatical correctness, and information correctness.

CUCyber/hackpack

I created the build system for using Markdown to write technical pages and LaTeX to typeset them to a printable PDF file. Additionally, I wrote many of the sections and take on the role as editor for the entire hackpack.

Though on hiatus, I began developing an object-oriented programming learning game centered around learning and using Python to manipulate the game itself. I put in a lot of research time in computational learning and trials to determine how non-programmers become programmers and what topics need to be stressed the most and in what order. While it does not represent how much I can program (as only basic code is there right now), it does show my interest in education through gamification.