Recent projects


I created this animation for myself when I wondered if I could make a slideshow that wasn't boring.

HTML5, CSS, JQuery, JQuery UI.

Fort Vancouver Regional Library District

Fort Vancouver Regional Library District is a library system in Southwest and South Central Washington State that spans three counties. My roles on the project were full-stack developer and information architect. The Fort Vancouver Regional Library District graphics team provided the site's visual design.

I worked with the library's Website Task Force to identify the goals and scope of a new website project, including:

  • Allow users to easily complete critical tasks: search for library materials, find library events, find branch library locations and find library contact information.
  • Automatically translate English-language content to Spanish and Russian, with the option of translating to additional languages in the future.
  • Include a "featured content" area for the library's marketing department to use to promote library news and events.
  • Allow users to customize their experience by saving a branch location as a preference for displaying news, events and hours of operation.
  • Integrate with the library's third-party events system (Trumba).
  • Provide mobile user experience through responsive design.

I lead two rounds of usability testing of both the mobile and desktop designs.

Linkchecker Menu

Linkchecker Menu extend the contributed Link checker module to additionally scan menu items for broken links.

While Drupal's menu system can handle validating links and maintains most internal links automatically, there are two use case where it is helpful to check up on menu links:

  1. when a menu links go to an external site
  2. when a menu link provides an argument for a Views contextual filter that may return no results

I created this project is a sandbox project on and improvement is ongoing.

Answerland lets everyone in Oregon chat online with a librarian, 24 hours a day, 7 days a week.

I created this site as part of my job as Oregon Statewide Digital Reference Service Coordinator, starting with Drupal 4.7 in 2006 and migrating and updating the site to Drupal 7 in 2013.

My roles in this project were product manager and full-stack developer. As product manager, I worked with an information architect and visual designer to ensure that the site communicated Answerland's purpose and goals. As developer, I implemented their designs and integrated the Drupal site with external services, including an Openfire XMPP server, the Text-A-Librarian text messaging service, the OCLC QuestionPoint chat reference system and the libraryh3lp chat reference system.

I developed a custom scheduling module to help the service schedule individuals for chat reference ships, APIs for importing and exporting data to partner services and an anti-troll system to prevent groups of mischievous users from disrupting the service.

The site includes an extensive staff-only area that manages scheduling, the scheduled retention and destruction of reference transcript records, allows librarians to send follow-up answers to users over email and generates reports for staff.

The responsive design emphasizes the opportunity to text with or email a librarian to mobile users.

The biggest challenge building the site was implementing the information architect's vision of sharing information about the librarian during the chat. This feature allows library users to make more personal connections with Answerland librarians. When the chat is initiated, a profile picture of the chatting librarian and brief information about her location is shown to the user, along with a link to the librarian's full profile that details her interests and expertise. Since the chat features were external to Drupal, I used a combination of JavaScript and shell scripting to link Drupal with the external Openfire XMPP server.