Planted on 03/08/23
Last tended on 13/08/23
Growth Stage: 🌲 evergreen
I completed five years in the tech industry on August 1. I started out as a fresher straight out of college. I had no idea how the journey would turn out to be. I have sailed smoothly through the last five years by God's grace. Although I sometimes feel left behind compared to my peers in career growth, my personal metrics of personal development have largely been on the positive side (worth mentioning that I have evolved the way I look at personal growth as well.)
Often, I struggled with the feeling that I was not fit for this industry. My peers are doing great in their roles, achieving promotions year after year, running side gigs, moving to the US - earning in dollars and getting exposure to the Bay Area. I felt like missing out on great things in life. Whenever I open Instagram or LinkedIn, I see people enjoying their lives to the fullest. Of course, I know that what I see may not be the reality. Still, I couldn't help but doubt my capabilities.
That's how life plays out. Some days are bright and sunny. On these days, you feel like that king who can't do anything wrong. On the other hand, there are those gloomy days when you wake up doubting yourself. Nothing goes your way. You feel pathetic, and helplessness clouds your judgement. It is on these days when you will find the real you. How you handle these days will make or break you.
I have become a different person from what I was five years ago. The tech industry has transformed me to a great extent. I am more confident, concentrated and mature. I am rediscovering the long-missing criticality in my thought process. I have learnt to be satisfied running the race at my own pace. I am working slowly but steadily on my future. And I am proud to claim that I am better mentally and physically than five years ago. I believe this is the most appropriate criterion to determine my success.
When I was in college, coding felt like the most challenging task. I was afraid that I would not be able to manage the expectations of my future teams. Turns out, I was wrong. Writing code is easy, maintaining it is harder and convincing people the hardest.
Maintaining the code takes a lot of effort and patience if not done correctly right from the first commit. Customer demands and internal requirements change over time. Your team changed its size and shape, and the persons who wrote that library are no longer with the company. Without proper documentation and UTs, it gets difficult for newcomers to take ownership without an upfront investment of significant human hours. Unfortunately, this is how it works in most tech teams, and the only way to get the work done is to get your hands dirty with code.
One of the best compliments I received was from one of my managers. He told me -
On my commits, QA doesn’t have to worry about doing deep validations because of the extensive testing I perform on my code.
In fact, in my last 1.5 years at Netskope, I have been responsible for only two regressions - the first happened in my first week at the company and another a year later because I was unaware of that particular code path.
People are the toughest nuts to crack. Early in my career, I used to try to convince my seniors at face value without any research. Over time, I learnt that it is easier to convince people when you have data. Substantiate your claims with solid data. They will listen. The seniors, who, I thought, were hurdles in my growth, were just trying to do their jobs. I have grown strong empathy for the management in these years. As a result, I find it easy to talk with them after I have done my due diligence and collected enough data to support my propositions. Unlike code, people behave differently according to the situation. The faster one adopts to handle people, the faster one grows.
In a typical tech team at a reputable company, everybody is a top talent. Everybody wants to reach the next level; hence the competition is steep. When everybody is trying their best to achieve that next promotion, it is difficult to get it without non-work effort. That is where the people skills come in handy.
My feeling of FOMO comes from the fact that I never sought any kind of promotion or pay raise at work. I always trusted my managers to do the heavy lifting, which never worked. If I don’t ask for it, it doesn’t mean nobody else does too. And the managers prefer those performing at my level and have also explicitly requested promotion. I have been trying to change this for the last few months. Being vocal about your work is a necessity to reach the next level.
Businesses need to generate a profit. No matter how world-class my product is, whether you use cutting-edge tech in developing your products, customers don’t care. They don’t care if you are following all the best practices in the world. They only care about getting their work done; if your product is not helping, it is useless for them.
For a business, the latest and greatest doesn’t matter as much as getting the shit done. If you can’t deliver on time, you will lose the race. Customers love quality but also want to see things working as quickly as possible. It is not that your work is over once the product is shipped. After deployment, subsequent support is equally important. There are SLAs to honour, bugs to be fixed, and those weird customer requirements you couldn’t guess during those first architecture design meetings. Things often go wrong, and you must fix these to win that new contract next year.
I have been fortunate to have jobs with an excellent work-life balance in the last five years. Rarely I had to work on weekends. Work does get spilled to after-work-hours at least once every few days. However, even then, I get a lot of free time. But I did not utilise this time properly. If I had used my time correctly, I could’ve learnt a lot of new stuff (hobbies and work-related).
My focus in the last five years has been on various non-tech things. For some reason, staying in touch with the latest tech never became my top priority. It is only in the last few months that I have started to explore again, perhaps because I have realised the importance of it for the next-level transition. As a side-effect, I expect an improvement in the activity on this blog as well.
On-calls are another aspect of a job at some software companies. I got introduced to it at Netskope, where every developer has to be on-call for one week continuously once every two-three months. Being on-call comes with a specific stress level. Still, it is a great learning opportunity to get to know the product from a critical standpoint. Although I don’t enjoy it very much, it is part and parcel of the job, so I can’t ignore it either.
Since the pandemic, remote work has picked up pace. I have been working remotely for the last three years, and while I enjoy it, I am concerned about my career growth. Looking at the state of big tech, I am uncertain for how long the rest of the industry will be willing to continue with remote work. On the other hand, due to the resistance shown by the big tech towards remote work, there may be a significant drift of talent towards more-remote friendly companies.
Remote work suits well to someone like me, who is appalled by the pathetic state of infrastructure and quality of life in the major Indian tech cities. Unless the state of affairs in these cities improves, I find it difficult to even think of moving back. However, having a job is the prime concern, and any probable threat to my job because of remote work may be a compelling reason to consider moving back. But until then, Jaipur is the best.
There is still a long journey left for me in the industry. Five years in tech is like a lifetime. It sometimes becomes challenging to keep up with the rapid changes in the tech world. With the advent of AI, it may become even more difficult for knowledge workers to stay relevant. Instead of running behind every latest framework, sticking to the basics would be a good idea for me. Frameworks may come and go, but basics will always stay in fashion.
Hoping to be at my best in the years to come