Senior Software Engineer - Golang at Andela () (allows remote)
Type: Full Time
Created: 2021-06-18 05:01:55
Build and maintain backend APIs and services that will be used by Pluto TV client applications and other services. These APIs will need to be highly available and performant under high levels of traffic, as we continue to expand the reach of the Pluto TV technical ecosystem, with growth in number of users and number of devices and countries that we support.
Core Services developers are expected to own not just the code, but also the infrastructure automation that enables their code (and any data dependencies) to be deployed, migrated, and upgraded successfully across multiple environments, with zero downtime.
- Solid backend services experience -- ideally Golang, but NodeJS experience is also good
- Very strong technical communication skills
- Performance and scalability experience - some AWS experience
- Nice to have: Google Cloud
- Nice to have: Docker and Kubernetes experience
- Nice to have: MongoDB or Postgres experience
- Nice to have: Video experienceAdditional info about the team & the role:
The Pluto TV Core Services team is responsible for most of the high-volume internal services
that power the range of Pluto TV client applications and devices.
Some of the services currently in development, and on the roadmap:
- A users service, handling authentication for Pluto-native users as well as federated
logins through Google and other OAuth providers
- A watchlist service, to store 'favorite' channels, "watch later" clips, and pause/resume
points for maintaining a user's playback position in a video when switching between
- A variety of key and license management services to support DRM across all major
- A variety of 'program guide' services that list available content on our linear channels
and our video-on-demand catalog
- A media search service, allowing full-text-search against our content catalogOur services are all expected to maintain > 99.5% availability and response times under 200ms, while handling sustained loads of up to 20,000 requests per second.
We have some common patterns for achieving such reliability and performance targets, but usually need to devise
unique solutions for each service. Individual engineers are the ones responsible for leading the architecture, design, implementation, and deployment of these new services, so there will be many opportunities to contribute in each of these areas.Our services are written in Golang and some Node, and currently run in containers on AWS Elastic Container Service and Lambda functions, with data persistence and caching through Mongo, Postgres, and occasionally Redis