I’m Michael Brown, VP of Technology here at Auvik, and I want to share a glimpse behind the scenes of how our engineering team works and what kinds of projects we’re working on.
For a bit about me, I started at Auvik as an individual contributor working on different parts of the tech stack. From there, I took on responsibility for big chunks of the engineering team, and now I’m in a technical leadership role, a position with a lot of influence over the way we develop software. You’ll notice at Auvik there are many paths to growth within the engineering team, from individual contributor leadership roles to people management.
I’m most motivated in work involving complex, interesting problems. On the engineering team, we love questioning how things can be done better and more efficiently.
What does that look like at Auvik? I know when you’re applying to a job, that’s a big question. I want to share a bit about the problems we’re tackling, our agile approach to projects, and how our engineers get to see the impact of their code with customers.
The challenges we’re working on
Whether you think about it or not, everyone relies on well functioning computer networks. You expect and require access to the internet and all the systems you’re operating on. The management of those systems has historically been left to specialized teams of people with domain-specific knowledge. The value of our Auvik software, however, is that we can make networking management and monitoring more accessible for our customers.
This means it’s our engineering team’s role to figure out what the hard problems are for our customers, and how we can make them easier.
For example, right now, we’re working on improving how we gather information from devices on our customers’ networks. Sometimes we get conflicting evidence from different sources of information and one source tells us something that doesn’t mesh with another. So we’re working on how to take the complexity out of network management by inferring what all of the data means, and then presenting it to our users clearly.
As well, we’re also currently focusing internally on distributed architecture. Instead of a product that’s built in one big piece and shipped all at once, our software is decomposed into a number of smaller pieces that cooperate together. You can make changes to one part without requiring changes to all the other parts.
We’re continuously evolving our systems and tech stack, and always evaluating what will help us be more efficient to help our customers.If you looked at our tech stack five years ago versus today, it would be totally different. My colleague Rob Bredin wrote about how our tech stack evolves.
We’re also not afraid to say “I don’t know.” What makes these kinds of challenges exciting is that we’re all curious people motivated by complex problems that we’re figuring out together. When we’re hiring, we look for people who approach problems with a sense of excitement—as opposed to fear.
Taking our customers’ problems and making them ours
We work closely with our customer success and product management teams to understand how our customers are using the software, and how we can improve that experience. It’s part of our corporate culture to celebrate our achievements, but also to continually ask, “what could we do better?”
The main question we ask ourselves is: How do we make the sheer complexity of network management our problem instead of our customers?
To figure that out, we ask questions like:
- What are the pain points for customers right now?
- How can we make changes with minimal disruption to customers’ work?
- How do we organize our software systems to work most efficiently?
We’re an agile team, and every few weeks we’re shipping little pieces that actually deliver customer value. We don’t lock ourselves in a room and send the final project as one big package when we’re done. We modify the vision as we learn and recognize milestones along the way. For us, that’s a really rewarding experience.
Seeing the impact of your code with customers
I love that you can point to any feature you worked on and see directly how customers are using it. At Auvik, if you fix a bug today it’s in production tomorrow. And customers immediately see the result. It’s not quite to the point where every keystroke is being shipped, but it’s close!
We have cases where customers come in and ask for help supporting certain devices that they find on their networks. One of our goals is to be able to turn around device support fixes quickly. As we make these kinds of changes and improvements, we can tie the work we’re doing to immediate customer value.
Auvik is at a really neat phase of its life from my perspective. We’re not a scrappy startup anymore, but we’re not a huge company either. We’re at a point of technical evolution where there’s still much to do and a lot to contribute to the future of the Auvik software. As a developer, you’re one of the key stakeholders in the technology.
Interested in joining our engineering team? See our current job openings here.