I’m finding myself in a personal career crisis, which I tell here only to explain how I came to this point of reflection. I write this post both to record something that I should never forget, and in hopes that it may someday help someone who happens across it.
I am a ninja.
Were I to describe what I have to offer in the line of Information Technology, I’d have to refer to the slogan of German chemical company BASF. Like BASF, I don’t make the products you use, I make the products you use better. Until now, I’ve considered myself an expert in nothing — jack of all trades, master of none. Books like Malcolm Gladwell’s Outliers and Matthew Syed’s Bounce illustrate how much more useful practice counts than “talent” in likelihood of extraordinary success. They discuss how 10,000 hours of useful practice are required to achieve mastery.
I’ve gotten far more than 10,000 hours of useful practice in being an IT ninja since I entered the professional workforce in ’99.
After a year in hosting operations (in which I was promoted twice), I hopped on a plane at 24 to go live in London, and work with some people who knew that I was good at what I did. Over the course of the next year, I played the role of unix engineer within operations, network architect(?) within engineering, and a stint in presales for a young division in a telecom which was on its way from $2B market cap to bankruptcy. When I look back on the things I did at 24 and 25, I have to marvel at it. I defined requirements for, designed, performed vendor evaluation, did CapEx planning with finance for, ordered and implemented the managed hosting network infrastructure for hosting facilities, including VLAN tagging and trunking, traffic prioritization with QoS, dynamic layer 3 routing, spanning tree, and a fully redundant mesh to the head-of-row racks. I didn’t even have a CCNA, and someone was crazy enough to let me figure that all out. There was oversight, but they trusted me, and it paid off. I had a few other victories there, but in the end left before the debt defaults brought the company completely down the drain.
I’ve worked as the top technical resource in a hosting center, with ultimate responsibility for keeping customer systems up and running well. Whether “managed” hosting on standard platforms, or “Time and materials” work for which my time was billed at $210/hr to fix problems with whatever was wrong, be it servers, switches, routers, load balancers, or storage. It was my job to be good enough at figuring out whatever came my way that I could get it working again, or working correctly if the customer required a change.
My first (and only, I haven’t reordered since changing positions) business card at my current employer had me listed as “Systems Guru”. My official title went from administrator to architect, but I was still working hands-on with everything from network to server to storage, and I was even writing some code to make things work better.
Now I’m a manager of a team of java developers, and I have responsibility for the application architecture. I find that my breadth of experience in other areas, as well as what I’ve learned about building scalable applications and decoupling components, allows me to decompose a problem into parts which will “just work”. I don’t have to force myself to think in service orientation precisely because it works the way my mind does — it encapsulates design and implementation at all of the layers of the stack, just like my mind can encapsulate all of those layers of the stack into a symbolic representation in my mind. My experience allows me to peel back the layers like peeling back the transparencies of an anatomy book to see the underlying organ systems.
Though I am only a jack of all trades, I am a master at decomposing problems without being limited by a subject-area-expertise mindset. A service is simply providing an interface to what Information Technology fundamentally is — data processing. Data goes in, gets processed, and comes out. I can see the big picture by using symbols precisely because I know that I can zoom into any of those symbols, and know what’s important to know about any portion of the stack that is providing those services.
I’ve been a ninja for over a decade, and I’ve always known it.
What I’d forgotten to appreciate is how I’d become an expert at it.
I’d encourage anyone to take this almost journeyman-seeming path. I can appreciate the guys who are the absolute best at a specific thing, but when you get to the point where you really and truly know that you can figure anything out, it leads to what I can only explain as a beautiful experience “seeing” elegantly simple solutions based upon fundamentals.
The only curse is that it’ll make you want to change the world. Anyone need a ninja to help them change the world?
To quote Vanilla Ice, “If there’s a problem, yo, I’ll solve it. Check out the hook while my DJ revolves it.”