Hello! What's your background and what do you do?
I have a Masters of Engineering and Bachelors degree in CS from Cornell University. I’ve been programming for a long time and I knew early on I wanted to study CS and go into the field. My very first coding experience was in the 80s. My brother and I would buy PC magazines, copy BASIC programs into our Vic 20 PC and record them on cassette tapes! I spent most of my career working in the application layer. I wrote business objects in C++ for a long time, then worked on a LAMP stack for a few years, and most recently in a C#/.Net full-stack environment. I don’t write much code these days but I still dabble every now and then.
In 2019 I started my own consulting company, Camargo Consulting LLC, to provide management coaching to software engineers. Before that, I worked for 20+ years as a Software Engineer/Engineering Manager at Alarm.com, Trooval, and MicroStrategy. My last position at Alarm.com was as Director of Software Engineering. I was supporting a team of about 15 engineers. I'm currently running a management coaching program with about 35 software engineering managers.
How was your transition from software development to management like?
When I graduated from college I spent 5-7 years as a pure IC. I don’t remember the details of when I got my first management assignment or even the exact date! I do remember that I got no training and I wasn’t very good! I started out managing 1-2 engineers. I was a programmer that happened to do annual performance reviews, answered some questions, and assigned work. I improved a bit in my second job working for a small startup but I was still working with 1-2 engineers and doing a lot of coding. It wasn’t until my most recent job at Alarm.com that I leaned into management. I started there in 2012 as an IC. Around 2013-2014 I began managing a team that grew from 2 to 15. I got some management training from HR and attended a few external classes. But mostly I learned from trial and error, reading a lot, a great team, and talented peers.
What does your day-to-day work look like, and what motivates you to do it every day?
I’ve slowly made a full transition from writing code all the time to writing almost no code at all. In my current role, I spend most of my time meeting with managers 1-1 and in group sessions. In a typical week, I’ll have 7-9 hour-long 1-1 meetings, and I have 2 group sessions a month.
Perhaps more interesting to the DevToManager audience is my day-to-day as a Director of Software Engineering. Towards the end, I was writing code 5-10% of the time. I spent most of my time in team meetings, project meetings, code reviews, and 1-1 meetings (with my direct reports and also skip levels).
My motivation was to help my team perform better and at the same time be more satisfied with their jobs. To me that’s the main value-add of a manager. As a coach it’s very similar. I try to help managers become multipliers for their teams.
What are the biggest challenges you've faced so far? What did you do to overcome them?
One of the biggest challenges is that it is exceedingly hard to know how you’re doing. You can look at the team’s results, get feedback, gather survey results, and measure retention rates but how do you know how you influenced any of that? It would be great to measure your impact (positive or negative) but the data points are few and anecdotal at best.
Deliberate practice works wonders in a predictable discipline that gives you lots of accurate feedback. That’s not the case with management. As a result, it’s hard to know how to improve or even what you should improve on! I recommend being curious, reading a lot, asking lots of questions, and getting as much feedback as you can. Find a coach or mentor, talk to your peers, take some classes, and ask your team for feedback often.
What has been the biggest surprise so far? Something you didn't expect?
The biggest surprise was how much I’d like it! It crept up on me. For the longest time, I’d identified as a programmer, a software engineer. Then something funny happened. I started noticing a shift in what I was reading and the work I was gravitating to. I became a parent around that time. Here I was leading a team and trying to figure out how to raise a human being. Don’t get me wrong, parenting and managing are very different, yet I noticed some clear crossover. I was reading parenting books on communication, talent, performance, and happiness. Before long I was reading management books and finding them interesting!
The other surprise was that I turned out to be pretty good at it. That was definitely not a given and it didn’t start that way. At first, I could be intimidating to non-technical folks, I was sometimes too direct, and I wrote my share of biting emails — not prime management material! With time and effort, my communication skills and emotional intelligence improved. I know I still have a lot to learn, but it's rewarding to have gotten to a certain level in a new discipline. I hope this can be encouraging to anyone interested in managing that is doubting themselves. No one starts out as a good manager!
What's the best advice you've received about being a manager?
Before I ever read the book Radical Candor I watched Kim Scott’s video on The Surprising Secret to Being a Good Boss. The idea that you could be a good manager that drives excellent results without being a jerk really resonated. I know that it’s also possible to drive performance through pressure, fear, and even intimidation. But that’s not a workplace I’d ever want to work at. The idea that you can be tough, and demanding while at the same time caring deeply is so powerful. Especially if you want sustainable performance.
Scott’s video also indirectly helped me learn the importance of regular one-on-ones. I sent it to my team with a message about the importance of feedback and instilling a culture of feedback. I tried to do it with an open-door policy and it didn’t work. I ended up missing some important feedback. With experience, I learned the value of regularly talking to your team members one on one. Those conversations allow you to ask lots of questions. They give your team members a safe space to tell you what's on their mind. This will help you be a better manager in so many ways, including getting and giving better feedback.
What do you tell developers who are considering making the switch or new to the role?
If you’re considering making the switch, I like Julie Zhuo’s questions in the Making of a Manager. Do you like talking to people? Do you like doing whatever it takes to get the job done or do you prefer to code no matter what? Can you bring emotional stability to an emotional situation? You want to make sure you’re making the switch because you’re interested and it’s something you think you will enjoy. You don’t want to become a manager just for the promotion and wake up one morning realizing you hate it and wishing you could code all day. That said it’s not an all or nothing proposition. A great way to figure out if it’s something you like is to try it. If it doesn’t work out you can go back to a more technical role (with a better appreciation for management). At the very least talk to some managers you know and ask them what their day to day looks like. Visualize it and ask yourself if that sounds like fun.
If you recently made the switch, congrats! It’s hard to give generic advice as the experience varies a lot. A few common challenges are time management and feeling less productive.
Time and attention management is a challenge. It can be especially hard when mixing programming with management activities. Some strategies and tactics I use are mindfulness, scheduling most of my time (especially my deep work/maker’s time), color coding my calendar, and front-loading decision making. The recurring theme is to do one thing at a time and be deliberate about where you focus your attention.
As for feeling less productive, when you spend less time writing code it can feel like you’re not doing as much work. Your programming output is likely to drop and it's harder to measure progress with management. It's helpful to know this ahead of time and expect it. The next step is accepting it. Easier said than done. You have to understand and believe in the value of management. As programmers, we tend to think of coding as the "real" work (consciously or subconsciously). Realize that a good manager can be a multiplier. They can improve the performance of an entire team. This is real work!
Final call to action! Where can we go to learn more about you?
If you have any questions about management or would like some extra support I’d love to help! You can find me on my site, managingdev.com, where I blog and have an email newsletter. You can also find me on Twitter and LinkedIn.
Thank you for the interview!