by Pavel Simakov 2016-05-16
I work at Google. In my work I face and solve two kinds of large-scale complexity: accidental, and essential. We all want to focus on the essential. That’s where the value is. It’s the accidental complexity that no one wants to deal with.
Accidental Complexity arises from problems that you need to solve in order to operate effectively. For example, before Course Builder there was no comprehensive, large-scale application development platform on Google Python App Engine. Fixing this problem is what the Course Builder platform does: it provides a full-stack, systematic, interoperable, customizable, extensible, sustainable, scalable, general application container.
I solved accidental complexity with the extremely constrained resources (only one other person at the outset!); this enabled the incredible feature development and reach that Course Builder has achieved, while keeping ongoing costs low by isolating the system from operational failures, code churn, and so on. Other examples involve building the core of the Course Builder product: the content- and learning-management systems that are necessary, but not sufficient, for providing innovative, effective online education at scale.
Efficiently and conclusively solving these problems of accidental complexity made it possible for both me and my teams to focus on solving problems of Essential Complexity: those that present new, unsolved opportunities with tremendous value for those who can crack them. Examples of solving essential complexity include creating flexible content representation system with semantic annotations; our industry-leading internationalization system; looking for ways to make content adaptive via our Skill Maps functionality; creating an extensible authentication system that got Google sign-on on multiple partner properties; and creating a system extensible enough to be used and customized by clients as diverse as Sesame Street, NPTEL, Red Cross and various Google product teams.
Tackling the essential complexity is more interesting and more relevant to our team being part of Google Research. There is a lot of essential complexity in online education and adaptive personalized learning. And you can’t get close to it unless you have a platform and a product; now we do! By solving for both accidental and essential complexity, I’m able to provide durable, cost-effective, feature-rich solutions at scale across Google’s businesses and partnerships.
On Knowledge & Experience
In order to provide this value in my work, I draw on the skills I built in my past projects, both at Google and externally. I particularly rely on my past experience in building complete application development frameworks that run on distributed system backends. I understand the unique aspects of building applications in the cloud, from auth, horizontal scaling, and fault tolerance, to remote procedure calls, NoSQL data modeling and transaction limitation, through to deployment and operational costs, constraints, and implications.
Supplementing that day-to-day work, I also focus on staying current by continually reading both tech and strategy books and journal articles. These directly affect success of my work on Course Builder. In tech: we benefit from the application of my deep understanding of meta-modeling, declarative specifications, and domain specific languages. In strategy: we utilize and rely upon Transient Advantage and Business Model Generator techniques.
I am also an innovator. I produce a steady stream of cool ideas and products -- not just drawings, but working products. Course Builder’s internationalization features came from one of these innovation sprints, for example. A year back I built a non-linear book, and filed a patent as a result. Working on Google Wallet, I created exploratory visualizations for all domain objects and service endpoints so I could learn the domain.
This mixture of high-level expertise and hands-on coding work makes me particularly well-suited for finding and delivering high-leverage, high-impact approaches, solutions, and abstractions. The value of these is readily apparent in the broad feature set, stability and robustness of Course Builder, and in my numerous side projects including publications, speaking engagements, and patents. This also makes me an effective mentor and manager: both my team members and the leadership of internal and external partners look to me for advice and direction.
On Leadership & Influence
As experienced leader in technology, I excel at building stable, high-performing teams -- no matter the chaos surrounding us. For example:
In my five years at Google, I’ve changed managers seven times (and sometimes operated without one). Under those conditions, I was nonetheless able to form, retain and grow a stable, productive Course Builder team, which is currently a part of Google Research. Through director changes, re-orgs and swift changes in strategic direction, the team has consistently been extremely productive, shipping 15 releases in 3 years, keeping or exceeding feature pace with market leaders that are an order of magnitude larger.
I do this by a combination of building solid, durable business plans for my teams, and shielding those teams from external chaos so they can focus on rapid delivery of high-value work with excellent quality. The productivity of the Course Builder team speaks for itself; this, in turn, leads to solid recruitment and retention of talent. I bring out the best work in my reports, who consistently speak highly of their time on my teams.
Beyond managing people on my team, I’m effective at building cross-organizational and cross-company relationships. These relationships go two ways: what I learn from these partners shapes the direction and strategy for Course Builder, and what I’ve learned likewise shapes their direction and strategy.
Because of my leadership, my team has produced a platform that is extremely agile, and we’re able to customize it for many uses -- an essential feature for engineering assets in the still-forming education technology market. No matter how our focused changed, we were able to deliver robust, reliable software on time.
This flexibility and reliability is a direct result of my prioritization of two things: a solid, agile core; and features, driven by real customer pain or opportunity. For example, our Google Facebook federated login, internationalization or built-in map-reduce and BigQuery support weren’t something we pulled out of the thin air – these were essential requirements from our external partners and internal Google teams. But we knew we could deliver because we have already built simpler, but similar during our research and experimentation sprints. To the outsiders, it may have appeared we are taking a huge risk and a gamble, but for us it was simply informed decision making. This customer-centric focus keeps us delivering high-value cohesive features over time. And our agile core, experimentation mindset and talented engineers make it possible to deliver a lot of capability quickly, without getting hopelessly stuck in technical debt or accidental complexity.
Software Secret Weapons (TM) Copyright (C) 2004-2017 by Pavel Simakov
any ideas, thoughts, conclusions, recommendations or the source code presented on this site