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!
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.
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!