00:00:25.560
All right, hey guys! My name is Aaron. I work for Fullscreen, which is based in Southern California. I have a really cool job; I’m the Director of Happiness. That sounds like a really cushy job, and it kind of is, but it's also really challenging too. My job is to optimize the engineering team at Fullscreen, ensuring that everyone is as happy as possible and that Fullscreen is an awesome place to work.
00:00:28.960
If you've never heard of Fullscreen before, you're not alone. We're kind of a quiet company, but we actually have a pretty big presence. We are a media company, primarily on YouTube, and we are actually one of the largest YouTube networks, representing tens of thousands of channels. The last time I checked, we had over 30,000 channels in our network. If you don’t recognize any of these channels and that makes you feel old, you're not alone—I feel really old too! Try going to VidCon sometime; everyone there seems to be around 14.
00:00:52.399
Our network is enormous; we have over 300 million subscribers across all our channels. It blows my mind to think about that. We accrue over 3 billion monthly views every month. However, we were a startup; we started from humble beginnings just like any other startup. This is our CEO, George. I think this photo was taken about three years ago. We just celebrated our third birthday a couple of weeks ago.
00:01:01.680
So, how do you get from this to what we have now, which is almost 200 people? We had to grow using technology, and George saw that immediately. He hired Drew, my roommate and our founding engineer. As we began to grow, the engineering team expanded pretty quickly. This is a headcount chart showing our rapid growth. It's especially notable when you factor in that we're all sharing a single bathroom in the office.
00:01:17.159
We started to feel the pains of growing. I know those are first-world problems to have, but growing is really hard, especially in an engineering team. Our product dashboard looked like this—it served as command central for Fullscreen. It was responsible for a lot of important tasks, such as ensuring that money coming in and going out was correct, making sure everyone got paid correctly, and informing everyone about splits when working with tens of thousands of channels.
00:01:22.320
That’s a lot of work and a lot of contracts to manage. I was looking around at all the different roles that this app had to play, and it's a lot. I call the dashboard the Yamaha app because it does so many different and sometimes completely unrelated tasks. From early on, we were really scrappy. When the business demanded something, we delivered. We added many features to the dashboard very quickly, and that caught up with us.
00:01:35.800
As you might know if you've ever experienced something similar, we started encountering general errors because we were struggling to scale. It began to cause panic. We knew that we had to change something. Our team got together in 2012, which seems like an eternity ago, and we started talking about our issues with the dashboard. We aired our grievances and discussed the mistakes we made using MongoDB as our main data store for things for which it wasn't appropriate.
00:01:50.880
We talked about what we did wrong, what we wanted from the dashboard, and came to the conclusion that we needed to do a big rewrite. We knew the existing solution wasn’t working, but we thought that the rewrite might work for us because we believed we had the right approach. We discussed what we wanted to do, but we didn’t necessarily know how we were going to do it. After that meeting, we felt optimistic—but then nothing happened for several months.
00:02:04.760
This was partly because we were still busy putting out fires constantly. Our team didn’t exactly have a game plan for how to architect this new product, and so we were still working in a somewhat dysfunctional way. The leaders of the engineering team came together again, and we started discussing our approach. We decided on a service-oriented architecture, which is a great methodology. I figured if that’s what Amazon does, they probably know what they’re doing.
00:02:20.280
So, we had an idea of how this was going to work: we would break the dashboard up into a series of small services, each responsible for a specific function. However, we didn’t exactly know how to transition away from the existing setup or move the existing app to these new services. While we knew what we wanted to build, it took time to outline the new architecture.
00:02:36.640
So, we continued supporting our existing applications while also starting to build new ones. A few months went by, and it still didn’t look like we were going to hit the timeline needed for Dashboard 2.0. Bets were being placed with the accounting team on whether we’d meet our deadlines, and we weren’t winning those bets. I was becoming alarmed because our team was larger than ever before, yet we were still shipping things pretty slowly.
00:02:53.680
We needed to implement some changes, and those changes came in the form of both a blessing and a curse. We were receiving increased demands from the business. Instead of just giving a thumbs-up like, "Sure, we can do this,\