In ten years of building frontend and backend systems, I have had the privilege of growing from a junior engineer primarily excited to author code into a Staff engineer interested in broader organizational impact through leadership opportunities and strategic engineering investment.
My experience at the New York Times has afforded me the opportunity to be involved with and lead a wide variety projects across a number of tech stacks. Here are a few of my favorites:
Skyscraper is a set of utilities and orchestration service that enables developers in the NYT newsroom to quickly author and schedule scrapers for a variety of reporting use cases. It replaces and consolidates 3 prior scraping tools and provides a common and flexible foundation for offering everything from one-off scrapers to complex scraper pipelines used for NYT live-coverage.
As tech lead for two of four systems powering 2022 election coverage, I led initial development among 8 engineers in two teams to adapt prior 2020 election learnings in support of configuring and publishing thousands of election pages throughout the 2022 primaries and general election. Both systems were built to be more observable, testable, and adaptable than prior approaches, and a distributed ownership model helped facilitate smoother transitions to new tech leads throughout the cycle. In addition to the Publisher also supporting Olympics coverage, both systems continue to support 2024 election coverage and were transitioned to new application owners.
Architecture Review Board (ARB) is a group of engineers responsible for facilitating and reviewing RFCs written by software engineering teams across NYT. As chairperson, I led a group of 16 engineers to refine and execute processes that made the group's work more sustainable.
As co-tech lead for the 2020 elections platform, I led a group of 40+ editors and engineers to contribute to a platform that analyzed and covered all federal elections in the United States across hundreds of live updating pages. As part of this work, I also spearheaded the effort to enable publishing election coverage (900+ pages on general election night) simultaneously through core NYT publishing systems for the first time, which became crucial to publishing the Pulitzer Prize winning county-level COVID case count maps.
The 2020 app served as a bridge between prior monolithic architecture that required closely monitoring application logs and a new service mesh approach that could be run locally in a few processes as well as deployed to GKE. We developed this platform iteratively, starting with a core group of contributors and adjusting the contributor pool as coverage needs expanded. The 2020 feature set continued to be used in 2021 with a smaller staffing footprint, where the major use case was the ranked-choice NYC mayoral election.
Tasked with improving mobile-app developer previews for engineers and editors in the NYT newsroom, I led a cross functional team of engineers, product managers, and team leads to build consensus around a solution that took advantage of existing CI processes and created more flexible QA and debugging workflows for breaking news coverage.
As maintainer of an existing package for rendering develop web previews, I was tasked with delivering a new approach that would improve reliability and reduce maintenance costs. Working with another engineer, we arrived at a new integration that built upon prior work to pass in-progress stories through internally deployed NYT core services. This new approach automatically stays up-to-date with changes to NYT's story and home pages, while reducing the number of failure modes and improving observability of how the platform is being used.
Library is a wiki powered by Google Docs. By placing documents within a Google Shared Drive or Folder and sharing it with a GCP service account, even contributors with limited engineering experience can deploy a custom, accessible wiki to Heroku or App Engine. It was my privilege to serve as lead developer of Library when it was first built in 2017, and again when we released the backend code for it in 2019. Today it continues to host internal NYT documentation and is used by many other major news organizations and nonprofits.
NYT Messenger was a scalable, reusable system for reporters to engage readers with broadcast push notifications and 1-1 followups. I led a team of 3 engineers to build the initial implementation for the 2018 Winter Olympics in Pyeongchang, South Korea. NYT Messenger covered topics ranging from sports to politics, and served as the experimental foundation for NYT's most successful opt-in push channel to date, during the 2018 midterm elections. Although it was sunset in 2019, the core technologies explored continue to be used by ongoing newsroom push experiments.
Chatblog was a foundational tool for NYT's evolving live coverage approach for breaking news and reader engagement. It succeeded a prior tool developed by Interactive News that had grown difficult to support and debug on deadline. I co-architected Chatblog in 2016 as part of a team of 3 engineers, with a specific focus on the Node.js Slack daemon which was responsible for relaying reporter commentary from an internal Slack channel into a Ruby on Rails admin which was used by editors to curate and publish messages throughout live coverage events. After the 2020 general election, Chatblog was transitioned to the new NYT Live group, where its editorial workflows became the foundation for NYT's current live blog platform.
In 2015, I joined a small team of designers, product managers, and engineers to build a proof-of-concept for a future responsive homepage for nytimes.com. The prototype had to demonstrate that it was feasible to use the mobile ranking for NYT's homepage to produce desktop layouts that conveyed sufficient editorial hierarchy to readers without requiring dedicated copyfitting and previewing. Although the effort started as simply a 6 week proof of concept, the prototype was so compelling that the effort was extended to a 9 month effort which culminated in an A/B test to 1% of nytimes.com readers for several months. This project was the first time I experimented with snapshotting and recalling API state as a design and development tool, which became transformational for future NYT Elections feature development and debugging. The editorial and design thinking for this project established the outlines of the workflows of the NYT homepage used today.