In my career, I worked as part of teams that built video games, operating systems, a cloud management platform, and even low-cost laptops for children in the developing world. Through these projects, I have also been fortunate to work at many levels in the technology stack–from low-level firmware components and communication protocols to web interfaces and everywhere in between. Each project presented its own unique challenges and opportunities, but I can attribute the relative success of each to a simple fact:
Great products “just work” for the user
I believe that this applies regardless of the particular product or component that I am working on–even for lower-level technologies. Each layer informs the next, so if you don’t focus obsessively on the person or system that is interfacing with your code, you will fall short of building something great.
Circa 2004, the Linux desktop was a good example of a product that sorely lacked a focus on usability. It was primarily a server operating system with the desktop bits (somewhat hastily) placed on top, which created a number of issues. In order to work with USB drives and wireless networks, for example, the user was required to edit a file as a root user and then issue a command to mount the drive or bring up the network. Needless to say, this felt more like a quick-and-dirty hack than a professional desktop operating system, and its appeal was limited for anyone other than experienced Linux users.
I joined Red Hat around this time with a goal of improving the usability of the Linux Desktop product. For my first project, I focused on the D-Bus messaging protocol – a relatively low level piece of infrastructure that allowed processes to talk to each other and expose security backed services over the system/user boundary. To most users, this piece is transparent and not very interesting. For me, what was interesting was that it enabled usable infrastructure for the pieces built above it. D-Bus enabled us to develop a much more reactive system that would get messages from the kernel and bubble them up to policy handlers in the user’s session. A user could now plug in a USB storage device, printer, monitor or select a wireless network and it was instantly recognized and configured with minimal interactions. Our approach of focusing on usability at the protocol level was an unqualified success, and we carried it forward to many other aspects of the Linux Desktop.
I joined Stackdriver in order to apply the same usability-minded perspective to a space that desperately needs it–cloud infrastructure monitoring and management. In this space, customers typically cobble together various open source tools and custom code to gain visibility and control of their infrastructure. In general, usability seems to be an afterthought for existing solutions (with dense, unintuitive user interfaces, complex configuration, etc.) and integration can be extremely challenging. Like the button to mount a drive on the Linux desktop, these cobbled-together solutions can get the job done for users with the time and expertise to get all of the components to work together, but at a significant cost–both in terms of set-up and ongoing maintenance.
The challenge of building a drop-in monitoring solution that just works and gives the user instant insights into their cloud environments is an exciting one for me. We will apply the “just works” philosophy from the API all the way up to the UI and deliver a product that is much more usable and intuitive than any other option in the market today. I am excited to be joining a great team that is up to the challenge!