Building Feeds at The New York Times
Status: submitted
Section: Full talk (35/45 minutes)
Technical level: Beginner
Votes: +1
Your opinion is important to us! Rate this proposal
A feed is an ordered collection of content (like articles, images, or recipes) that allows one to browse a large amount of information quickly and comfortably. Feeds are everywhere – open any app on your phone and odds are you will find a couple.

In my 6 years working at The New York Times, I've architected, built, and refactored feeds in four different apps: NYT Now, Watching, Cooking (iOS), and now Cooking (Android). I've been a native engineer and a full-stack web engineer, using a variety of different programming languages like Swift, Objective-C, Kotlin, Javascript, and Go. Though those were all very different experiences, each project centered around building a feed. Those experiences allowed me to iterate on a general solution and come up with platform agnostic best practices.

In this iOS-focused talk I will share my approach to building feeds. You'll learn how to:
- Define a data schema for your API based on designs or mockups.
- Use unidirectional data flow to better separate concerns in your app
- Use view models to simplify your views and increase development speed
- Deal with data from one or more APIs with different shapes of responses

Expect this presentation to use more boxes and arrows than code. I'll use real-world examples based on the challenges that my teams at The New York Times have faced.
Speaker bio
JC is an Engineering Manager in The New York Times' New Products team, where he manages the NYT Cooking iOS and Android (coming soon!) apps. Previously he led the development of NYT Cooking for iOS, NYT Watching (TV and movie recommendations app) and NYT Now (a now-retired news app). JC has a BS in Computer Science degree from the Tufts University School of Engineering. Outside of work, he is an opera producer, a classically trained tenor, "studying" for a sommelier certification, and is always looking for new things to learn and do.