Saturday, March 16, 2013

I was recently asked to provide a short video on technical leadership and the technical career path. When I asked the opinion of some friends on the subject matter, one response was "tell them it's 'better to be lucky than good.'" I was a bit too tired in that AM to reply with something witty like Einsteins' quote "God does not play dice." or some such, but I do believe that there are some guidelines that can help in a technical career. To that end, I have broken those guidelines out into a few key points.

To begin, for any hope of success in a technical career path, you must have....

1. Passion

The modern work routine doesn't fit nicely into an 8-5, M-F schedule. Whether it's meetings with colleagues in other countries or thinking about a particular problem while in the shower, the tasks will remain with you. So if you are not passionate, excited, and engaged on the domain of application for which you are employed, this constancy of the job will become a torture and a prison. Instead, you should be excited about the subject and eager to continue exploration in the space.

Of course, passion is laudable but it will not necessarily earn you a paycheck. Upon the foundation of passion you need to build a layer of....

2. Technical IQ

By technical IQ I mean cultivating domain expertise in an area that includes both the theory of and ability to implement the domain. In fact, in the software world, you can alternately get paid for having some deep equity in domain expertise, with executable results including writing specifications, engaging customers on requirements, etc, or the implementation skills within the confines of a given software language, such as C, C++, Haskell, Python, etc. The domain expert can talk a lot but often not deliver the product, such as the classic 'architect.' The software engineer can reduce the architect's specification into a programming language embodiment. You can get paid for either, but you can get paid a lot more for being able to do both.

In addition to domain expertise, I often argue for the 'broad and deep' approach. One way to guide oneself in the breadth is to look at adjacency's. For example, doing boot firmware like UEFI, I need to understand the layer above and below. Above includes the operating system UEFI boots and interact with at run time. The Below includes the hardware that the UEFI PI layer initializes on restarts and helps manage at run time. The depth is in UEFI, PI, ACPI, C, assembly, networking protocols, cryptography, CPU and platform macro-architecture. The breadth includes Windows, Linux, RTOS's (above) and micro-architecture, PCI, USB, I2C, GPIO, SD, TPM, SRAM, DRAM, DDR, digital and analog circuit design below.

Since I want to narrow my efforts to the most appropriate for my employer, the breadth also includes the business environment, strategy, and market goals within which I exercise by domain expertise and implementation skills.

Technical IQ is great, but the days of the lone programmer and inventor are long past. The passion and technical IQ need to be done exercising....

3. Emotional IQ

By Emotional IQ I mean the ability to work with, for, and through people. Any corporation or technical endeavor invariably entails interaction with people. In fact, I would argue that business entails concerns of people ahead of the technology details. And to that end, the sophistication of this engagement can be scoped better. As I remind myself, there doesn't exist a "Moore's Law" for human psychology. Follow the golden rules, respect others, find value and richness in interacting with others, and pursue those opportunities beneficial to all. As you advance in your career, you begin to rely on others as much as others will rely on you. Just as you should always seek out mentors in your career, progressively move into the role of mentor for others.

So now that you have the passion, or Aristotle's Prime Mover that starts you on the journey. This passion is coupled with both formal/informal education and on the job experience for Technical IQ. And the Technical IQ is exercised in the context of others using your Emotional IQ or "EQ." So where do you go next. With these three elements in hand, .....

4. Do something wonderful

You have the passion for, skills to, and colleagues with whom you can be a technical leader, so lead. Take a risk. Do something wonderful. All technology was someone's idea at some point. In fact, as Alan Kay says, the 'best way to predict the future is to invent it.' I would argue that the landscape for invention, innovation, and creation has never been more fertile. The lines between the hardware, firmware, operating system, application, and middle-ware are constantly moving and blurring. Be that agent of change.

So now that I have 1-4, is there more? Yes, exercise 1-4 with the following in mind....

Philosophical Postscript

With all of that being said, the ideals and reality often don't meet for some. In fact, I'm often asked 'why can't I get promoted' or other such concerns. My reply is pretty simple: "It's the journey, not the destination." Notice that nowhere in stages 1-4 above did I have a 'become chief super scientist' or other such exalted title. The title doesn't matter. What matters are the stages above. And in fact, I'd even mention something like Zen and the art of archery - the more you try to hit a certain target (e.g., 'promotion'), the harder it will become. Treat work as play. Enjoy the trip. Feed your passion (1) for a subject by learning more about it (2) and engaging with others on the subject (3), culminating in creation that helps the business (4). Being diligent on these levels will yield the appropriate fruits.