Section header image

Analytics Dashboard

  • HTML
  • CSS
  • JavaScript
  • Git
  • Unix Shell
  • React
  • TypeScript
  • Node.js
  • CI / CD
  • WordPress
  • Figma
  • PHP
  • Photoshop / GIMP
  • Illustrator / Inkscape
  • GCP
  • Mongo DB

At Streamroot I worked as the tech lead of the company’s analytics dashboard team. We developed a web app which was used both internally and externally to monitor and configure usage of the company’s video streaming products.

Our dashboard was the primary interaction point for customers to understand the value of the underlying products as well as diagnose potential issues, so it was critical that we validate the accuracy of all data visualizations as well as confirm that all configuration tools worked in case a client needed to alter parameters of their integrations.

The Dashboard Rewrite

During my onboarding process with the existing dashboard I was told about its history as a project being passed between interns for years and that it was expected that a rewrite was imminent. Despite this series of handoffs, it was clear that talented developers had been working on various sections of the code. However, the lack of continuity manifested in handling certain problems in disjointed ways across the codebase, making it difficult and time-consuming to ensure that modifications in one area of the code didn’t have unexpected negative consequences elsewhere. On top of this, it had been anounced at the start of the year that Angular 1 was entering maintenance mode and migration was encouraged.

When it came to deciding how to move forward, I surveyed the frontend ecosystem and arrived at choosing React + TypeScript for the UI. This was based on both what I felt I could support with my experience and what I perceived to be strong, growing communities at the time when considering library support as well as finding talent later on. So it began - an excellent intern and I collaborated with the product team on specifications and mock ups for the future dashboard while creating the foundation of the app based on the existing dashboard. Then we stepped through implementation of each of the pages as designs were completed.

This project was a huge learning experience for me, from developing the foundation of a large codebase to mentoring to the ongoing work of cultivating the developer experience of a growing team. It was a bit of a trial by fire and I certainly learned about estimation and buffer time for the unexpected. Ultimately we were late with the release and had plenty of bugs to iron out so we were very thankful that the old dashboard was available in the meantime, but I’m so proud of the work we did and we got great feedback from the rest of the company once it was released.