Welcome to the Vevo Product & Engineering Blog

Welcome to the Vevo Product & Engineering Blog. We’ve dabbled with this format in the past, but our 2018 resolution is to share more with the greater engineering community. One way we’ll be doing this is by posting about things we learn, hard problems we’ve solved and occasionally open sourcing code. We’ll also share what has worked for us from a process perspective in our Product organization.

This first post aims to give you an understanding of how we build things at Vevo, both from a technical and a process perspective. For our first technical blog post, head over to our post on dynamo database backups to learn about our open source library Dynamodbdump. We’re excited for this to be our first official open source code!

Our Stack

We’re big fans of React at Vevo. All of our JavaScript projects use either React/Redux or React/Apollo (to talk to GraphQL). We have been using GraphQL for the last year which has improved our workflow between teams and helped reduce regressions in production apps. Look for upcoming posts on JavaScript covering SEO, performance and related topics.

Our services are built in a microservice model. This allows us to use many different languages, although we lean heavily towards Java. We also use JavaScript, Scala, Go and Python depending on the service/use case. We look for a balance between what are we already good at and what is the right tool for this job.

The backbone of our team, Infrastructure provides tools that make every other engineer’s life easier. Rather than seeing the infrastructure group as a customer service team that helps other engineers, they build tools that let engineers automate common tasks and provide support for those tools. We use AWS, GoCD, kubernetes, terraform and other tools.

Experiments

We believe in validating our theories before investing fully in them. To that end, we often build small prototypes or run experiments on subsets of our content before deciding to move forward. We’ve been using this approach to prove out increasing engagement with our video content. We run a test with some of the content while keeping another bucket as the control. So far we’ve seen good improvements here and have continued to iterate.

Always be improving

Rather than try to fix problems with process, we aim to iterate on our product development process through a regular retrospective cadence. We currently use feature teams to deliver on high priority projects. These teams are groups of engineers, data scientists, product managers and designers tasked with a specific outcome. The teams are goals driven which gives them the ability to make their own implementation decisions. This means our feature teams are fully trusted to execute as they see fit. To build accountability into this system, feature teams set their own milestones.

After every milestone, we evaluate how the team did and determine if we need any updates to our approach. Over time, this has led to many successful projects being delivered on time. An upcoming product post will cover this in more detail.

Thanks for checking out the blog. Leave us a comment to let us know what kind of topics you’d like to hear about!

Like what you read? Give Elyse Kolker Gordon a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.