Blog - HubSpot Product Team

Meet the Movers and Makers: Michael Axiak, Principal Software Engineer

Written by Hannah Fleishman (she/her) | Sep 28, 2015

Name: Michael Axiak

Role: Principal Software Engineer

What was the last book you read?

I just finished David McCullough’s The Wright Brothers. While it may be a bit biased, I really enjoyed learning about their humble pursuit to build what they knew could exist. In addition to the focus on the brothers themselves, it’s easy to feel a sense of wonder for the early 1900s. Here was a time when automobiles, the telephone, radio and relativity were all new. It definitely makes one wonder about the speed of innovation today and if we’ll feel at all similarly about the progression of AI and automation.

 

How did you get into programming and what brought you to HubSpot?

I was really lucky. In third grade a classmate came back from “Computer Camp”. He had brought a Basic book and when he shared it, it was love at first sight. For fifth grade we had to do a presentation on a “How To” book and I tried to teach my Borland C++ book. I distinctly recall having a lot of trouble due to my inexperience with math -- I really wanted to understand how functions and types worked, but all I knew how to do was really basic math.

I just loved that I could solve actual human problems with code. In middle school another friend got me introduced to a local gaming shop that wanted a (cheap) program to manage the different computers as kiosks that needed to be locked down whenever people weren’t paying. This involved laying out requirements and iterating with the owners as I built the project.

Fast forward a decade and change, I spent the summer of 2012 working on a failing startup. At the summer’s end, I decided I wanted to focus more on code and less on the business. HubSpot was described to me as this virtual playground of autonomy. Three years later, this playground is still very much alive today.

 

What sorts of problems are you solving in your current role?

I work on three sorts of problems. The first is building realtime backend systems. This usually involves finding the limits of CAP and exploiting it to give us the best throughput or reliability that we need. Most of my work here has been around collecting and organizing event data -- whether the data is generic or from our email system.

The second sort of problem I’m solving is basic data analysis. Our customers perform lots of actions and there are different sorts of questions we can ask about those actions. Are there any marketing patterns that help our customers? Is there a better way to look at CPU and network utilization across our dense graph of microservices?

Lastly, and this is something that I do whenever the need arises, is that of API hygiene. Some of our systems are hard to use correctly. I’ve built a few shim libraries that take into consideration assumptions that work well at HubSpot, and simplifies the API for the rest of our developers. Two examples of this include our Kafka libraries and a streaming/batch library much of our Contacts backend uses for processing data.

 

Tell me about someone on our team who you love working with.

I think this is a popular opinion here, but I love working with Jonathan Haber. He and I actually worked together in a previous job, and he’s one of the most practical engineers I’ve ever encountered. One of the best at finding the simplest, most elegant solutions to the problem at hand. When he was in the process of leaving his previous job (and about to start a new job) I told him he has to rescind his other offer and work for us.

 

How would you describe our Development HipChat room in 3 words?

I’m going to cheat and describe our “Java Ranchers” room: “Anything But Java”. Generally people go into that room to discuss an issue related to their java service, but it often devolves into why we should be using Groovy, Clojure, or C. Most of the developers have a love-hate relationship with the language given its size and relative verbosity. (Though, I see less of that today with Java 8.)

 

What’s been your most rewarding moment at HubSpot so far and why?

The most rewarding in recent memory was when another team was able to use an efficient rate limit service I built to cut the amount of work an event system does in half. When building it, I knew it would be useful for a lot of things, but I didn’t foresee the particular use case. It was fun to see another team integrate without much difficulty.

 

Finally, the hardball question. I’ve heard you have some mean dance moves so what song should we put on if we want to see them in action?

Hah. My peak dance moves don’t reveal themselves for any particular song -- they depend on the environment. That being said, I was honored to play a part in a choreographed dance for a friend’s sangeet.

 

Anything else you want to share?

I think it’s hard to understand how much HubSpot walks the walk when it comes to autonomy and transparency. In the three years I’ve been here, I’m continually surprised at how much the leadership team engages everyone on strategy, tactics, and culture. It’s easy to overlook when comparing jobs (do I even need more autonomy?), but HubSpot is great at giving people ownership over their work.

 

Stay tuned for our next Mover and Maker, and be sure to check out our Q&A with Senior Software Engineer Maja Djodjevic to get to know more of the HubSpot engineering team.