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.
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.
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.
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.
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 Stamps.com 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.
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.
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.
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
Besan Block Plugin
WordPress plugin that adds a post editor block to create charts from Google sheets.
This WordPress plugin provides site administrators with the ability to turn on and off specific post editor (Gutenberg) content blocks.
Color Palette Plugin
WordPress plugin that adds a Color Palette block to the post editor.
Gutenberg Autocomplete Component
The existing OOTB Autocomplete component in the Gutenberg API is broken. This is a simple substitute.