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 ››

Engineering Success: How Five Companies Onboard New Developers

Companies invest a lot of calories into recruiting and hiring engineers. We obsess over helpful prep information, interview questions, and timely follow-up emails. Creating a great experience shouldn’t stop once someone's accepted an offer, though. The time right before a new hire starts and their first few weeks are just as important, if not more, in shaping how engaged and happy they’re going to be on your team.

Read More ››

Subscribe for updates

New Call-to-action