August 24, 2020 · #infrastructure #mobile #network-engineering #startup
Hello! What's your background and what do you do?
From the archives - I have been writing / debugging code since I was 16 years old. And well at the age of 14 I used to make some money by assembling Pentium computers. Remember those? All in all, I got onto the tech wagon early and I don’t regret it!
I studied my computer science from a college in Mumbai. It further shaped my career into tech. During my college years I managed to work as a freelance developer building websites in PHP and Java. I tried a start up and built tools to aggregate stock market data. Back in ~2010s the Indian stock data was too fragmented. I was unable to evolve the idea beyond simple tools so I joined Quinstreet as an engineer straight out of college. But the startup fanatic in me got me to BrowserStack in 2013. I currently work at BrowserStack, where I’ve spent more than 7 years now and have been through some of the best experiences of my life.
What I specialize in is prototyping. I make sure things work. What I love about this is problem solving. At BrowserStack, I have been privileged to work on challenging projects like BrowserStack Automate, App Automate, Mobile data centers, BrowserStack App Live, etc. I love bash and I think it is actually a serious programming language (Offended?). Conventionally I had my powers 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!
Being an infrastructure company BrowserStack had to host real mobile devices. Yup we are talking about hosting real android and iOS devices. This is one of the biggest challenges BrowserStack has solved. It combines hardware and software which are both to be integrated and built from ground up. Because of my involvement in this, I think I can hold a conversation on radio & network engineering. Want to know more about it? Hit me up! :)
How was your transition from software development to management like?
Being 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 daylight out of me. I went from being a lead where I tried to be the goto tech guy in a team (easy!) to being an Engineering Manager. At first, I must say it was tricky. Honestly speaking though, at that time I hated it.
Being a manager, I was suddenly responsible for being politically correct. I was responsible for not only my work but also my teams’. I had to constantly up my game in order to make sure the team was performing at scale. It was not easy. Biggest issue - “I can do it better”. I am sure most of us have had that thought. Key is that as a manager you have an opportunity to make “more people do it better”. I couldn’t understand it 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. After that, due to the scale of BrowserStack’s growth I was granted an opportunity to become a DoE (basically EM++, a manager managing managers.). My first reply - NO! But well, I had a good mentor in Nakul (who is a Co-founder of BrowserStack) who persuaded me and was willing to invest in me. Looking back, I must say I made the right decision. Instead of solving problems for myself, I now enable fresh university graduates, engineers, and managers to solve problems. In that way I believe I make a grander impact. The biggest thing that has changed as compared to last time - maturity in me to see the larger picture.
What does your day-to-day work look like, and what motivates you to do it every day?
Generally I try to spend time with team members. Either individually or in groups doing the usual scrum stuff - stand ups, grooming, etc. What I enjoy the most is solving problems. I enable my team to work in isolation but am always happy to learn about their problem solving stories. I learn more about tech from that! At least a few hours a day goes into “whiteboard” problem solving. Being the infrastructure company that BrowserStack is, engineers are generally “hacking” around different systems to deliver solutions to end users.
I fiddle around with code. I consider myself a fail safe developer. Basically getting myself involved when we are about to miss a moonshot deadline! So it is mostly about last minute code fixes, Ansible changes, nginx config updates, etc. I actually have a cron to git pull most BrowserStack repositories! As I mentioned earlier, bash is a language for pro devs. Recently, I have started to get involved with customer issues. We are a developer product, hence our customers are developers. They are super smart to catch every bug on production. I enjoy interacting with them and learning how their side of tech works. That helps me learn a few things and share a few things in tech.
Coming to daily operations, I plan quarterly goals for my teams. I work with engineering managers (EM) to plan deliverables, people & tech. In this regard I am the unblocker in terms of any issues - tech, process, dependencies. As an IC one would solve their own problems, as a DoE I get involved in all problems in my organization. In some places I optimise the solution, in some I give out hacks, in most I learn a new point of view of problem solving.
Best thing I look forward to is one on one interaction with people. This helps me build my soft skills. It’s easy to shout and give feedback. But that feedback won’t be consumed. I learnt that the hard way. I was an aggressive manager but now it’s about understanding other perspectives first. Thinking what could have happened. Figuring out what the gap is. Then mentoring others on how it could have been avoided. Finally being able to showcase different instances where it should be avoided in future. Most of my conversations right now are too informal with hell lot of sarcasm and leg pulling. I believe that makes them more comfortable. This helps 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?
Ah this is a tricky question. For me the biggest challenge has been being a “young manager”. This is actually a huge problem. I would take it to a level and mention that is one of the biggest reasons why I failed in my early stint of being an Engineering Manager. Being an early manager I lacked maturity, empathy & respect. These are recipes of disaster. It was a matter of understanding how I want to be treated by my manager vs how I treat my team members. This gap has to be close to zero.
Also, it is always awkward to have industry veterans reporting to you. They are more experienced and wise. My moment of realization was getting confronted. It was awkward for an hour’s meeting but we came out with more than mutual respect for each other. Ever since I do this with most people by respectfully confronting and being open. This gives both sides a huge clarity about things.
What has been the biggest surprise so far? Something you didn't expect?
Being a manager had a huge impact on my persona. It was not only professional growth but things have been different in my personal life as well. The success and failures of influencing my team members make me more confident in talking to folks in general. There are no longer any awkward silences in meetings or parties (well, mostly). Certainly I think I have become more comfortable. I wouldn’t have expected this large of an impact.
Now when I hear myself from past conversations, my ears bleed.:P I am better than my past and I hope to get much better in future.
What's the best advice you've received about being a manager?
I have had many awesome managers to help me craft my career. More than that I have had huge passive influences. Few best quotes from my managers -
“Don’t leave tech if you are good at it. Solve management problems with tech.”
“Treat your team as you want to be treated.”
“Programmer solves one problem in a day but his/her manager solves 10”
What do you tell developers who are considering making the switch or new to the role?
Firstly, being a manager / director does not mean you will be away from tech. This concern is mostly a “manager myth”. The way I look at it, you cannot manage a team if you don’t know tech. If you are behind in tech you cannot constantly motivate your team. If that is true, you need to learn much more tech than your team. Sure, you might need to give up active coding but that is the price you pay to solve larger and bigger impacting problems. Do you think Bill Gates coded even after becoming a CEO? Find your idol, establish focus and move in that direction.
Also, there is no right time to make the switch. Nothing will change if you are a manager today or a decade from now. Sure, learning would be different but it’s about learning in general at the end of the day. Don’t leave your forte but give up “tasks” to focus on “initiatives”.
Final call to action! Where can we go to learn more about you?
I always look forward to sharing my thoughts with anyone interested. And if you have a problem to be solved that is icing on the cake. Let’s connect on linkedin or twitter? And if you are interested maybe we can work together @ BrowserStack.