All work

Sky, for Peacock

Regional Sports Networks ZIP code search

On Peacock, the networks you can add depend on where you live. I built the first shared GraphQL layer in Sky's OTT department to power the ZIP code search. You enter your home ZIP code, the GraphQL layer fetches the packages available there, and the frontend shows the matching networks and prices.

Client
Sky, for Peacock
Role
Senior Developer, CMS team tech lead
When
2022 – 2025
Stack
GraphQL, TypeScript, React, Vitest, npm packages
Peacock's Regional Sports Network search with the ZIP code 19102 entered, showing NBC Sports Philadelphia at $24.95 a month

1st shared GraphQL package in Sky's OTT department

The problem

Peacock sells Regional Sports Networks (RSNs) as add-ons, such as NBC Sports Philadelphia for live Phillies, 76ers and Flyers games. Which networks someone can buy depends on their home ZIP code, so before they can choose a package, the site has to look up what is available where they live.

At the time, Sky’s OTT department had no shared GraphQL layer for teams to fetch this kind of data from.

What I did

I built the first shared GraphQL implementation in Sky’s OTT department to power the search. When someone enters their home ZIP code, a GraphQL query fetches the packages available in that area and returns them in the shape the frontend needs. The frontend then shows each matching network, what it covers and its monthly price.

I wrote the queries, their TypeScript types and the tests, and put them in one shared package published through Sky’s internal npm registry. That meant other teams could install the same queries and types instead of writing their own.

The result

People can check which regional sports networks they can get, and how much they cost, by entering their ZIP code on Peacock’s RSN pages. Behind it, the shared GraphQL package gave multiple teams one typed, tested way to fetch the same data.

Contact

Got a project or a role in mind?

I'm open to senior and lead frontend roles, and to selected freelance projects.