Due to the wide variety of roles I play in my work (including both frontend and
backend development, system administration, technical writing, and social media
management), it is impossible to include each project I work on here, or even
to fully describe the projects I have been able to include. Please feel free to
contact me to discuss how I can help your organization in more
Websites and Applications
Council on Education for Public Health ceph.org
To help this non-profit better manage their website and its content, I built
them a new WordPress-based website. Since many of their visitors use their
website to access information about accredited public health programs, I
created a more
robust search engine
that is both easier for staff to keep updated while
simultaneously allowing users a broader range of fields to search on than the
previous Microsoft Access-based version.
I helped this online newspaper transition to a new website based on Armstrong
, a Django-based
CMS designed for news organizations. In addition to installing Armstrong on
their server, I converted a table-based website design to a modern HTML5
layout, extended Armstrong's WordPress importer to correctly convert their
previous content, added code to support their custom image handling and article
publication workflows, and successfully redirected URLs from the two previous
iterations of their website to ensure that old links would not be broken.
Social Photo Download no longer publicly available
Social Photo Download allowed Facebook users to download photographs that they
or their friends have uploaded to the website. Unlike other popular photo
downloading services, this site made heavy use of Facebook's Graph API to
ensure compliance with Facebook's developer terms. With over 50,000 pageviews
each month, the website used Celery
RabbitMQ to queue and manage downloads.
MP3 Gift no longer publicly available
MP3 Gift allowed people to legally purchase MP3 songs or albums for their
friends. The Django-based website used Facebook Connect for quick user
registration, Facebook's Graph API to retrieve information about friends'
birthdays and musical preferences, and Medianet's Open
to handle music purchases.
Open Source Projects
While I am an active participant in multiple open source projects for more than
a decade, the following projects are all libraries that I were I am the primary
maintainer. My work includes writing new features, replying to bug reports,
merging in pull requests, and making new releases.
This software runs the Writing section of this website.
One issue when converting clients from WordPress sites to Django is usage of
WordPress shortcodes in their
content. This library helps Django applications support these shortcodes, so
that site staff can easily embed YouTube videos and other content.
After Facebook ended official support for their Python Facebook SDK, Python
developers were left without a solution that would remain updated as Facebook's
Graph API grew and changed. While other developers used this opportunity to
create custom Graph API libraries, I joined together with other developers to
fork and improve Facebook's SDK. Our fork is currently the only Python library
to be listed on Facebook's list of third party SDKs.