Work

Moz Lab


Moz Lab is an environment for product teams to test new ideas and validate business opportunities with customers and industry experts.

This is the output of the Moz' Rapid Prototyping Team I helped form and led. We saw a need for near-term progress on various product initiatives and a capability to rapidly vet and validate business opportunities.

I led a small team of engineers with an appetite for exploration and innovation, and we worked tightly with 3 product teams made up of product managers, designers, and product marketers. The result is a platform where we can quickly turn ideas into simple prototypes with customer access controlled by feature flags.

Node.js let us quickly cycle between front-end and back-end concerns. We built a flexible UI environment using React, Material UI, and an in-house component library to quickly create and modify applications. We used the UI server to also build a set of APIs to implement a "backend for frontend" pattern.

Any workloads related to persistence or background jobs were implemented in a "middle tier" service. We used AWS SQS to process long-running jobs and MySQL for general persistence needs.

Technologies Used

  • Node.js and Express.js
  • JavaScript
  • React and Material UI
  • AWS Aurora RDS MySQL
  • AWS Elasticache Redis

Personal Contributions

  • Team lead, ensuring engineers had clear objectives and a barrier-free path to implement and collaborate on product ideas
  • Software engineer when sprint needs demanded it
  • Consult and coaching with product managers to help them turn their visions into iterable milestones
  • Interface to the rest of the company from individual contributors to executives to help them understand progress of the alphas

Moz Local Market Analytics


Local Market Analytics (LMA) is the result of an exploration effort at Moz to answer the question "how do local SEOs determine their next step after business listings". I led a small team of engineers and a designer to interview customers for pain points, rapidly produce prototypes, and iterate toward a validated opportunity for Moz.

We built and launched a beta product for launch at MozCon 2019 where I helped support sales calls and various press releases. [1], [2]

To help customers with local search analytics needs, we focused on these core promises:

  • gather data that reflects and surfaces your target markets
  • learn how searcher location impacts your search presence
  • identify Who, Where, and Why among market competitors
  • detect Anomalies and SERP Movement with Alerts
  • determine a "next step" to improve presence in a target market and overtake competitors

We were able to do this with sophisticated awareness of geography and geo-located SERP analysis. We could show users how their search presence changed from city to city, neighborhood to neighborhood, and coast to coast. More importantly, we could show them how their competitors changed as market segments changed.

We made use of Postgres and its fantastic PostGIS extensions to model our understanding of the geographies of target audiences. Even more exciting was our approach to what we called "multisampling": for any target market our user identified, we computed a set of SERP observations radiating out from the centroid we determined for that market. That means analysis of any given target search was made up of multiple samples around the target geography, revealing variance within the market itself.

This was an exciting project where I led as product manager. I could leverage my interview and research capabilities to discover and validate product opportunities. I also used my software background to improve the cycle time of determining feasibility of any idea -- often implementing a proof of concept myself.

Technologies Used

  • Node.js and Express
  • React and Material UI
  • Postgres with PostGIS
  • Docker and Docker Compose for development, deployment, and orchestration
  • Unleashed for feature flagging

Personal Contributions

  • Product manager leading activities like user research, roadmapping and vision casting, customer support preparation, sales enablement, demos, sales calls, backlog management, and sprint planning
  • Implemented many original core features both in the UI and in back end services powering those features
  • Conducted many experiments and interviewed with customers to explore opportunities

Moz My Business Console


My Business Console was a quick-response project released in 2016 by Moz to fill a gap left in Google's "Google My Business" interface.

Many business owners and the agencies supporting them use Google My Business (GMB) to create a presence for their business on Google -- especially on Google Maps. They can also use GMB to control manage access to their business listings to share management to their team members.

For large brands and for agencies serving multiple business accounts, performing these actions in bulk was overly cumbersome. However, we saw an opportunity to use the GMB API to help automate some of these features.

We worked rapidly -- moving from concept to design to release -- to build a bulk account management tool in a matter of weeks. Though this wasn't in Moz' direct line of business, we were frequent users of the GMB API to power our own products. We were able to build this as a service to local SEO community and released it as a free tool to customers and non-customers alike.

GMB has evolved a lot since then and the tool has since been retired.

Technologies Used

  • Node.js and Express.js
  • React and Bootstrap
  • RethinkDB

Personal Contributions

  • One of two developers working on the system, building out the majority of the backend services and contributing to the front end
  • Supported launch and press release efforts

Moz Local


Moz Local is a data management and performance analysis tool to help customers manage the presence of their business locations online. It dealt primarily with managing accuracy of listings across a portfolio of business directories and aggregators.

In order to achieve accuracy, the service ran repeated checks for accuracy and regularly pushed updates to resolve any inconsistencies that crept into the ecosystem.

The service also identified and suppressed alternates, near matches, and duplicates to help customers ensure their audience was finding the one true canonical representation of their business.

It also offered analytics features for power users who wanted to track performance in accuracy, rankings, and business review over time.

Technologies Used

  • Node.js and Express
  • Backbone, React, and Bootstrap
  • Elasticsearch to power multi-facet search experiences and reporting
  • MySQL for product attributes and state
  • RethinkDB to store unstructured ecosystem search results and accuracy checks
  • Redis for caching, service discovery, and <24 hour analytics data access
  • Internally developed service discovery and port registry
  • NSQ for distributed messaging
  • sortdb to power time-series location analytics queries for customer dashboards
  • Go for high-performance multiplexing of analytics queries to sortdb
  • drake to power ETL pipelines for product analytics
  • Ubuntu VMs and puppet for provisioning and deployments

UP Global - Community Sites


The "Community Sites" project is a platform to showcase entrepreneurial communities and highlight the efforts of UP Global community leaders.

We simplified the efforts of gathering information about UP Global programs in a community from various sources. Most importantly, we automated the creation of Startup Weekend and Startup Next event sites from our event planning tools.

Noteworthy Technical Accomplishments

  • Disparate Data Source Compilation
    We chose Node.js for its ability to serve as robust component in a network graph. In our case, we leverage the asynchronous nature of Node.js programming to bring multiple API sources together quickly. This allows to create the feeling of "one site" powered by multiple datasources
  • Intelligent Routing
    In order to balance SEO needs with human-friendly URL paths, we use Nginx to perform pattern matching, community lookups, and intelligent rerouting to ensure our URL schemas work for all communities.
  • Flexible Community Definitions
    Communities define themselve differently than what they see on a map. Some communities identify as an entire country; others define themselves a collection of small cities or nearby states. Our system allows for complex community modeling to describe communities as our community members do.

Technologies Used

  • Node.js and Express.js
  • CoffeeScript
  • Sass and Foundation 4
  • Redis

Personal Contributions

  • Overall multi-system architecture and design
  • Lead engineer and primary support engineer
  • Early customer research and product management

UP Global - SWOOP


SWOOP is the primary web application driving UP Global's core technical infrastructure.

It hosts the web application our Core Team uses to track and manage events, community leaders, and communities.

It is also the platform on which we build Community Leader Tools for event organizers to us while planning and promoting their events.

Finally, it is the API that powers our connected services like Community Sites and various accounting systems.

Technologies Used

  • Node.js and Express.js
  • CoffeeScript
  • Stylus and Twitter Bootstrap
  • Handlebars and ECO templates
  • MongoDB

Personal Contributions

  • Early core engineer
  • Primary support engineer
  • Program manager for API-powered projects

David Pierce

Copyright 2021. All rights reserved.