I’m a Technical Director at Auvik, and as an engineering leader, I see my job as helping make developers’ lives easier. I want to set my team up for success and create a supportive environment to learn, but also where people feel comfortable questioning the way we do things.
I started at Auvik eight years ago as a senior software engineer. Since then, we’ve grown from a well-funded startup of 30 people to a company of 200+ employees and a growing number of customers. To support that much growth and be successful, you need a great product. And that’s what we have, and that’s where we’re continually investing.
In job interviews, candidates often ask about our tech stack and what they can expect working on Auvik’s engineering team. The answer is more complicated than a list of tools, because tools change. More importantly, I want to share how we use those tools and what they help us achieve.
As our engineering team has grown, so has our tech stack. We’ve built our engineering team around a culture of engineering excellence. This means constantly evaluating how our technology stack is performing, enabling our developers and empowering the company’s success. This evaluation process has led us to make significant investments in our technologies over the years and inspired us recently to take on a big project around transforming our software platform.
How we’re reimagining our entire software platform (the technical bits)
Our architecture is based on developing a set of data-driven microservices that communicate indirectly via Kafka, a distributed event streaming platform. We love our architecture because it allows our developers the ultimate flexibility in determining the best technologies and designs to solve their complex problems.
But we quickly realized that the architecture by itself wasn’t enough.
It wasn’t allowing our consistent and high-velocity team of developers to collaborate closely with one another. On one hand, flexibility meant our developers had more options of ways to solve their problems, but on the other hand, the ideal technical decisions became less obvious.
That’s when we decided to do microservices better! We developed a strategic and well-defined set of abstractions that allows our developers to reference common concepts amongst their programming languages and frameworks.
Flexible problem solving now starts with common patterns and components. They are now built consistently to enable seamless integrations and compatibility. Using this approach helps developers create and use consistent practices to develop solutions, rather than having to constantly decipher other’s techniques.
Engineering @ Auvik: What to Expect
The IT industry is shifting towards cloud-based systems and distributed work environments. That’s why our engineering team is focused on cloud-based tools that can enable us to scale our software in the cloud indefinitely.
Interested in what our day to day looks like? These are just some of the tools you can expect to use on our engineering team:
- Powerful stream processing jobs written in Java and run with Flink
- High performance micro-services developed in Go
- Fully functional developer environments orchestrated using Docker and Skaffold
- Easy and reliable deployment processes built around Helm and Kubernetes
We love our architecture even more now that we’re evolving how we use it, and we’re developing the tools we need to make it even more accessible and empowering for our team!
The secret: Being an expert in our tech stack is not a job requirement
Tools change! Technology changes fast, and we want to take advantage of new ways to work that help us. We have quarterly Hack Days where the engineering team signs up to work on team projects or learn something new. Everyone is invited to participate, from engineering co-op students to senior leaders. Often it involves experimenting with new tools to see how they can help us solve problems.
So no, I’m not looking for candidates that are experts in all the tools we use. No one here started out with experience in all of our tech stack. I’m sharing it because I hope it sparks your curiosity, and reflects how Auvik is a place where you can hone your expertise and grow as an engineer long-term.
Engineers on our team have changed roles quite significantly as they grow with Auvik. I’ve had people move from backend developer to devops roles, and front-end developers who know javascript move to cloud dev roles using cloud native technologies like Go.
There’s a deep sense of passion towards the art of engineering on our team. We thirst for knowledge. We’re always asking challenging questions to ourselves in a quest to improve. We value and celebrate being creative problem-solvers. I’ll admit, it’s not always for everyone, but for those with that spark for curiosity, it means living outside our job descriptions all the time.
Excited by those prospects? Check out our current engineering openings here!