I was also working on smaller issues including researching performance issues with embedded video players on mobile devices. My research on this problem led to creating a new widget to simplify the creation of embedded players that also allows for lazy loading to improve user experience. My hope is that with further improvements to our player combined with this widget we can eliminate the need for iframes on our own pages with multiple embedded videos. This should help our editorial teams create pages with more clips that will help increase user engagement.

Early on in the year, I jumped into things by taking on the integration of the new DRACO module for Roku universal search into our Drupal instances. This required working closely with the module’s creator, as well as other developers on our team, to overcome problems relating to memory usage and validation errors relating to missing data. Later I would be able transfer some of what I learned from this to setting up the Google playguide feed.

By the second quarter, I was taking on my share of sprint maintenance duties, deploying hotfixes and the end-of-sprint update. I also advocated for improvements to the sprint process, and wrote shell scripts to streamline the sprint maintenance work. Our process has further evolved and these scripts are no longer necessary, but I think they were important if only because they demonstrated the specific reasons our process needed to improve.
I also took on integrating our Drupal systems with Sentry.io for error monitoring, which will become increasingly important now that we have moved off Harbor and it is a little harder to see errors.
I integrated our Drupal sites with the Highlander unique ID service. The Highlander integration took a fair bit of work to get right, but will help us gain insight into user watching habits.

During the summer I began diving deeper into GraphQL research for the upcoming React Native app rewrite effort, expanding on what I had learned during the proof-of-concept experimentation earlier in the year. This would come to dominate my work for the rest of the year. Through the end of summer, I participated in countless meetings preparing for the React Native effort, giving my opinions on the best way to accomplish features in regards to both GraphQL and Drupal.
Towards the end of the second quarter I began diving into the current JavaScript code surrounding our video player in researching expanding the video page functionality to include new features to improve our VOD experience. In the summer, I led the charge to replace the video page code with a new version created in React. Though this work was put on hold, I am hopeful there will be time in the roadmap next year to complete it. I believe it will greatly improve our ability to enhance the video player by making it easier to reason about the workings of it; this will help us encourage users to spend more time on VOD. One big part of this React effort that I did complete was the up next carousel, which loads videos relevant to the current video in a carousel below the player and automatically plays them once the current video completes. The monthly product summary indicates an increase in time spent watching after this feature was rolled out, however the numbers in the summary are not detailed enough to affirmatively say this was the reason.

As we come to the end of the year, I’ve been focused on work in both Drupal and GraphQL to support the new React Native apps. I have helped coordinate and supervise the work of our contractor working on GraphQL.
I think there are a number of things we still need to improve, such as our code reviews and learning from the results of our sprints, but I am encouraged by what we have done so far this year. I’m excited by how close we are to releasing the new apps, and by what we can do with the features we’ve created for the new apps on our regular websites.