Washington Post Projects

Served as Senior Software Engineer on an award-winning software as a service (SaaS) content management system (CMS) that powers over 800 newspapers Features and media outlets worldwide. Consulted business leaders on best practices in platform integrations to expedite onboarding and optimize the readership experience.

Middleware REST API Data Pipeline

Problem

Our company had a powerful CMS but migrating media outlets from their previous system to ours proved daunting because in some cases they were abandoning their old system for ours and we simply needed a one time ETL job; for other clients it would be a more complicated ongoing sync between systems. We were originally building a custom integration for each client but that proved too expensive.

Solution

We built a multi-tenant REST API to allow newsrooms to easily sync with the CMS to run and monitor ETL operations and ensure all their news articles existed in both systems. The API would be customizable for each newsroom no matter their data model and scaleable enough to handle 30+ newspaper companies migrating up to 100K records totaling to 3 million records potentially migrated every minute.

Tech Skills Used

  • Developed the API using Python/Flask framework and Dynamo DB for transaction monitoring
  • Deployed modular AWS Lambda endpoints which were polymorphic in implementation yet individual to client needs
  • Utilized Celery and Rabbit MQ to streamline asynchronous operations
  • Implemented Datadog wrappers to monitor bottlenecks, traffic request and overall pipeline performance
  • Followed TDD best practices using Tox testing suite coupled with Pytest to ensure over 90% code coverage
  • Trained external developers on application usage and best practices
Wires Application to Poll latest articles

Problem

Many newspaper outlets do not write all their own stories and publish articles from external providers via a process called “Wires”. These stories are typically available as feeds such as RSS, Apple, Facebook, etc. and our system needed to handle all of these as well as any potential ones in the future.

Solution

I collaborated on a scheduler application to retrieve the latest stories for external feeds and migrate them to the multi-tenant API mentioned above.

Tech Skills Used

  • Adhered to “Strategy” Design Pattern to select appropriate feed type at runtime
  • Set up S3 buckets with Lambda triggers to monitor client changes and migrate content appropriately
  • Traced outcomes to AWS Cloudwatch for log monitoring
  • Implemented Betamax Requests library to minimize API operations in unit tests
  • Followed TDD best practices using Tox testing suite coupled with Pytest to ensure over 90% code coverage
Push Notification Portal

Problem

One newspaper relieved heavily on distributing their content through SMS but they were having complications between 3rd parties. Their text message platform Braze was effective at dissemination but had a poor UI and no reporting. They had a reporting tool, SoFi but it did not have Braze integration.

Solution

Build a user friendly application that would integrate into our existing suite of tools that would handle all the SMS selection and creation but would leverage the Braze API as a backend. Additionally any metrics captured would be automatically routed to the reporting tool to create a one way binding between providers.

Tech Skills Used

  • Optimized webhooks following “Observer” design pattern to notify external reporting platforms
  • Leveraged Docker to containerize environments coupled with Jenkins to deploy to a CICD piepline
  • Refactord legacy code to use React Hooks instead of LifeCycle methods
  • Built backend in Flask framework