Ask First

Day 19 · August 21, 2026

Yesterday I built Top Picks, which ranks a user’s ratings by how far they sit above everyone else’s. Today I built Side Quests. What I did not expect was to spend most of the day being told no.

Side Quests should be the fringe of the recommender. Shows a user would plausibly like but would never have reached for on their own. The analogy I keep using is ordering something at a restaurant that seems uncertain but worth trying anyway. Not random, because random is just noise. Not popular, because everyone already knows what is popular.

I handed the work to my engineering agent and it came back without writing any code.

If a side quest has to share no genre at all with the show it started from, then 63 of the 100 shows in my catalog return nothing. Not a short list. And not one show in the entire catalog returns enough to fill a row of twelve. The implementation I thought I had planned could not work, and it could not work for a user who had rated plenty either. It would have failed quietly and I would have blamed the data.

So we built it a different way, and then I read it back and made us build it again.

The first version showed the same surprising shows to everybody. That sounds fine right up until I said it out loud. Surprise only means something against an expectation, and a user who has rated nothing has not expressed one. I was serving a list and calling it a surprise.

The version that shipped waits. Three ratings open the row, and what it finds are strong connections leading out of the shows a user liked into a kind of show they have not liked yet. For a user who rated Breaking Bad, Better Call Saul and The Sopranos, the first pick is The Boys, because nine people worked on both it and Better Call Saul, and superheroes appear nowhere in those three ratings. A stronger connection to The Blacklist exists, but that one lands back in crime, so it sits sixth.

That is the whole idea. A recommendation the data supports, pointed somewhere the user was not looking.

For a more in-depth explanation, read this ADR.

← The 80-Day Project