How We Onboard External Engineering Leaders by Having Them Be Software Engineers

I regularly get asked what my biggest challenges are or what keeps me up at night. For me, it’s making sure we attract and retain the right engineering leadership (who believe in our shared philosophy) so that they can support our rapidly growing team. When you are growing as quickly as we are, it is extremely important that you have leaders in place who can sustain the culture of excellence as we scale. A bad leader has a very high blast radius.


Understanding Thread Dumps

Your application slows down suddenly or maybe it just stops doing anything. What do you do? What can you do? Well, you can take a thread dump. In the JVM, all execution is performed via threads. The JVM executes commands on the host OS by running a JVM thread corresponding to a native thread of the OS. So whenever the JVM executes an instruction, it's always done via a thread. JVM threads have a stack of what method invocations have been called to reach the one they're currently executing. You typically see these printed as stack traces in exceptions, showing which line of code caused your exception to be thrown. But, a stack trace can be taken with jstack at any point during execution and will show you that thread's call stack. A thread dump is a list of all the threads in the JVM with a stack trace and some metadata for each.


What Does It Mean to Be a “Good” Engineer?

At HubSpot, we first defined and published our company values in 2013 with the Culture Code. Last year we published our Product Values to be more transparent, internally and externally, about what we value as a product and engineering organization. But one thing that’s become clear as we’ve grown (both in terms of size, scope, and global reach) is that candidates and employees alike want more clarity on what behaviors support those values on a daily basis. 

There’s a lot of noise out there about the importance of holding onto the fabled “10x engineer,” who exhibits superhuman levels of productivity (and subhuman levels of empathy). But we want to combat the notion that there’s only one way to be an effective engineer, and that traits like proactivity, kindness, and teamwork don’t contribute to making an impact.

Our values are only as real as the degree to which they are personified in the code we ship, the individuals we hire and promote, and the leaders we value and reward, so the more context we can provide for people on the front line about the behaviors that are meaningful to our team, the more likely it is that we bring our values to life every day in the work we do on behalf of our customers.

The initial internal draft for this post riffed off an old post by Ben Horowitz on good and bad product managers. While useful and illustrative in its contrast, it reinforced the idea that there are “good” engineers and “bad” engineers and that those are either badges of honor (in the case of good engineers) or shame (in the case of bad engineers). 


Introducing ‘Building Your First Web App’, an Online Course Built by HubSpot Engineers

Not long after I became a senior software engineer at HubSpot, I started running technical interviews. I was instantly floored by how much experience some of the students applying had. Academic computer science education generally stays in a theoretical world. Although the high level concepts are relevant to the problems faced in a professional setting, few classes are teaching the specific technologies that are used at tech companies. And, recruiters often notice this gap in experience when they review candidates applying to tech jobs. I had no idea when I was in school that there were students who were finding ways to gain experience in these technologies and present them to potential employers—and it was making them stand out. 


Deep contextual multi-armed bandits: Deep learning for smarter A/B testing on autopilot

The machine learning team at HubSpot recently published a paper which we presented at the Uncertainty in Deep Learning Workshop at the Uncertainty in Artificial Intelligence conference. In this paper, we outlined how we’re using machine learning to help our customers do better A/B testing in HubSpot. This technology is now available in HubSpot’s Lead Flows tool, and we’ll soon roll it out to many other areas of the product. In this post, we’ll explain how the technology works and how it will help our users accomplish A/B testing with less effort and higher returns.


HubSpot’s Engineering Values

As our team has grown, we’ve reached a point where tribal knowledge just doesn’t get transmitted as easily as it used to. For much of this tribal knowledge — like why half our infrastructure team recently Photoshopped lasers onto their eyes in their Slack pictures — it’s not a big deal if not everyone's in on the joke. But when it comes to our team’s values — the very principles that shape how we work, and why — well, we want everyone to be on the inside.

At our engineering leadership offsite last month, we realized that as we scale, we need to share our engineering values — our most important tribal knowledge of all — more plainly, more publicly, and more often. While much of our value system gets transmitted by osmosis during everyday interactions between people and teams, we recognized that it was time for more explicit reinforcement and articulation. If we aren’t deliberate about exposing new hires to these principles early and consistently, as time goes on, we risk eventually diluting (and possibly losing) these important and hard-won values altogether — values that have shaped the team and the company that we are today. 


Subscribe for updates

    New Call-to-action