How to age in technical roles as an individual contributor

Mon, 19 Feb 2024 09:35:15 -0800

Tags: personal, technical, work

permalink

A natural progression for people in technical roles is to grow into management roles. As organizations seek to better compensate senior personnel, promoting them into management roles enables a multiplier effect through the work of their reports. And, as the programmer base doubles every five years, managers are always on demand. Other areas where individual contributors (ICs) evolve include technical sales, which is very lucrative, co-founder, and instructor.

Management and ICs paths are not comparable. Managers do something different from ICs, which on itself is very hard and not necessarily that appreciated by technical contributors. Understanding the inner state of other humans is a task where experience helps a lot. Experience as a technical IC does not help that much directly in our blazingly fast world of technology.

Even if there is pressure to move into management or other roles, it is possible to stay technical and find satisfaction and fulfillment working as an IC. To me, it hinges on cherishing the process of creating great things together. Loving what has been built and helping others (team members, final users). It comes from the concept of willingness to serve.

This is a rather long post with a related thoughts on the matter, joining personal introspection with some pieces of advice. It is divided into three sections: technical skills, soft skills, and life lessons.

Technical Skills

A key challenge for this career path lies in staying up-to-date with the blazingly fast technical world. This does not happen fortuitously, it needs strategizing: chasing every new bright light that appears is physically impossible. A great deal of curation is needed. In my personal case, I have chosen to wait and see, to catch up through books for the most part and take small doses on new technology through Discord and local meetups.

I know YouTube channels and newsletters are popular these days but they haven’t clicked with me. The times I have tried YouTube channels, I found them truly lacking. Basically, I found they say things that are correct but present them in a way that imply things that are not true. Or that they leave out the complex bits of topics. For topics I already knew well, I could see I would have watched the video and left thinking I understood it, when it would not have been the case. The duality of YouTubers in informing and entertaining makes delving into hard topics a balancing act. When evaluating a new channel, try to find a topic you know well and see if their video makes it justice.

For other people that want to remain technical as ICs, I recommend to be very strategic with what you learn. For example, to choose to make less money in the immediate present in order to stay employable for the long run. In reinforcement learning we have the concept of Exploration vs. exploitation; it truly applies here. You need to know when to hold’them and when to fold’em.

Regarding studies and certificates for ICs, I went to grad school but I believe that self-taught people tend to do better as long term ICs. The path of IC is a continuously self-learning path. Some of the best devs I programmed alongside are self taught.

This continuous learning is community-driven, from peers, especially the junior ones. And in the same way the technical bets need to be made consciously and explicit, they should be stopped in the same vein when they no longer work. There is an continuous discussion with peers about where the field is heading. But to me is important to stay clear of holy wars.

Soft Skills

Technical skills are not the only skills that have to improve if you want to find success as an IC. Through these years, I have improved my communication skills significantly. My younger self was just focused on building things. Over time I learned that doing the work without being able to express what will be built, the reasons behind it and explain exactly what was build afterwards… it makes the work invisible, to the point of making disappear sometimes. Quality work deserves a champion for it, and a senior IC can make a difference in that role.

As such, communication is one of the major avenues for growth as an IC. Senior ICs need to regularly communicate effectively with both junior and senior members of the team, parallel teams and stakeholders (including customers). For me, effective communication was very challenging at the start of my career. Over time, I learn to approach the problem as a riddle, as a puzzle to be solved. And treat failure as my fault. Two books key to my communication learning are: Words That Work and Made to Stick. They are a little dated by now but they are probably still very relevant.

Communicating effectively is also key to influencing group directions. Without official authority, an IC needs to push for ideas and gain buy-in more so than a manager that has the authority to make decisions. In this regards, one of the beauties of being a long term IC is that the visibility is already established by the role. As the quote usually attributed to Harry S. Truman goes It is amazing what you can accomplish if you do not care who gets the credit. Therefore these days my group influence strategy is to I pursue single issues and repeat them until other people internalize them, present them themselves, then give them credit for it. Works like a charm. (That is outside of major technical contributions that are the cornerstone of my work.)

In a world at large, identity-wise I am low key. I have given talks when I have something to share but for the most part contribute to industry Discords and some open source projects close to my heart. My advice in terms of personal brand, I find for myself that making noise American style might not work well in a global world. It looks inauthentic. For personal brand it is easier to decide what is that you want to highlight and push your message towards that. Be consistent across channels, GitHub, LinkedIn, formerly-known-as-TW, all pushing stuff in the same direction. And choose a direction you love. Don’t live somebody else’s life. Make your life a success that’s your own success.

Another soft skill unrelated to the above is planning and workload management. Complex technical problems are hard and might take a long time to solve. That in turn can lead to workload issues and consistency in terms of the delivery. To handle these issues, to me the key is to learn to say no and push back on assignments until their value is clearly established by all the stakeholders. And while pursuing high risk, high reward work, accept that they might fail. Learning to identify failure early reduces the overall cost and allows focusing efforts in other areas. Not all complex technical problems are solvable (by me).

Life Lessons

Looking back, there have been some major challenges and opportunities in my IC career. I have witnessed the commoditization of AI, which has been a significant challenge (in a span of 5 years everybody was billing themselves as AI experts… which in turn meant the term become devoid of meaning). At the technical level, I bet on the wrong language (Scala), a topic for a much longer post. I did take on some great opportunities: going early into consulting and now expanding into the business of AI has been proven to been a good decision. My main advantage is to have started early on the field, (I started in AI with my undergrad thesis more than 25 years ago). My biggest missed opportunity was to have been late on Deep Learning. I attended a presentation by Dr. Hinton at IBM Research in 2010 and the impact of his work was very clear to me. Then I took a sabbatical and by the time I was back from it, it was a new world. Main win has been of course the Jeopardy! project.

Regarding roles, for people in full-time employment, I don’t think staying senior in something for more than 5 years is a good idea. There is no point on being super senior. But rather than switching roles, it makes sense to expand. For example, a front-end developer can become full stack. Or do front-end for LLMops, edge computing, etc. In my case given the years of experience working with startups I have expanded into the business of AI and help bridge technical and non-technical teams.

A key issue in growing old as an IC is to deal with both imposter syndrome and superiority complex. In their book Leading the Unleadable, Alan Willett mentions that old experts can turn into very difficult people when their superiority complex does not let them appreciate their own ignorance in new topics. My way of dealing with these challenges is to say I don’t know. To say it aloud. To say it as often as merited. If I don’t know something, well… I don’t know it. And to me, that cancels both the imposter and superiority issues. I try to embrace being proven wrong. If I was wrong, they are making me a personal favour by pointing it out and helping me with my brain plasticity. Then the challenge is to be patient when other people are taken over by their imposters’ syndrome.

Finally, a word of caution, there is no work-life balance in the long run for a technical IC career. For work-life balance, it is better to become a manager or an instructor (not a tenure track professor, they have even less balance). This is of course very debatable. Managers work longer hours but they have more control over their schedule and don’t need contiguous blocks of hours to achieve flow. ICs sometimes need to work in off hours to complete technical tasks due to a fragmented schedule (which is outside our control). But the main difference regarding work-life balance has to do with keeping up with advances in technology. Something I have seen over and over in my career is that they pay me for what I know, but future hiring is for what I have learned outside of work. From a company perspective, if there is ample of talent supply, training people in-house is a gift to the employees companies seldom give these days. So evening and weekends are times to experiment with new fun stuff but it is ultimately work, too.

(In my personal case I achieve work-life balance by not selling all my available hours. And as an external, I have better control over my schedule.)

Wrapping up

To sum up, I believe to grow as an IC, it is key to be intentional, to be strategic. If you want to focus on money, then don’t stay as an IC. Love what you built and be ready for a hell of a ride.

Comments

Your name:

URL (optional):

Your e-mail (optional, won't be displayed):

Something funny using the word 'elephant' (spam filter):

Your comment: