We will need to introduce the following features to implement the improvements discussed above:
Feature # 1: We want to enable users to see relevant search results despite minor typos.
Feature # 2: Enable the user to view the top-rated movies worldwide, given that we have movie rankings available separately for different geographic regions.
Feature # 3: As part of a demographic study, we are interested in the median age of our viewers. We want to implement a functionality whereby the median age can be updated efficiently whenever a new user signs up for Netflix.
Feature # 4: For efficiently distributing content to different geographic regions and for program recommendation to viewers, we want to determine titles that are gaining or losing popularity scores.
Feature # 5: For the client application, we want to implement a cache with a replacement strategy that replaces the least recently watched title.
Feature # 6: As an alternative to the above, we want to implement a strategy of replacing the least frequently watched titles in the cache.
Feature # 7: During a user session, a user often “shops” around for a program to watch. During this session, we want to let them move back and forth in the history of programs they’ve just browsed. As a developer, you can smell a stack, right? But, we also want the user to be able to directly jump to the top-ranked program from the one’s they’ve browsed.
Feature # 8: As you beta tested feature #7, a user complained that the next and previous functionality isn’t working correctly. Using their session history, we want to check if our implementation is correct or indeed buggy.
Feature # 9: Given an initial set of categories/genres, we want to implement a functionality that returns all the possible movie combinations of a particular category/genre.
Feature # 10: During a user session, there is often a possibility that issues like packet drops and buffering events might emerge. We want to record the median number of buffering events that might occur in a particular session, which could then be used to improve the user experience.
Feature # 11: A set of movies needs to be presented in different orders to a different set of users. We want to generate all the possible permutations of movies in a given marathon.
Feature # 12: For enhancing the Netflix user experience, we want to revamp the continue watching bar that will return the most frequently watched show.