Friday was my last day as an employee of Brightcove. It has been a whirlwind 2 years and 8 months. After so much time in higher ed, a stint at a product-driven technology company was a breath of fresh air. I got to work with some incredibly talented people, and was given the opportunity to expand my knowledge and experience in exciting new ways.
In terms of buzzword compliance, Brightcove does pretty well. The majority of the company’s product suite is run on top of cloud computing providers like Amazon and Google. The technology stack utilizes a distributed, service-oriented architecture, with the microservices exposed via public APIs.
As a complex online video platform, Brightcove’s stack includes workflows for ingesting and transcoding video and other assets, centralized content management, pipelines for packaging assets and generating video players, global distribution using content delivery networks, and complex analytics using tracking beacons. In total over 100 distinct deployable services contribute to a seamless end-user experience that can reliably accommodate hundreds of millions of daily video views around the world.
I joined the Systems Engineering team, and worked as a Senior and then Principal engineer, focusing on both operational execution and, increasingly, designing and building complex core infrastructure projects. I was pushed to create elegant and reliable solutions, but also to evangelize technologies and approaches across development teams.
Brightcove’s engineering organization is composed of many independent teams, each of which makes its own decisions about how software is built, deployed, and managed. The advantage of this approach is in agility and speed. The trade-off is that it can lead to a plethora of different languages, tools, solutions, and techniques — in short, an accumulation of technical debt.
Much of my challenge was in convincing disparate teams of the advantages of adopting common tools and techniques and standardizing deployment and service management. This task was at times enjoyable, but often frustrating. The incentives for teams are to deliver on product commitments, and this often leaves little time for work that is not customer-visible.
This challenge is common in my realm; some companies solve it by creating a Site Reliability Engineering team, although this typically bifurcates operational responsibility for services from engineering responsibility. On the whole, I like Brightcove’s approach of keeping engineering teams responsible for running their own services. I hope that the pendulum moves a bit, and the Systems Engineering team’s unique role become more valued and supported over time.
The thing I will miss the most about Brightcove is the community of people, both in person and on chat, who made every day a chance to learn, grow, and have fun. I’m not sure I’ve ever laughed so much at work before, or had so many interesting in-depth technical discussions. Culture is a hard thing to cultivate. Brightcove’s senior management and the supporting cast, like our amazing office services team and our HR business partners, work really hard on this, to their credit.
I’m leaving Brightcove for a unique opportunity outside of technology that involves a management component. I never thought I wanted to be on a management path, but now I’m giving it a try, in part due to my experiences at Brightcove. More on the new gig in a future post.