I'm a technology leader with fifteen years of technical experience building web-based applications using a wide range of technologies. I have strong, battle-tested opinions on what makes software teams productive and sustainable. My development background is full-stack: I have experience with most of the technologies powering modern web applications and web services.

I am strong believer in Test-Driven Development, I am well versed in Agile Development practices, and I am a proponent of open source.


Director of Software Engineering - Granicus, St. Paul, MN (November 2016 - present)

As a director, I oversee multiple teams of software engineers and DBAs, and report directly to the Chief Product Officer. I established a management structure on a previously flat team to help sustain growth. I represent software development concerns to stakeholders outside our team, and work closely with product and operations to balance the needs of the teams. I collaborate with the security team to help triage and implement security tasks.

Accomplishments: Software Architect - GovDelivery, St. Paul, MN (April 2014 - November 2016)

As an architect I served as team lead on several scrum teams, delivering high quality software while advancing the strategic technical direction of the platform. I was a champion of the team’s values - TDD, collective ownership, Agile/Scrum, and sustainable pace. I was frequently consulted for requirements gathering and design for upcoming product priorities.

Accomplishments: Senior Software Engineer - GovDelivery, St. Paul, MN (January 2009 - March 2014)

As Senior Software Engineer, I was part of a small team that successfully rewrote GovDelivery's legacy system into a modern, test-driven application. I also helped to design and plan several new applications, including a transactional messaging service and a high-volume analytics application. I worked in a small team that established devops as a team-wide practice while overcoming significant cultural resistance.

Accomplishments: Senior Web Developer - Internet Broadcasting Systems, Minneapolis, MN (December, 2005 - December, 2008)

As a Senior Develoer at InternetBroadcasting, I primarily worked with JavaScript, ActionScript/Flex, Ruby, MySQL, and XSLT. I served as a development team lead during a crucial website relaunch for a high-profile, demanding customer. Later I worked as a developer on a cross-functional team to create a greenfield application related to local news.

Web Developer - Fisher Real Estate, L.L.L.P., Baltimore, MD (May 2002 - December 2005)

As a web developer, I designed, developed, and maintained the company website. Note: link goes to the Internet Archive version of this site; company no longer exists. I also developed an effective strategy for client attraction and lead retention using an opt-in email list and push notifications for new vacancies. I designed and developed a new system for collecting and tracking maintenance requests from tenants

Open Source

Garagio - A web application with custom hardware to open my garage door

Oci8Simple - A simple Ruby library for executing SQL against an Oracle database using Ruby OCI8

ActiveRecord OracleEnhanced Adapter - I have contributed several features to this ActiveRecord database adapter.

Infoblox - This is a Ruby gem that facilitates connecting and interacting with an Infoblox DNS cluster.

Jash - JavaScript Shell - A JavaScript command-line interface to a web page - that works in IE6! No longer maintained.

See more...


Master of Music with honors (2003) - Peabody Conservatory of the Johns Hopkins University

Bachelor of Fine Arts, cum laude, with honors in Music Composition (2001) - Tulane University

Professional Development

Graduate of Leadership Saint Paul, Class of 2014, Saint Paul Area Chamber of Commerce

Board member of the Academy of Information Technology, part of Saint Paul Public Schools' Career and Technical Education program


Test-Driven Development, Agile Development, Object-Oriented Programming, web accessibility (508 & RNIB), open source software, continuous integration, devops

Ruby, JavaScript, Java, Bash, SQL, Clojure, PHP, Actionscript, PL/SQL, C, Objective-C, XSLT, XPATH, HTML, XML, Akamai ESI, CSS, regular expressions, Git, Subversion, CVS, Rake, Ant, Capistrano

Ruby on Rails, Puppet, Sinatra, Node.js, Spring (Java), Prototype, jQuery, Mule ESB, iOS, Flex

Oracle, Kafka, MySQL, Redis, PostgreSQL, Sqlite, ActiveMQ, Riak, Zookeeper, Neo4j, memcached, Cassandra