My career has been a lot of fun. And as a career, I hope the best is yet to come.
There are three major pieces of technology that have shaped my view on software architecture.
The first was the delivery of a streaming media cache at NetApp. The streaming media cache was a feature of the NetCache product line. In this project, I was an individual contributor working with some of the best software architects I have had the good fortune of working with. What we built was a system that allowed us to sit between a windows media server or a quick time server or a Real Networks Server and delivery media at a lower cost per $ than having a bunch of servers.
The second was the set of products that I delivered as part of the storage management team at NetApp. The first was a performance monitoring tool that created the first client-server product NetApp had called Performance Advisor. The second was a radical data protection tool that used policy-driven data management that was too far ahead of its time. And the third was the first solution to integrate storage and virtual machine management.
The third was my time at Zynga. What I did at Zynga, was to create a centralized operations team that delivered a shared back-end with a large of collection of services that reduced the OPEX and CAPEX of managing Web-scale infrastructures while simultaneously improving uptime. Some of the stuff we did was open sourced, like zperfmon and zbase. Our infrastructure and team were so amazing that after a mistake and a bug in a partner product, we were able to restore a 12 million DAU game with several thousand servers in less than 12 hours. The capstone of my time there was the delivery of an API infrastructure that took all of Zynga’s different backend services and put them behind a REST API that made it significantly easier to deliver features and services and enable 3rd party feature development.
Since then, I have had the good fortune to work at VMware, and a lot of what I am doing there I can’t talk about so will not. Although one thing that was accomplished as part of the 6.5 release, was an architectural review board that I chaired that reviewed many vCenter features.
The theme of my career, and what I view as strategic software architecture, is that I didn’t architect a single product. Most of the architects were people who I advised. What I did was to create the context that allowed them to deliver miracles. There were times, of course, where I had to step in, and advice requires technical understanding, but it wasn’t about me writing all or any of the code.
And this is where the confusion happens. I remember sitting in a room with a manager at NetApp. And she was screaming at me, telling me I was good for nothing worthless software architect. That a software architect created a working prototype like her husband. She was pissed that she was forced to work with me.
Given it was early in my career, I freaked out.
And I get her reaction a lot. Every time someone looks at me, and what I do they think – he doesn’t write code, so he can’t be any good. He just talks and talks and talks. And he doesn’t understand what’s really going on.
And then three years later they are like that woman who screamed at me. After we shipped the first version of the product, and more and more of the set of products started to adopt that unifying vision, she realized that I actually added a lot of value. That the whole org of over 200 people was moving in the same direction even though they were working on a variety of products. That what I did was create a context that enabled very large teams to work together well.
All that talking and probing and pushing and getting people aligned and providing the technical depth that allowed people to get unstuck produced a staggering amount of software, more than anyone human being could write in a year.
Because what I do is to figure out what are the strategic lever points, and use those lever points to move the world.