I am a senior web developer, author, and speaker in Washington DC with over 20 years of programming experience. I specialize in content management system theme development, custom WordPress block creation, and technical writing and instruction.

I started as purely a front-end developer, but have been slowly migrating further back in the stack. As a result, I now call myself a “middle-end” developer and am working hard to make that term stick.

Currently @…

Senior Web Developer @ Georgetown University

I work with a team of developers, designers, and product managers to create flexible and responsive themes for the University’s school and department websites. These days, most of my work involves building custom WordPress editor (Gutenberg) blocks, such as promotional blocks, expandable content, and dynamic news blocks, using ReactJS, PHP, and the Gutenberg API.


The top of the Georgetown Humanities Initiative homepage, which includes the Georgetown University logo type and Georgetown College parent affiliation at the top on a dark blue background. Below that, on a brighter blue background, is the Georgetown Humanities Initiative department name, followed by the top-level navigation.

Georgetown University

WordPress, PHP, ReactJS, Gutenberg API, SCSS, HTML, Twig

I am a part of the Georgetown University Web Services team, who develops and maintains themes and plugins for 360+ university affiliated sites. The GU Humanities Initiative site is an example site that showcases our newest theme and functionality. one example of our newest WordPress theme. I develop many of custom blocks for the WordPress editor (Gutenberg), as well as additional specialized functionality that is specifically designed for our sites.

The top of the American Druze Foundation homepage, which includes the Foundation's logo, followed by the top-level navigation and a large, red Donate Today button. Below that is the American Druze Foundation name over a faded background image of the inside of a stone-built arched building.

American Druze Foundation

WordPress, HTML, Twig, SCSS

I have been working with the ADF since 2016. Initially, I simply maintained their existing site on WordPress. More recently, I developed a new theme to support a complete site overhaul, which included a new look and more streamlined content strategy. This WordPress theme integrates with MailChimp for newsletter subscriptions and PayPal for donations. The updated site launched in April 2022.

The top of the Board Game Innovation homepage, which includes the BGI logo, shopping cart icon, search box, top-level navigation, and a large yellow Shop button. Below that is the heading Functional Accessories for the Gaming Community, over a faded black and white background image of rolling dice.

Board Game Innovation

WordPress, WooCommerce, HTML, CSS, Bootstrap 4 (alpha), jQuery

I designed and developed this site in WordPress with WooCommerce. The site also includes custom functionality, including integration with Braintree for payment processing, integration with to provide shipping options, and support for international pricing and checkout. The site launched in May 2017, but the site is no longer available as it was purchased by Meeple Life in 2022.

The top of the Whitehaven Playground site, featuring drop down menus of options for Alignment, Buttons, Cards, and Snippets. The Alignment options include Block and Text. The Buttons options include Filled, Outline, and Sizes. The Cards options include Regular, Image Overlay, and Deck. The Snippets options include Blockquote, Content, Lists, Photos, Social Media, and Table.

Whitehaven Playground

Jekyll, jQuery, HTML 5, CSS, Bootstrap 4 (alpha)

I created this site as part of our documentation efforts to encourage Drupal content editors be familiar with Bootstrap code supported in our website themes. Users were presented with a series of drop-down menu options, where they could select different components and their customization options. The site would then output the HTML code and its rendered results, and allow users to edit the code to see how their changed affected the output. This site launched in 2016, but is no longer available because Georgetown migrated away from Drupal in 2019.

The top of the SemanticClarity homepage, which includes the logo and top-level navigation on a blue background. Below that is a background photo of a person sitting in a room with a giant lightbulb over them and chalk writing and drawings on the wall behind them. The text overlaid on this background reads SemanticClarity Success at any scale.


Drupal 7, Sass, CSS, HTML

I worked with SemanticClarity to create a new design based on their current branding and develop a flexible, responsive Drupal theme based on that design. The new site was on the Acquia platform. This site launched in February 2016, but the company no longer has a website, so this work is no longer available.

The top of The Chicago Community Trust homepage, which includes the CCT logo and top-level navigation displayed vertically on the left. To the right is a background image of a grid of people's faces, representing a variety of genders and races. The text overlaid on this background reads Inspriing philanthropy; Engaging residents.

The Chicago Community Trust

Wordpress, Javascript, SASS, CSS, HTML

I led the development of this project while working at Atlantic Media Strategies. Our team of developers collaborated with the designer, managers, and content editors during the course of the project. The site launched in May 2015 won the 2015 OMMA award for website excellence in the charity/non-profit space. The site has since been redesigned.

Tools & Projects

Accessible Calendar
HTML and CSS-only accessible and responsive calendar.
Backbone Recursive Navigation
This component is a Backbone.js model and view that can be used to construct an infinitely deep navigation or nested list.
Backgrid Cell Extensions
This library contains a series of Backgrid cell extensions.
Character Counter
Character counter written in jQuery.
GitHub Gist
Color Sequencing Dialog
This color sequencing widget was developed as a proof of concept to reorder large numbers of content blocks inside a YUI dialog box.
Color Swatch Generator
Generate a color swatch, including the color’s hex, RGB, and CYYK values, for any single color.
Live Site GitHub
CSS Mega Menu
This simple mega navigation menu is inspired by the many mega menus on retail and other websites.
GitHub Gist
CSS-Only Menu
This simple navigation menu demonstrates how to create a main navigation menu with drop down sub-menus using just CSS.
GitHub Gist
CSV to JSON Converter
This script will convert a CSV file to JSON. That’s it!
GitHub Gist
Flickr Place Image
Script that uses the Flickr API to provide placeholder images for web developers and designers.
GitHub to Trello Migration
This page/script allows you to migrate GitHub tickets into Trello.
Live Preview GitHub
A node module to copy boilerplate code for new projects, cloned from other personal GitHub repos.
Facebook profile picture generator app that adds an image of the Earth over your existing profile picture.
Phone Number Conversion
A quick tool to convert plain phone numbers into accessible phone number links.
Live Tool GitHub
Prototype Helper
A utility site that lists and loads all of my favorite prototyping tools.
View Site
Static Website Base
My personal standard base code for static websites.
Text Area Limit using YUI
This text area limit widget was developed as a proof of concept for implementing a character limit inside a text area.
Word Counter
Simple word counter in jQuery.
GitHub Gist

WordPress Plugins

Besan Block Plugin

WordPress plugin that adds a post editor block to create charts from Google sheets.

Docs Download

Block Controller

This WordPress plugin provides site administrators with the ability to turn on and off specific post editor (Gutenberg) content blocks.

Docs Download

Color Palette Plugin

WordPress plugin that adds a Color Palette block to the post editor.

Docs Download

Gutenberg Autocomplete Component

The existing OOTB Autocomplete component in the Gutenberg API is broken. This is a simple substitute.

Github Gist

WC Tiered Shipping Plugin

This WordPress plugin adds a tiered flat rate shipping option for the WooCommerce plugin.

Docs Download