Crunchyroll is a streaming service that offers anime, movies, and television series.
## My responsibilities were:
• Develop back-end systems using Typescript, NodeJS, Lambda Functions, DynamoDB, S3, and WebSockets.
• Set up the infrastructure and deploy applications into AWS using the Serverless framework.
• Create dashboards, and monitors and integrate the applications with DataDog for observability.
## My main achievements were:
• As a member of a Tiger Team I designed and implemented a new decentralized and highly concurrent product, which enabled internal teams to create and publish different home page feeds to end users.
• Integrated an AI Content Personalization system with Crunchyroll services which led us to improve the content delivered to the end users by sending learn actions based on its inputs.
• Integrated an AI Text Translation system with Crunchyroll services which increased the number of provided languages to end users.
Responsibilities:
• Maintain and develop functionalities for user registration and referral microservices, using Golang, Docker, Redis, PostgreSQL, and RabbitMQ.
• Deploy the application using GitHub actions and Jenkins the AWS infrastructure.
• Communicate with other teams to discover problems before developing a new feature.
Achievements:
• Decreased the amount of dropoff on the user registration process, by reducing the number of required fields and steps.
• Made it possible to use the app and load/spend money even if the user has not verified their identity (passed KYC).
• Outlined in RFCs the processes to turn the monolithic services into microservices.
Responsibilities:
• Design and develop three different microservices for the card-issuing system that manages the logistics and the card's life-cycle, authorizes online card transactions, and conciliates payments, using Go/Golang, gRPC, PostgreSQL, Docker, and GCP Pub/Sub.
• Deploy the application using GitHub Actions and Gitlab CI into a Kubernetes cluster.
Achievements:
• Reduced the overall time on requesting a card by turning it into an async procedure using GCP Pub/Sub.
• Turned the card requesting procedure to an idempotent and less prone to errors procedure using backoff retries and DLQs.
• Added unit and integration tests by using a domain-centric approach.
Responsibilities:
• Develop and maintain a Payment system, using Go/Golang, DynamoDB, Redis, and PostgreSQL.
• Design and develop the new architecture of the application,
• Deploy the application using a CI/CD tool called Jenkins and Kubernetes in AWS.
Achievements:
• Added unit and integration tests to cover the most important parts of the application.
• Reduced the load on the third-party system, which couldn’t handle our users' requests, by changing our architecture.
• Introduced events on the system by using AWS SQS/SNS to run processes in the background.
• Reduced the number of errors in processing the customers’ payments, by running them in the background, using a backoff retry and DLQs.
• Guided other developers in learning about Go/GoLang, microservices, layered Architecture, etc
Responsibilities:
• Design and develop the entire application's backend using PHP with Yii Framework, and PostgreSQL.
• Develop the communication with the tracking device system, using Go/GoLang, PostgreSQL, MongoDB, Redis, RabbitMQ, and Microservices.
• Identify customers' needs and implement new functionalities.
Achievements:
• Reduced the amount of time to render the user's location in the UI by using events with RabbitMQ, Redis, and Websockets.
• Designed and implemented a Geo fence feature, where the customer could draw the fence on the map so the system emits events based on it.
• Implemented a text messaging feature, in which a customer could send text messages to the radio.
• Implemented a status feature, which could represent a business status sent by the radio's user, like emergency, availability, etc.
• Guided and mentored other developers, resulting in less time for onboarding and better code quality.
• Led efforts to add more tracking devices to the system, like vehicular trackers, mobile phones, and iBeacons/Scanners for indoor locations.