I’m an expert end-to-end web application developer with over a decade of hands-on, customer-facing experience. My specialty is high-availability, LAMP-style software with a focus on usability for real people.
Independent Software ConsultantMarch 2009-Present
- Realtime Geospatial Media Service for Technology Company Joined a small team to architect and build a realtime software product for live streaming video, video on demand, and photo sharing on a closed network for use inside organizations. Application includes geo-locating all media (live streams, video on demand, and photos) as well as assets responsible for generating that media. Operators of the system can view the status of all objects in the system in realtime including locations, streaming, and new generated media. Built application using Ruby on Rails 3, jQuery, CSS 3.0, advanced KML, Google Maps API v3, HTTP Live Streaming (HLS), Real Time Streaming Protocol (RTSP), VLC for transcoding, and MySQL Geospatial Extensions. Web user interface optimized for desktop and mobile clients.
- Social Network Optimization and Visualization for Startup Company Completely overhauled the user experience, rebuilding the workflow, visual design, and focus of the application. Rebuilt all data visualizations using HTML 5, CSS 3.0, and jQuery for iPad compatible charts and graphs, and interactive visualizations. Rebuilt the in-app twitter client. Engineered visualizations and workflows to have real-time update capabilities in most areas of the application, with user control. Consulted the team on direction and focus of features and design, and contributed to project management and goal making.
- Jobs Graph Social Network for Startup Company Early-project conceptualization and brainstorming, and later working with a development team building functionality by glueing backend work to design concepts. Built with Ruby on Rails 3 with jQuery. Developed integrations with third-party from LinkedIn, Plancast, and SlideShare.
- Data Cloud Dashboard for Technology Infrastructure Company Developed a theme-able, dashboard interface on top of a RESTful data cloud product developed internally. Used jQuery and modern web techniques.
- Social Network, Scoring System, and iPhone Development for Design and Game Company Assumed maintenance and continued development of XEOPlay, the online social network for the Tilt, an iPad and iPhone game. Worked on performance benchmarks for the game on iOS devices and improved in-game score keeping and leaderboards.
- Social Network and Online Game for a Civic Organization Developed and deployed the Drive Less Challenge social network and gaming tool for the 2010 challenge. Built with Ruby on Rails, Open ID, Facebook Connect, and modern web design techniques.
Lead Software Engineer, Infrastructure & ArchitectureCombineNetFebruary 2008-March 2009
- Infrastructure Upgrade (Code Name "Loveboat") Served as developer and project manager for sweeping upgrades to the flagship product and dependent products. Coordinated the migration of the product across three technical teams and several hundred thousand lines of code. Communicated constantly with IS, QA, Product Management, and two Engineering teams to ensure timely delivery and lightning fast response times during testing and deployment.
- Unit Testing Framework Using autoconf, automake, and Perl testing libraries, a unit testing framework was grafted onto an eight-year-old, actively developed, organically grown application. Unit test coverage was expanded from 0% to 10% in just a few months.
- Advanced unit testing among product engineers.
- Improved UX through RTE integration and Spreadsheet data validation.
- Managed engineering effort through a comprehensive, 10-month infrastructure upgrade.
Lead Developer & VP EngineeringSocialtextAugust 2005-February 2008
- R&D, New Products Initiated early prototypes and concepts for people oriented collaboration tools. Worked closely with CEO and CTO on design and requirements.
- Lead Developer, UI Team Planned and executed architecture changes to decouple the UI from the application for more agile development and easier customization; led a team of four. Led effort to clean up UI including HTML, CSS, and assets. Contributed to first in-product release of Wikiwyg, the first wysiwyg editor that converts rich text into wikitext for storage.
- Interim VP Engineering Selected by developers to join executive team as VP Engineering. Split time between active development, team management, and defining company strategy. Worked closely with every department to ensure engineering was positioned for success.
- Wikiwyg released on time, by Web 2.0 Conference, 2005.
- Collaborated on OSI Compliant Software Licence for SaaS, CPAL.
- Completed redesign of software which aided in funding.
- Hired five senior software developers; managed twelve.
Software Developerpair NetworksJuly 2003-July 2005
Senior Systems DeveloperDynDNS.orgAugust 2002-July 2003
Senior Software EngineerAaronsen GroupAugust 2001-August 2002
Software EngineerAgnew Moyer Smith IncFebruary 2000-August 2001
- Co-organizerYet Another Perl Conference
One of four organizers for this annual conference. Designed and implemented website, delivered keynotes, and organized social events. 10th Anniversary.
- Co-organizerPittsburgh Perl Workshop
One of four organizers for this annual conference. Designed and implemented websites for each year, managed sponsors, delivered keynotes, and organized social events.
- CPAN AuthorComprehensive Perl Archive Network
Dozens of software libraries released as open source.
- Shortest Wiki Contest WinnerShortest Wiki Contest on Ward Cunningham's Wiki
- First Mobile Wireless NetworkHighWLAN
- ParticipantFriends of O'Reilly (FOO) Camp 2004
Speaking Engagements & Publications
- Session: Writing jQuery Plugins Perl OasisJanuary 2010
- Session: Bluffer's Guide to autoconf and automake Session: Make Great Spreadsheets OSCONJuly 2009
- Session: Opening and Closing Keynotes YAPCJune 2009
- Session: Build Domain Specific Languages with Perl YAPC::AsiaMay 2008
- Session: MochiKit: Good Tools for the Web Developer Session: Abuse Perl YAPCJune 2007
- Session: Managing Email with Perl Session: Beyond the Basics of Class::DBI Session: Five Development Tools I Can't Live Without YAPCJune 2005
- Session: The Perl Email Project London Perl WorkshopDecember 2004
- Session: How to Test it All, or How to Try Session: The Perl Email Project Moderator: Life Hacks YAPC::EUSeptember 2004
- Tutorial: Building Web Applications with Perl Tutorial: Filtering Your Email with Perl Perl WhirlOctober 2004
- Session: Database Abstraction with Class::DBI Session: Managing Email with Perl OSCONJuly 2004
- Building Testing Librariesperl.comMay 2004
- Photo Galleries with Mason and Imagerperl.comApril 2004
- Session: Advanced Apache Administration with Perl ApacheCon USNovember 2003
- Hidden Treasures of the Perl Core, Part IIperl.comJune 2003
- Tutorial: Filtering and Analyzing Email Perl WhirlMay 2003
- Hidden Treasures of the Perl Coreperl.comMay 2003
- Session: Creating Dynamic Sites with Template Toolkit Session: Introduction to Net::DNS YAPC::EUSeptember 2002
- HighWLAN: A Driving Wireless NetworkO'Reilly Wireless DevCenterAugust 2002
- Session: Creating Dynamic Sites with Template Toolkit Perl WhirlJanuary 2002
- Session: Server Side Form Validation with Imager Session: Data Persistence Made Easy Session: Don't Reinvent the Big Wheels YAPCJune 2002
- Turning the Tides on Perl's Attitude Toward Beginnersperl.comMay 2001
Software Development Experience Word Soup
- Mac OS X
- Linux (Fedora, Ubuntu)
Software & Libraries
- Ruby on Rails 3
- nginx/Apache 2
- Email Protocols
- HTTP (REST)
- Architecture and Design
- Team Leadership
- Agile Development
- Build Systems
- Plugins and Extensibility
- HTML 5
- CSS 3.0