Location: San Francisco
Current role: CTO at Badger Maps
What’s your background and how did you get into management?
Before joining Badger, I worked for the City of Phoenix as a software engineer and architect specializing in web and mobile technologies. I have a Masters degree in Geographic Information Systems and periodically taught university-level GIS programming courses.
When I started at Badger, I architected and developed the software product from its MVP days (using lean principles) to market and beyond. Since I’ve been with the company from the beginning on, I was in charge of managing the engineering team once we started hiring more people. I really enjoy working with our agile team and still stay involved in day-to-day coding as a manager.
What are the biggest challenges you face?
The biggest challenges I currently face mostly have to do with scaling. We are a fast-growing company, so it feels like we never have enough people to do everything we need to be doing. We’re forced to focus on just the highest priorities at any given moment, but we seem to have a lot of those right now. Some old technical debts are overdue for payback and have been sent to the collections agency. I remind myself to breathe and that it’s a good thing to be in this position, as not only is growth good but staying bootstrapped has forced us to learn discipline that is also good for building and growing a healthy company. We made huge progress last year in scalability from a technical standpoint, but there is always more to do but help is on the way. A growing business is really exciting because it keeps changing and evolving. We look nothing like we did a year ago, and at that time we looked nothing like we did a year before that. So I get to wear whatever hat is needed at any given time, and when any one of those gets to be too much, it’s time to spread those responsibilities, make them more efficient to take less effort, or the last option is to hire for that role.
What is your approach to hiring?
As the CTO, I’m still involved in most of the recruiting and hiring, because we are a fast growing team and each hire is very important at this stage of the business. I primarily use referrals and LinkedIn for recruiting. LinkedIn is pretty great for finding a pool of talent, although keep in mind that it does represent just a fraction of the candidate pool, since profiles can be incomplete or absent entirely. That’s why referrals are so important: if I have already invested the time to hire a really good engineer that I trust, then their referral should hold more weight than any other form of recruiting.
After we find a solid pool of candidates, the engineering team holds first-round interviews, since cultural fit is very important with a small team. These interviews have a more formal format, with both technical and non-technical questions. Since we’re using scrum at Badger, an agile methodology for software development, it’s important that candidates are great team players and able to communicate well. One way to evaluate these things is to see how candidates perform in a live-coding session where their thought processes are verbalized as they code. Even better is to have the candidate work on a task for a real project their potential future team is currently working on. We bring the rest of the team into the session, let them collaborate, observe how the team works together, and get feedback from the rest of the team about the candidate to evaluate if they are a good fit or not.
I then hold the later-round interviews, which are more meet-and-greet and informal. If the whole team feels good about a candidate, I move forward with making an offer.
What’s your advice for managers who are just starting out?
Hire people who are smarter than you and reliable. As your team grows, you’ll need to be able to trust those around you to come up with solutions to problems and execute on those. Have regularly scheduled, open and honest one-on-ones with everyone on your team. It naturally makes you a better manager when you are helping your employees grow. Find the tools that work with how you naturally manage your work, ideas, tasks, and team and lean on them heavily to make your life easier. Trust your intuition, the things that scare you or make you nervous are the things you should handle first, and build the team you would want to work with.
Whats your work day like and how do you manage your time, emails, etc.?
A typical workday starts with arriving at the office around 9:00 am after dropping off my daughter at school. I start the day by reading and responding to emails, checking my schedule for the day, and coming up with 2-3 small concrete goals for the day. Then I join the daily standup with the rest of the team and I’m ready to take on the day.
With a cup of coffee or tea and a small breakfast, I begin one of my more productive periods of the day. This includes being able to focus on working with the team in the current sprint, thinking through the next releases, or tackling high-priority tasks.
I tend to take a late lunch for a half-hour or so, then with a cup of green tea, it’s back into another productive period of the day, with more sprint work or regular scrum meetings and 1-on-1s.
I find that the best way to prevent the afternoon slump is with face-to-face collaboration, and I prefer spending most of the afternoon working with others at our desks or whiteboards, and taking the occasional break to play some foosball to keep the blood flowing.
I try to stay productive during the last hour or two of my workday, as I prefer to leave the office for the day feeling like I accomplished multiple concrete objectives, including the goals I set in the morning, but also recognizing the small steps taken towards accomplishing bigger goals in the future. I usually leave the office around 7:00 or 8:00pm.
Throughout the day, I get pulled into many different things, whether it’s to make a decision on the product, troubleshoot an issue a customer is having that our support team had to escalate, or interviewing new team members, for example. This week there were quite a few fires that fall in the DevOps category, which is one of the many hats that I still wear so the rest of the team can focus on sprint work, so it was a wake-up call that it’s time to consider hiring for that role now that it has become more of a “need” than a “want”.
With all of this floating around, one way I manage my time is to try to evaluate everything that comes up by how important it is, and if it’s important, do I need to be responsible for it or is there a better person. If something comes up that doesn’t need immediate attention, I can usually put it somewhere to deal with it later. Some examples are to schedule a short meeting if it’s a change in process, add it to our bug list or the next sprint if it’s a bug we need to fix, simply make a reminder to revisit it in the future if it’s not an issue now but might be later, or just discuss it for a couple of minutes in that moment and forget it forever.
For things that need immediate attention, I either handle it myself or hand it off to someone else, which is a perk of working in a room full of people smarter than you. This type of evaluation usually happens more unconsciously than deliberately, but it at least ensures that I’m spending my time on the most important thing at any moment since something else always comes up. I just don’t want those things to become distractions from the highest priorities, but I can’t just ignore them either. They need just the right amount of attention and nothing more. Some days this works well and other days not so well, when I feel like I leave the office without getting anything done. In reality, I got a lot of important things done, but not the things I expected to at the beginning of the day.
In regards to email, I have a pretty simple system based on Gmail Inbox Sections and labels to manage things. Everything that comes in gets labeled as Starred, To Do, Important, and Everything Else, in addition to other filters and labels that completely skip the inbox. I usually do a quick pass at organizing my in bulk in the morning to know what to tackle in what order, labeling things accordingly and then throughout the day as more email comes in. What I end up with is an inbox that tells me what to focus on next in each section instead of having to read all 10 emails again to figure out which is most important. This system works pretty well, and requires minimal maintenance, although some coworkers get way more emails than I do and have much more elaborate systems for dealing with them. My goal is usually to get to zero emails, although I try not to consider unimportant emails as higher priority than any non-email thing that comes up.
What’s a personal habit that contributes to your success?
In the last few years, I have once again embraced low-fi thinking tools and tend to think best with whiteboards, and write and sketch madly in a notebook with a pen. Like a habit, it takes practice to get back to that instead of relying on the computer screen or mobile apps for everything, but then it comes very natural, more so than those digital counterparts did. So it’s more about breaking the habit of taking notes in a Google Doc instead of first thinking through a problem at a whiteboard. Drafting it out in a notebook, writing as messy as our thought processes naturally are, and then digitizing just the result. I realize now that I wouldn’t be able to form or communicate coherent thoughts without the ever-growing number of whiteboards in the office. Writing or sketching out my thoughts and ideas on various projects and problems we need to solve really helps me think them through, clarify, communicate, and validate them before starting the development process or making decisions as a manager.
Share an internet resource or tool that you can’t live without.
I fall apart quickly if I’m not organized, so aside from Google Calendar, I couldn’t live without some kind of product or project management tool. We adopted Asana at an early stage in our business as a project management tool, and it has stuck with me for organizing our roadmap, backlog, and sprints, as well as keeping track of follow-ups from one-on-one meetings. I also recently started using Craft.io for more of an agile product management tool, and really appreciate the simplicity of their UX and workflow, but Asana still acts as my brain’s external hard drive for everything else I need to keep track of.
If you could recommend one book to managers, what would it be and why?
The last great book I read was “User Story Mapping” by Jeff Patton. Even though it isn’t a dummy’s guide to management, it is very much about collaboration, building great teams, and implementing sane product development processes. “Lean Startup” by Eric Ries is similar, because it’s basically considered one of the most important texts for it’s genre, but it’s about more than just how to run a startup, as it’s principles can be applied to how we manage our work and time as individuals as well. Yes, as a startup my company needed to focus on how to build the minimum to get the maximum value, but I also need to do that day-to-day in the problems I am faced with to minimize waste there as well. With “User Story Mapping”, yes we need to collaborate better to arrive at a shared understanding, but this applies not just to product management, but to my relationships with my family, for example, as well.
Where can we go to learn more about you? (LinkedIn, Twitter, Github, etc.)
You can check out our website http://www.badgermapping.com to learn more about the product we’ve built and are continuously improving. We have some great videos as well on what the software does. You can also find me on Linkedin and Twitter.
This series asks engineering managers to share their experiences with the intent of helping other engineering managers learn and improve. Have someone you want to see featured or questions you think we should ask? Contact me.