Hello! What's your background and what do you do?
I’m a self-taught programmer. I majored in Mechanical Engineering, and started programming because it was an easy way to make some pocket money while still in college. My first online job was doing a CS101 student’s homework for $10/hr on Elance. Somewhere along the way I really grew interested in computer science as a subject, and haven’t turned back ever since. I started out with courses on Udacity, then built a few tiny apps on my own, and eventually ended up getting involved with Gratipay, a project that was working to solve sustainable funding for open source.
My “career” in software development started out with an internship under Google’s Summer of Code, working on GlitterGallery, a Fedora project that aimed to be the GitHub for designers. Since then I’ve worked at a couple of companies full-time, and a handful as a consultant. I now work as an Engineering Manager at Shuttl, an “Uber for buses” in India. I’ve led teams ranging from 3-12 people, and am now leading the platform team, which builds core components like fleet management, ETA predictions, GPS tracking and payments.
How was your transition from software development to management like?
I was hired into a management role, not promoted into one. Our team was given a large project to start out with that involved a complete rewrite of our backend systems. In the first couple of weeks, I mostly spent my time like an IC would. We were a 4 person team, and there was so much to do!
Once our project started picking up steam, we rapidly grew from a team of 4 backend folks to a cross-functionally staffed team of 13. This is when I really got down to working on my role as a manager. I started being purposeful with 1:1s, thinking about what motivates people, and adding more structure and long-term vision to our work.
I found The Manager’s Path by Camille Fournier to be a good resource that helped me through the transition.
What does your day-to-day work look like, and what motivates you to do it every day?
My day-to-day work mostly involves some code review, and a couple of interviews/meetings. The meetings I take part in are mainly 1:1s, feature planning meetings, daily standups, and a weekly manager’s meet.
I still write a lot of code, but primarily for tools that help me as a manager. I’ve built Slack bots to help ease communication between teams, pipelines/dashboards to analyze our GitHub data, a web-app for performance reviews, a leaderboard for programming challenges and more.
I’m a product person at heart. I love envisioning what a product should be and building it from scratch. Building tiny apps that I use as a manager strikes the perfect balance between building things and managing those who do.
A major part of my job that I enjoy is mentoring junior developers. I strongly believe that the kind of exposure one gets in their early years can make a huge difference in how they grow as a software developer.
What are the biggest challenges you've faced so far? What did you do to overcome them?
My biggest challenge has been to keep people motivated in a sustainable fashion.
When our team started out we were 4 people, mostly new-hires, working on a project that was ambitious and clearly important to the company. Motivation wasn’t a problem at all! As time went on, we slowly started hitting signs of motivational problems. Some team members didn’t feel like they were learning fast enough, some felt that they were working on too small chunks of work, and so on.
What made this a hard problem was that you can’t just ask a person what they want and expect to receive a clear answer. Motivation isn’t easy to reason about. Maybe at the extremes it is. When a person is extremely motivated, or extremely unmotivated, they probably know why that is. However, when someone isn’t really motivated and is just coasting along, it isn’t easy to tell what it is that is missing.
I haven’t really “overcome” this hurdle yet, still a long way to go. What I have started to do though, is to ensure that people work on projects that challenge their current skill set, and to always emphasize the business impact a project has.
Patrick Lencioni’s book “The Three Signs of a Miserable Job” helped me understand this topic better.
What's the best advice you've received about being a manager?
I do recall a few tidbits, which roughly went like this:
What do you tell developers who are considering making the switch or new to the role?
For those considering the switch: give it a try first! You’re likely to find opportunities in your current role to take on some managerial responsibility - like onboarding a new team member, or running meetings / retrospectives. This’ll give you a taste of what management is like, and is often an easily reversible move.
For those who’re new to the role: aim to be a hands-off manager. This takes some time to get used to, but makes perfect sense if you think about it. You’re doing your best work when your team functions well without you!
Final call to action! Where can we go to learn more about you?
I’m @RohitPaulK on Twitter. I occasionally post stuff on rohitpaulk.com. I’m a fan of ‘Build your own X’ tutorials, and am working on a product to make these more accessible and fun! Here’s Build your own Redis. If you find tutorials like this interesting, do checkout codecrafters.io!