This post was originally published on devtomanager.com. Responses are edited for clarity.
What's your background, and what do you do?
From the archives—I have been writing/debugging code since I was 16 years old. At the age of 14, I used to make some money by assembling Pentium computers (remember those?). I got onto the tech wagon early, and I don't regret it.
I studied computer science at a college in Mumbai, which shaped my career in tech. During my college years, I worked as a freelance developer, building websites in PHP and Java. I even created a startup and built tools to aggregate stock market data (back in ~2010s, the Indian stock data was fragmented). But I could not evolve the idea beyond simple tools, so I joined Quinstreet as an engineer right out of college.
The startup fanatic in me got me to BrowserStack in 2013. I currently work at BrowserStack, where I've spent more than seven years now and have been through some of the best experiences. At BrowserStack, I have worked on projects like BrowserStack Automate, App Automate, Mobile data centers, BrowserStack App Live, etc.
BrowserStack hosts real Android and iOS devices on the cloud. It's one of the biggest challenges we have solved in the market. It involves combining hardware and software, integrating and building both from the ground up. Thanks to my involvement in this, I can now hold my own in a conversation about radio & network engineering. Want to know more about it? Hit me up! :)
Individually, I specialize in prototyping. I make sure things work. What I love about this is problem-solving. I love bash—I think it is a serious programming language (I know, sounds offensive). Conventionally, I have specialized in Java. But now I back myself with Ruby & NodeJS. And since I'm at an infrastructure company, throw in OS (Windows, macOS, Android, iOS) development as well.
What was your transition from software development to management like?
Becoming a manager was a rollercoaster ride for me. After doing years of software development and being an "awkward" engineer, the thought of mentoring, grooming, and "influencing" people scared the living daylights out of me. I went from being a lead, where I tried to be the go-to tech guy in a team (easy!), to being an Engineering Manager. At first, I hated it.
Being a manager meant being politically correct. I was now responsible for not only my work but also my teams'. I had to continually up my game to make sure the team was performing at scale. It was not easy.
I think my biggest issue was getting stuck with a single line of thought that said, "I can do this better." But as a manager, you have to enable your team to do it better. I couldn't understand this back then, so I decided to go back to being an IC again as an Architect. I was happy doing it for a few years. Once BrowserStack hit its growth spurt, I was offered the role of DoE (basically EM++, a manager managing managers). My response was a quick, "no!" Eventually, it was Nakul (one of the two co-founders of BrowserStack) who persuaded, mentored, willingly invested in me.
Looking back, I am glad to say I made the right decision. As a DoE, instead of solving problems by myself, I enable university graduates, engineers, and managers to solve problems. In that way, I believe I make a larger impact. Compared to the last time (as a manager), I had now grown enough to see the bigger picture.
What does your day-to-day work look like, and what motivates you to do it every day?
Generally, I try to keep up with my team. I spend time with the members, individually or in groups, doing the usual scrum stuff, stand-ups, grooming, etc. I still enjoy solving problems. I let my team members work in isolation, but I make it a point to learn about their problem-solving strategies and stories. It teaches me a lot of things about tech.
At least a few hours of my day are spent on "whiteboard" problem-solving. At BrowserStack, engineers are generally "hacking" around different systems to deliver solutions to end-users.
I consider myself a 'fail-safe' developer. I am involved when we are about to miss a moonshot deadline. So my job involves a lot of last-minute code fixes, Ansible changes, nginx config updates, etc. I have a cron to git pull most BrowserStack repositories (because, as I said, bash is a language for pro devs).
Lately I have started to be involved in customer calls. The products BrowserStack offers are built for developers and testers. Our customers develop their own software, and they have a keen eye for the bugs we let slip to production. I enjoy interacting with them and learning how their side of tech works. It helps me learn and grow.
As part of the daily operations, I plan quarterly goals for my teams. I work with engineering managers (EM) to plan deliverables, people, and tech. In this regard, I am the 'unblocker' of issues regarding tech, process, dependencies, and so on. As an IC, I solved only the problems I faced. As a DoE, my field of view is broader. I am solving problems anywhere they happen to be at my organization. Sometimes, I optimize the solution someone came up with. Sometimes I give out hacks. Every time it teaches me something new about problem-solving.
The thing I look forward to the most now is one-on-one interactions with my teammates. It helps my soft skills. Feedback doesn't stick if you shout, which is something I had to learn the hard way. I used to be an aggressive manager, but I can now put others' perspectives first. Now I find myself thinking through an issue, figuring out the gaps, and sharing ways to move past them and avoid them in the future. As it stands now, these one-on-one conversations are informal with sarcasm and jokes at my expense, for which I am grateful. I believe it makes my team more comfortable, letting us share ideas, learnings, and feedback more freely.
What are the biggest challenges you've faced so far? What did you do to overcome them?
For me, the biggest challenge has been being a "young manager". I would even say it's one reason I failed in my early stint as an Engineering Manager. As a young, inexperienced manager, I lacked maturity, empathy & respect. That's a recipe for disaster. It was a matter of understanding how I want to be treated by my manager versus how I treat my team members. This gap has to be close to zero.
It's also always awkward to have industry veterans reporting to you when you're younger than them. They are more experienced and wise. My moment of realization came after getting confronted by one such veteran. However, after an (admittedly uncomfortable) hour-long meeting, we walked out with more mutual respect for each other than before. Now I do my best to be open and respectfully confront others if needed.
What has been the biggest surprise so far? Something you didn't expect?
Being a manager had a huge impact on my personality. It was not only professional growth, but things have been different in my personal life as well. The successes and failures that come from influencing my teammates make me more confident in general. There are no longer any awkward silences in meetings or parties (well, mostly). I think I have become more comfortable around people. It was completely unexpected. Now, when I hear myself from past conversations, my ears bleed.:P
What's the best advice you've received about being a manager?
I have had many excellent managers who helped shape my career. More than advice, I have been influenced passively by emulating them. But some quotes that have stuck with me through the years:
- "Don't leave tech if you are good at it. Solve management problems with tech."
- "Treat your teammates the way you want to be treated."
- "A programmer solves one problem a day. Their manager solves 10."
What do you tell developers who are considering making the switch or new to the role?
Firstly, remember that becoming manager/director does not mean you will be pulled away from tech. That's a "manager myth." You cannot manage a team of engineers if you don't know tech inside out. You have to be learning about new things and developments continuously. If you slack off, you cannot motivate your team or unblock them. You might need to give up active coding, but in turn, you solve bigger problems. Bill Gates didn't code after becoming a CEO, but he did bring Microsoft where it stands today. Find your idol, establish your focus, and keep moving in that direction.
There is never a 'right time' to make the switch. Nothing will change if you are a manager today or a decade from now. It's about having a growth-mindset and continually learning at the end of the day. Don't leave your forte, but give up "tasks" to focus on "initiatives."