Gatekeepers and Gardeners

Balance is an integral part of every job. We have to balance our priorities at work and our lives outside of work. We need to balance the time we spend building with the time we spend maintaining. We need to balance the needs of our teams with the varied needs of the rest of the organization. And that’s just the start of it.

Never does this become more apparent than for new tech leads - we see it all the time at HubSpot. When they step into the role, they usually find themselves with new (sometimes competing) priorities. I often hear that they're not sure if they're spending their time as well as they could. And when new tech leads lack balance, they might end up losing sight of what success for themselves and their teams should look like.

Read More ››

Inheriting Code: Why You Should Keep Code Teardowns to Yourself

We all dream of a perfect, unencumbered world, working with a pristine code base or starting a project from scratch. In reality, I’ve started enough projects to know that I can build myself into a corner just as well as anyone else can, and that things always get messy unless you spend an incredible amount of time refactoring. I’d like to offer some advice about taking over someone else's code based on my experience: Keep your code teardowns to yourself. I learned this the hard way.

Read More ››

Tuning G1GC For Your HBase Cluster

HBase is the big data store of choice for engineering at HubSpot. It’s a complicated data store with a multitude of levers and knobs that can be adjusted to tune performance. We’ve put a lot of effort into optimizing the performance and stability of our HBase clusters, and recently discovered that suboptimal G1GC tuning was playing a big part in issues we were seeing, especially with stability.

Read More ››

G1GC Fundamentals: Lessons from Taming Garbage Collection

HubSpot engineering is a Java shop invested heavily in microservices and continuous deployment. Java is not only used to run our thousands of deployables, but also our queues (Kafka) and Big Data solution (HBase). Keeping all these JVMs performant while providing a good user experience has forced us to dig deep into Garbage Collection (GC), particularly the Garbage First Garbage Collector (G1GC).

Read More ››

Becoming a Tech Lead: How I've Balanced Coding with Coaching

In an engineering organization with many small teams, it’s important to develop technical leaders who can be both successful engineers and effective mentors. Depending on the company, team, or person, there’s a lot of variation in what that looks like in practice. At HubSpot, our definition of a tech lead (TL) clearly states: They should spend most of their time on the product, not on people.

Read More ››

Modern Java at HubSpot

HubSpot’s core technology stack has been through a lot of change and iteration. What started as a simple content system based off a C# framework has evolved into a broad application platform. Today, our tech stack is made up of hundreds of services and dozens of full-fledged products. We’ve experimented with a lot of languages and frameworks along the way: We’ve built services in Go, Scala, node.js, and Ruby, and launched major product initiatives in Python and Java.

Read More ››

Subscribe for updates

New Call-to-action