This year, on 25th June, I completed 10 years of my professional career. It has been quite a ride and I have written about it at least twice before. In my last post about this which was five years back, I wrote about a turn of events towards something entirely different. Today, I’m going to tell you about another turn of my career, one that I thought I’d never make.
I have written about how I began my career in reasonable detail in my first blog post. Here, I will just mention a few highlights for the sake of continuity.
This 25th June, 2017 may be when I completed 10 years in the industry officially, but I have been programming long since. In fact, I started coding for hire some time in 2006 when I started freelancing. I started off with mostly PHP related projects — simple websites and applications. I preferred working with native PHP and did not even like to think about frameworks, let alone CMS’s like WordPress or Drupal. Of course, that changed depending on projects.
I was happy freelancing and did not find it attractive to join a company anymore. I already had an offer from Keane and was going to pass on that when I finally decided to join anyway. It was a good thing I did too, and I have written why in my first post on this topic.
I joined Keane on 25th June, 2007. I spent a few months getting trained on writing .NET applications (again!) and then spent a few months on bench waiting for a project. It was around November or December when I was finally on a project.
The wait was worth it. It was a massive project with a large team, interconnected components, and enterprise architecture. I found it worth my time to delve deep into Win32 API, OLTP, .NET runtime, and unfortunately, a stressed schedule. I remember the struggle in filling up details of bug fixes in a complicated issue tracking system. I remember the struggle in writing up documentation for OLTP and dealing with a Fagan inspection. I also remember the massive task of designing a system in which we could make minor versions of our entire application (hundreds to thousands of .NET and COM+ components) run side by side. There were no containers back then and I designed a way to isolate all these components which are registered with the OS on a global level. All this was worth it, even if I don’t use those technologies in my job today.
I learnt a lot, not just the technologies but working in a large team that is part of a much larger project. I also like to think that I contributed there in significant ways. Not only I designed and worked on complex and key systems in the project, but I (along with a friend) introduced the concept of fun in the team. We started off by planning simple activities like bringing snacks for the whole team every Thursday. We paid the first couple of times ourselves but soon, the whole team got onboard and started to contribute. Nothing like this had happened there before and I am proud to help break the work monotony there.
Back to freelancing
Having worked with a large team for almost a year, I felt ready to go back to freelancing. I resigned at Keane in November, 2008. I had a wonderful conversation with my manager and I remember some of the words (that will be a subject of another blog post). I started freelancing full time with a friend under the banner of Circumbridge solutions. We eventually became a part of another organisation I founded with another friend of mine in 2012. I wrote more about that in my second post on this topic. That venture didn’t last long and I learnt a great deal from my struggle there.
At the end of it all, I learnt that technology is probably the simplest part of the equation. Entrepreneurship is hard, and it is not a one man show. The hardest part is finding the right person with whom you want to build something: Someone who not only identifies with what you want to do but also complements on the necessary skills–skills you may not have. Anyway, this is probably a subject of another post.
After this, I joined a company called Blisstering Solutions which had just opened an office in Bangalore. This time, I decided to work exclusively with Drupal. I had worked with Drupal along with WordPress and other frameworks but I was impressed enough with Drupal to focus just on that. It was a fortunate I made this decision, and I have written in depth about my experience with Drupal in another post.
One of the reasons I joined the company was to work more effectively in teams, which I had identified as one of my weaknesses when I was freelancing. Among my responsibilities were cleaning up some internal projects apart from regular client projects. Eventually, I started working with a client as a one-person team. As a freelancer, I was used to this but also had the liberty to choose my clients. Here, I had to work with a particularly demanding client which was a challenge at first but soon became unbearable. Working on such a project didn’t satisfy my goals nor was the arrangement working out for my health. Fortunately, the organisation was incredibly supportive and I moved to other things.
I eventually started working from home as I did not really work with the team at Bangalore anyway. I saved hours of commute but also lost out on team interaction I wanted. Blisstering was still primarily a non-remote company and the processes didn’t benefit someone working remotely. That is when another opportunity came up.
I spent about 15 months at Blisstering and then moved to a 100% remote working company called Axelerant. I am now at Axelerant since over 3 years and loving it. I had started contributing to Drupal core a few months before I left Blisstering and I was able to grow my pace of contributions while at Axelerant. I took up a role dedicated to contributing to Drupal (almost) full time and made bulk of my contributions during that time. Eventually, I moved to other roles but did not stop contributing.
I also started speaking at camps when working at Axelerant. DrupalCamp Pune 2014 was my first camp and I spoke about migrating content. I have attended and spoken at almost every camp in India since then. Eventually, I spoke at DrupalCon Los Angeles, Barcelona, Mumbai, New Orleans, and most recently at Baltimore. I also attended camps internationally and spoke at Drupal Dev Days in Seville. I also started organising meetups in Bangalore and also the DrupalCamp Bangalore in 2015. I wrote about some of this when I completed two years at Axelerant.
Over this time, I rose to the top 50 contributor position in Drupal 8 core contributor list by commit mentions (currently at 33rd position). I also traveled extensively all over the world (with Axelerant’s support) and even received a grant from Drupal Association to attend DrupalCon Baltimore this year. I also served as a mentor at some of these cons and Drupal camps. I learnt a lot from thousands of contributors world wide and hopefully, helped others learn as well.
After over 10 years of writing code, I have now moved to a management role. Yes, I have moved to the dark side, where purity of code is not as important as meeting the deadline. Well, not entirely, I am now an Engineering Manager since about 5 months at Axelerant and handling code is still one of my primary functions. But more importantly, I am now worried about people more than code.
This is possibly the biggest change in my career since I started working and I am excited about it. I am grateful to all my colleagues at Axelerant to give me this opportunity. To be honest, I am worried that I won’t live up to expectations of a manager and fail people who have come to rely on me. If it was not for the support of my peers, I would have given up until now.
There is a lot I have to share about my learnings as an Engineering Manager, but that must wait for another post. I think this post is quite as long as it can be.
I am looking forward to my journey in the future and where it takes me. It has been an exciting journey and it promises to be even more exciting. If you have stuck with me so far reading through all this, thank you!