David Rice is Senior Vice President of Product & Engineering at Cox Automotive and works in Austin, TX. We chatted with David about his story, his passion for cultivating early-career talent, and his advice to software developers.
Q: Hi David! Tell us about your Cox career story, and tell us what you do.
A: I was part of vAuto when it was acquired by Autotrader in 2010; at the time, I was a senior software engineer. After joining Cox, I became a product engineering leader and at some point or another, I’ve have worked on almost every retail software product.
Before vAuto, I worked for a start-up called Digital Motorworks. I got really good at fixing problems, and that was where I first got to see the effect of systems thinking: seeing how complex systems get put together. And you can put that same thinking into understanding how an organization should flow and interconnect, and how to fix its problems. For the past 10 years, I’ve been applying that same thought process: ‘how do I get the system working, and what are its breakages?’
Q: It sounds like you’ve had the opportunity to impact many projects and witness a lot of change. What have you learned from those experiences that you would share with early-career professionals?
A: All the change has led me to understand is that it’s okay not to perfectly understand everything. You know, coming from a software engineering background, I always want stuff to be binary/black and white. And the reality is, sometimes the complexity is just too high. You’re not always going to understand, and you only sometimes have the time to break things down into the smallest parts to fully understand. Accept that some level of inability to understand is okay and learn when to make decisions with incomplete knowledge.
Q: You’ve given presentations to students at the University of Texas about the things you wish you had known at the start of your career. Tell us about the backstory of those presentations.
A: When I was in college, a friend’s dad gave me a call while I was working in a non-computer science-related job. He gave me a summer job in Computer Science (CS) and fundamentally, what he said to me was: ‘I want you to come in because I think you’re going to cause trouble with the team. You don’t know what you can’t do, so you’re going to go down paths that the team has dismissed. They are moving too slow and taking too long.’ So, I got to experience that as a young professional, and it challenged me because I wanted to go in and prove myself.
I’ve seen that pattern with people who are fresh out of school. They bring new learnings and they come from places of new perspectives. At vAuto, I wanted to bring in students because I thought they provided a sense of exuberance and energy. Knowing that, I decided to go to the University of Texas to talk to some of these students and see if we could bring them on board.
Q: What was the main thing you wanted students to take away from your presentation?
A: I was told that I’d be doing an “info-session,” where I would essentially come in and talk to the students about what my company does. And I thought, ‘I don’t want to do that – that’s so boring!’ So instead, I wanted to take a perspective of “what I wish I knew.”
When you start in tech, the thing you’re most interested in is writing code and creating cool things. But the reality is, there are a whole bunch of facets of the field that you don’t figure out until later. You don’t necessarily know the right questions to ask to get you to the answers. So that’s what I wanted to talk to them about. We got great feedback from the students and my team. I’ve done the presentation about four times now. And I’ve been able to push for a lot of early-career hires at Cox.
Q: What other advice would you give to early-career developers?
A: The key is a diversity of skills. Make sure you’ve looked at different data constructs, programs, and programming languages. Having diversity of skills means that you can learn. You need to be able to demonstrate that. If you show me that you can learn skills and talk intelligently about them, that’s what I look for in hires.
One of my favorite interview questions is “how do you use software to solve problems around you that aren’t work-related?” A common behavior I’ve seen with great software developers is that they do stuff with the software even outside of their jobs. They solve real problems with it. For example, one of my early-career hires, Stacy, was active in collecting anime merchandise and she wrote a program to store her entire collection in a database. Those kinds of behaviors, that kind of passion…you can’t teach that, so I hone in on those kinds of questions in the interview process.
Q: If you could go back in time to the early stages of your career, what would you tell yourself?
A: Three things. First, I would tell myself not to get so stuck on closing doors to certain things. When I was in my early career, I was determined that I wouldn’t be in management. There was a lot of binary thought in that way. So, I would tell myself to get over myself a bit, and that it’s okay to look at other options.
Secondly, I’d ask myself: whom do I want to work with? These are people that you’re going to spend a lot of time with. Are these people that you can learn with and hang out with? Make sure they are. You spend more waking time at work than with your family.
And, the last thing is, find a mentor. The mentoring relationship is best done when both people have something to learn. Find someone who can tell you things you don’t know, has experience in a path you want to take and make sure they get something out of the relationship as well.