In the past posts, I had gone over taking programming as career choice, taking a lead role and switching to IC role after taking a lead role. If you are a techno manager, you will certainly come across a career junction – to make a choice whether to pick a general mgmt direction or continue to remain a techno manager or IC role. I have been through this whether I should/can continue to code through out my career?
Wouldn’t my gray cells give up after some time since programming so much depends on your cognitive power? Would I generate enough value compared to my years of experience? Would I work against the probability for having a successful career? I won’t be surprised if many of us go through such questions when faced through this choice.
Do doctor think about taking its practice as life-long career? Do painter think about taking painting as life long career? In fact, well known painters are known for painting till quite late in their lives. then, Why as a programmer I face this question. I do think there is little bit of perception of this as low-end work – the leaf node work. Visions are built at top & translated into reality by engineering. It is like architects make the building drawings & buildings are built by the workers laying the bricks etc. but isn’t that true for any other profession? Not every painter is known for his work. neither every doctor. Still many of them can have a long satisfying career.
Programming alone does not cut it. If I just good at coding and keep doing that. It is likely that I hit a saturation point and that might be ok for many of us. As long as we recognize it and content with it. In that case, I am still good at what I am doing; I do a good job at it; I am still known within my group, organization, company. It gives me a work identity to be content with and I continue doing what I like.
I like more creative freedom. I like to paint on a bigger canvas with absolute creative freedom. That is where some of us take a plunge into envisioning the product & building it. Entrepreneur + programming is a good combination. You can see a gap & have ability to build an awesome product addressing it plus you love doing it! To begin with, we might fail couple of times. Did we born as exemplary programmers? we didn’t. Then, building a right product addressing right audience may require few attempts. It is hard especially when you take it later in your career when opportunity loss is higher. If it can be done with finances flowing from other streams, it’s a good combination to begin with.
but there is a deadly combination. Entrepreneur + programming + people – if you can have a close network of people – who are your fellow product programmers – who aspire to dream about and bring to life awesome products and you all get along well at creative & value system level. It is the best and the deadly combination. It is the power of many hands, openness for creativity and alignment of value system for trail-blazing speed.
What is the value system alignment? Are you in it for money? Are you in it for your creative freedom or building something useful? If there is alignment – there is less friction, more power of diversity, power of more minds & hands. 1 + 1 can be 11 or it can also be zero or -1 if both 1s are chasing in opposite directions. In general, I am of the opinion that smaller organization are good for building new things from scratch & bigger organization are better for sustenance & scaling up an established product at smaller scale.
Is the path easy? No. No path is easy anyway. You do go through your set of nightmares. but you grow with them. Dealing with failures (or call it learning steps) is a separate post by itself. Once you board the entrepreneur track – it doesn’t mean you don’t ever go back to a job. Entrepreneur in spirit are the flexible people who are chasing their present goals. It is worthwhile to take a job when you go through your learning curve – to make a living and also learn new things.
What about architect roles? In general, good architects are also good engineering managers. As long term career choice, I still consider this path as techno manager. Programming as life long career choice means you love programming – like a painter love painting. Such people typically hop between IC (individual contributor), lead (first level manager aka M1), engineering manager/director (M2), architect etc. along the career just to taste little bit for everything but wherever they are – they love their art (code). They also like working with people; in few roles, they may not right performance reviews but still love working with a team and team rally with them.
Did I cover all the combinations? certainly not. I have seen few unique examples personally but they are rare. E.g. T Roy @ codemachine.com, Mark Russinovich @ sysinternals . They are exemplary in their art and excel in their niche. Needless to say there are many such personalities who have created their own unique example.
In sum total, programming alone does not cut it as a life long career. A techno manager can be a satisfying career if I keep up my good work, keep learning, realize myself & be content with it instead of getting caught up in rat race. Programming + (entrepreneur + people | more) can certainly create awesomeness. Isn’t awesomeness little rare? Still strive for it!