Work Experience
SolarWinds Cloud // Remote
Senior Developer (Sep 2016 – present)
- Spearheaded streamlined APM UI development
- Headed up Docker-based development stack & supported ECR/ECS deploy
- Built read-side APM data service in Python, then rebuilt in Go
- Web application development (Python, Ruby, Javascript/React, Docker)
- Chatbot development (Python, Javascript, Coffeescript)
- Data pipeline development (Python, Go, Java, Docker, Clickhouse)
AppNeta, Inc. // Boston, MA
Senior Software Engineer (July 2016 – Sep 2016)
- Re-integrated with a scrum team
- Led effort to deploy user & org service
Development Manager (Aug 2014 – Jul 2016)
- Managed two Scrum teams. (11 reports)
- Built both teams from the ground up. (12 hires)
- Implemented lightweight Scrum process and transitioned ownership of process to engineers.
- Analyzed requirements and helped resource stories for performance monitoring tool.
- Spearheaded cross-organization technical integration of network and application data.
- Guided migration from homegrown JS framework to React and Flux.
- Introduced lightweight QA process and hired QA personnel.
Senior Software Engineer (Mar 2013 – Aug 2014)
- Designed and built features for TraceView. (Python/Pylons, Javascript, MySQL, AWS)
- Built backend loader process to offload archival data into BigQuery. (Python, RabbitMQ, BigQuery)
- Championed unit testing and code review. (Jenkins, GitHub)
FlipKey, Inc. // Boston, MA
Senior Software Engineer (Oct 2012 – Mar 2013)
- Built internal marketing tools. (Python/Django, Javascript/Backbone, MySQL, MS Access)
- Championed unit testing and code reviews. (Jenkins, ReviewBoard)
Compete, Inc. // Boston, MA
Senior Software Engineer (Dec 2010 – Oct 2012)
- Software architecture for compete.com, currently serving about 1M page views/month.
- Software design and development for data-rich marketing intelligence portal. (Python/Django, Javascript/Backbone, MySQL)
- Managed technical debt backlog.
- Championed unit testing efforts. (Jenkins)
- Established Python coding standards. Reviewed code for design. (ReviewBoard)
- Championed metrics-based approach to performance analysis. (JMeter, ApacheBench, AppNeta.)
- Prepared and delivered many internal technical talks.
- Employed many other software development tools and practices. (continuous integration, virtualization, Scrum, CoffeeScript, Node.js, PhantomJS.)
Psynchronous Communications // Woburn, MA
Consulting Systems Programmer (Dec 2010 – Oct 2017)
- Ongoing support for web and mobile applications.
Engineering Lead (Mar 2007 – Dec 2010)
- Developed and supported Python web analytics application. (Python, Javascript, MySQL)
- Developed an iOS application, BrewLab, with over 2000 downloads. (Objective C)
- Developed other web applications in support of clients and campaigns. (Javascript, PHP/Drupal, Python)
- Designed and administered high-availability Linux cluster. (VMWare, DRBD, MySQL)
- Managed several contractors and coordinated consultants' efforts.
TurnHere, Inc. // Emeryville, CA
Architectural Consultant (Aug 2007 – Oct 2007)
- Data modeling to support a video production pipeline. (MySQL)
- Prototyped workflow automation application. (PHP)
- Selected a permanent architect candidate.
HomeGain.com // Emeryville, CA
Systems Software Manager (Jan 2006 – Mar 2007)
- Developed a prototype DevOps group. (5 reports)
- Managed systems architecture and tooling for 750k pageview/month website. (Python/Zope, Oracle, MySQL, CORBA)
- Designed/developed home valuation application. (Python/CherryPy, C++, Postgres)
- Managed integration of home listings product. (IIS, SQL Server)
- Pioneered performance analysis. Gathered and studied performance metrics, developed remediation plans. Achieved 2000% improvement in one subsystem.
- Managed transition from CVS to SVN, evolved backup strategy, scripted server buildouts, evolved configuration management.
- Championed (pre-)Agile processes.
Application Development Manager (Feb 2005 – Jan 2006)
- Player/coach role. (4 reports)
- Reviewed business specifications.
- Resourced new initiatives. Provided designs, broke out tasks, assigned workload.
- Rebuilt SOA framework. Replaced ILU with CORBA. (Python)
- Designed/implemented usage-based listings publishing service. (Python/Zope, Oracle)
- Designed/implmented affiliate reporting system. (Python/CherryPy, MySQL)
Senior Software Engineer (Nov 2002 – Feb 2005)
Software Engineer (Nov 2000 – Nov 2002)
- Designed/implemented subscription management/billing service. (Python, C, Oracle)
- Restructured large portions of SOA-based web application. (Python/Zope, Oracle)
- Designed/built features for consumer-to-agent matching. (Python/Zope, Oracle)
Round1, Inc. // San Francisco, CA
Software Developer (Mar 2000 – Nov 2000)
- Developed WebObjects applications and tools software. (Objective C, Java, Perl.)
- Coordinated external contractors' work on custom server software.
- Designed and automated lightweight build/deploy process.
- Prototyped automated testing measures.
- Created developer training materials.
UConn Health Center // Farmington, CT
Technology Coordinator (Jul 1999 – Mar 2000)
- Developed, maintained, and supported automated billing solution. (Perl, Access, VB, shell)
- Developed websites. (PHP)
- Administered Solaris and Linux workstations.
- Trained and supported regional medical librarians on tech issues.
Gcom, Inc. // Savoy, IL
Technical Writer & Webmaster (Jan 1996 – Jul 1999)
- Wrote API and administration documents for protocol software.
- Developed CGI and sample programs in Perl, C.
- Developed website.
Education
University of Illinois at Urbana-Champaign // Urbana, IL
Master of Science, Library and Information Science (Aug 1995 – Jun 1998)
Southern Illinois University at Carbondale // Carbondale, IL
Bachelor of Arts, English (Aug 1989 – Aug 1992)
Public Speaking
Diving into the Wreck // PyCon (Portland, Jun 2016)
- Postmortem analysis of some common performance problems
- Code repo at GitHub
- Video at YouTube
Code Review, Revision, and Technical Debt // PyCaribbean (Santo Domingo, Feb 2016)
- How we learn to write and its implications for code review and technical debt
- Video at YouTube
Performance by the Numbers // PyCon (Montréal, Apr 2015)
- Overview of performance measurement techniques
- Video at YouTube
Show Some Spine // Boston Django Meetup (Nov 2011)
- Tutorial on using Backbone.js with Django.
- Slides at SlideShare.
- Event page at Meetup