Senior Ruby on Rails Engineer at Dish Network

Tech Used

  • React Native / Javascript
  • Ruby on Rails
  • MySQL
  • Elastic Search
  • Redis
  • Memcache
  • Kafka
  • Docker
  • AWS
  • Git / Gitlab
  • Jira

Notable Achievements

Migrated Ruby on Rails monolith to upgraded upstream dependencies

Deep Dive
Video streaming platforms usually have backends that talk to other backends. Most of the functionality fueled by video platforms are from discrete external services. Usually most of these video platforms have a single backend that practices the API Gateway Design Pattern.

At Dish Network, I was tasked with migrated two of our external dependencies to upgraded versions. Our platform was roughly 14 years old and the two external dependencies in question were woefully outdated. Any new migration would causing breaking changes.

During my tenure, I was able to migrate to new services to fuel upgraded video playback functionality and cleaner metadata.

Stabilized Data ingestion for speed and data reliability

Deep Dive
Video streaming platforms most likely are not the "owners" of the content that they play. There are certain licensing agreements and deals that video platforms make with the "asset providers".

Because of this, consumer facing backends have to periodically ingest this data and ingest this data in a scalable way. The video platform I was working on was really focused on live tv content. One of the issues we were facing with our current ingestion is the data replication issues with heavy tv scheduling changes.

During me tenure, I was able to modify our timed jobs to mitigate data replication issues and trigger seamless updates in scheduling.

Devops, Containerization, and Gitlab Pipelines

Deep Dive
When I first arrived at Dish Network, the product I was working on was not dockerized. I volunteered to help dockerize the Ruby on Rails application to create a better developer experience.

Also during this time, my team was migrating from Jenkins to Gitlab. Our devops engineer had trouble writing pipeline jobs correctly because of our complex tech stack. I volunteered to rewrite the pipeline job using Docker in Docker to create a more stable pipeline.

Led knowledge transfer / pair programming seminars

Deep Dive
When I first arrived at Dish Network, the product I was working on was poorly misunderstood with almost no documentation. Dish Network led an initiative to understand how to optimize various internal products and services. I was tasked with the effort with documenting our Ruby on Rails monolith and leading knowledge transfer sessions with stake holders and external engineering teams.