Contact Info

  • Email:
  • Telephone: +1-773-562-5786
  • Web:

What I Do

Since 1988, I've developed or managed the development of software for embedded microprocessors, desktop operating systems, and web applications. I've used open source technology as my primary development tool set to build large-scale, B2C web applications in publishing, marketing, and non-profit promotion and support. I enjoy leading teams of smart people to build new products.

As an architect, I believe the user's needs, rather than a programmer's view of the world, should shape software's functionality. From initial marketing experiments to MVP design, long-term architecture, implementation, and launch, I enjoy iterating on commercially successful applications that people find useful and engaging.

As a programmer, I prefer to work by the precepts outlined in The Pragmatic Programmer and the original Agile Manifesto. I believe that while each programmer may prefer certain tools (mine: AWS, Git, Javascript/Node, Go), good programmers experiment with other languages, methods and tools and take ideas from each back to their daily work. I believe that code is a form of communication and organizational memory, and so programmers should strive to write as cleanly as they can in both the application's source code and its documentation for the benefit of the next person who has to work with their program.

As a team lead, I prefer the "servant leadership" philosophy of management. I try to provide resources and remove obstacles for my people so they can do their best work. I aim for sustainable pace, practical skill development and clear objectives for my team. I've grown high-functioning teams with product and project managers, front-end, back-end and QA developers, operations personnel and business analysts working together. I believe the best planning synthesizes the perspectives of technical, marketing, support and executive stakeholders with the concerns of the end user prioritized above all else.

I’ve brought development and project management processes to each of my employers, learning the particulars of each business and adjusting the development playbook specifically for that situation. I prefer lightweight, collaborative methods and unobtrusive tools, though I also think there are no silver bullets for the process of software development and I prefer to avoid process dogma. Every team has its own set of concerns and requires its own set of solutions.

Work Experience

Public Good Software, Inc.

Chief Technology Officer May 2015 – Present Chicago, IL

Senior Engineer Apr 2014 – May 2015

Public Good Software's suite of machine learning enabled products allow the readers of journalistic content to take action on the social causes and issues they read about at the moment when they are most inspired to take action.

As CTO, I lead a team of 4-6 engineers, project managers and contractors in the development of front-end web applications and embeddable JavaScript features distributed to third-party web properties, back-end services, and multiple integrations with data services and content management systems (, Embedly, Superfeedr, Braintree Payments, VolunteerMatch, GuideStar, among others). I act as the principal architect for PGS's services and assist the other engineers in the design and implementation of internal APIs and applications involving machine learning algorithms and automated textual analysis. I also co-authored the paper "Automating, Operationalizing and Productizing Journalistic Article Analysis." (Bloomberg Data for Good Exchange 2017, Oct 23, 2017) with Eric Kingery and Daniel Ratner.

I am responsible for the planning and budgeting of all PGS's technology expenditures and technology-specific personnel (full-time and contract). I also represent the company's technology expertise in public forums whenever possible.

As senior engineer, I was responsible for the development and deployment of PGS's core internal API for managing nonprofit entities and the actions that users could perform on behalf of those entities. This API's services were written in Go and deployed via Docker containers to AWS Elastic Beanstalk.

MSM Projects, LLC

Principal Dec 2010 – Present Chicago, IL

Architect, lead programmer, project manager and technical writer working on new SAAS applications and consulting with individuals, small businesses, non-profits and NGOs on web-based content management needs.

Elevate Studios

Director of Software Development Jun 2012 – Nov 2013 Chicago, IL

Managed back-end development, legacy/third-party system integrations, and technology assessments on client projects. During my time at Elevate, I worked on three major client projects:

Project 1: Lead developer on a highly customized Wordpress implementation for a B2B client's marketing site, using HTML mockups from Elevate design staff and functional direction from client marketing staff. Implementation included custom themes and multiple custom Wordpress plugins.

Project 2: Lead back-end developer on a large B2C client project, integrating Concrete5 CMS with client's existing back-end services (SOAP) and applications for appointment booking, gift certificate fulfillment and other e-commerce functions.

Project 3: Worked with user experience and client engineering teams to prototype a large B2C e-commerce interface that incorporated several disparate but closely-aligned features that had not previously been offered in an integrated fashion in the market.

In addition:

Contributed to new business pitches. Performed initial recommendations and estimations for application architecture, platform selection, vendor selection, operational costs, development time and process descriptions. Provided specifications for application features and wrote feasibility studies for client concepts.

Developed, implemented and documented company standards and practices for software development and QA processes.

Managed and budgeted for IT services including phones, network devices, Internet connectivity, email, SAAS subscriptions, managed services, suite cabling and security.

Responsible for hiring full-time and contract software engineers. Supervisor of one senior developer.

Leapfrog Online

Senior Director of Software Engineering Mar 2002 – Dec 2010 Evanston, IL

As Sr. Director of Software Engineering:

Designed software for customer acquisition campaigns. Projects included integrations with vertical-specific lead and order provisioning systems that were refactored into general-purpose lead handling, landing page display, and business intelligence platforms. Clients were Fortune 500 companies in financial services, broadband telecommunications, home services and B2C e-commerce.

Established pragmatic software development practices (PHP, Python, Ruby) in engineering and operations, including test-driven development, DCVS use, code reviews and continuous integration.

Established career paths for engineers willing to take on management responsibilities and engineers who preferred additional technical duties.

Researched and discussed business concept and industry/company terminology conflicts with staff at all levels and departments, with the goal of realigning the product line with the changing advertising marketplace.

Maintained an internal blog covering topics in software development and proof-of-concept experiments, market testing methodologies, and company terminology issues.

In other roles:

Established quality assurance practices to improve the functional correctness of software across all business units.

Established an Office of Technical Project Management to manage multiple simultaneous development initiatives, using Scrum and Kanban methodologies and project portfolio management.

Supervisor of 8-20 full-time/contract software and QA engineers, project managers, database administrators, system administrators and IT managers.

Responsible for IT services for 100+ employees, including corporate e-mail, networking, hardware and software licensing and systems inventory. Drafted, implemented and enforced corporate policies regarding data/network security and IT governance.

Responsible for vendor management, department budgeting and personnel planning, including writing job descriptions for all technical positions.

Playboy Enterprises, Inc.

Director of Technology May 1997 – Mar 2002 Chicago, IL

Responsible for software development and architecture and infrastructure for all web properties, including: deployment of custom application servers, content management, syndication and production workflow systems; technology vendor management; software, hardware, third-party service and hosting budgets; architecture of integration methods between internal systems and outside partner systems for online product catalogs, streaming video delivery and magazine subscription fulfillment, among others.

Managed staff of programmers, system admins, database admins. Worked closely with editorial, graphic design and customer support staff. Worked on public-facing and subscription-based web sites that had to service large, enthusiastic audiences. This required a lot of thinking about the best ways to assemble features that would scale as needed and respond quickly to editorial, financial and marketplace demands.

Performed full evaluation of existing internal and contracted services in preparation for a managed services RFP, including audits of capital equipment leases, existing service contracts for data storage and backup, bandwidth provision and security services.

Migrated online subscription services from legacy internal systems to third-party providers.

Assisted technology managers with migration of applications to new data center.

Lead technical evaluation of third-party products, services and potential acquisition targets.

Assisted VP of Operations with quality assurance policy and infrastructure.

Counseled CEO/CTO/COO and senior staff on appropriate Internet technologies and implementation details for various projects.

Supervised three web developers/programmers, two systems administrators, one database administrator.

During this time I was the recipient of a PEI Award for the work done while rebuilding the Playboy Cyber Club.


Technical Writer Jun 1995 – Jul 1996 West Lafayette, IN

Writer of technical manuals and marketing materials. Established company's first internet presence.

Lexmark International

Co-operative Education Employee Aug 1988 – Aug 1991 Lexington, KY

Programmed test harness systems for typewriter and laser printer products; performed experimental integration of vector font technology into existing firmware; developed experimental DOS and Windows parallel port device driver software.


Purdue University

MA/MFA in Creative Writing/English Literature 1992 – 1995

Taught composition. Assisted in establishing online presence for Purdue's Online Writing Laboratory. Edited national literary magazine. Book-length dissertation (collection of short fiction).

Activities and Societies: Editor in Chief, Sycamore Review. President, Friends of Sycamore Review student organization.

Purdue University

BA Software Engineering 1987 – 1992

Activities and Societies: Delta Upsilon, Student Co-operative Education Board, Academic Counselor for School of Interdisciplinary Engineering, Co-operative Engineering Program, programmer for Software Engineering Research Center, proofreader for School of Nuclear Engineering.

Work Samples


Samples may be found at


Samples may be found at