Jonathan Haber

Jonathan Haber
Jonathan Haber is an engineer on HubSpot's Platform team

Recent Posts

Lessons Learned from Last Week's S3 Outage

Like many companies, we were affected by last week's S3 outage. We were surprised, however, by the extent of the impact to our systems. It was a bit of a wake-up call, and we realized how much of a failure point S3 had become for us and how little we were doing to protected ourselves against S3 downtime. 

Read More ››

The Fault in Our JARs: Why We Stopped Building Fat JARs

HubSpot’s backend services are almost all written in Java. We have over 1,000 microservices constantly being built and deployed. When it comes time to deploy and run one of our Java applications, its dependencies must be present on the classpath for it to work. Previously, we handled this by using the maven-shade-plugin to build a fat JAR. This takes the application and all of its dependencies and bundles them into one massive JAR. This JAR is immutable and has no external dependencies, which makes it easy to deploy and run. For years this is how we packaged all of our Java applications and it worked pretty well, but it had some serious drawbacks.

Read More ››

Upgrading to Java 8 at Scale

The vast majority of HubSpot's backend code is written in Java. We have over 350 separate Java deployables including Dropwizard APIs, Kafka consumers, Hadoop jobs, cron jobs, and more. So when we saw the features that Java 8 brings to the table (lambdas, streams, method references, CompletableFuture, and more) we couldn't wait to upgrade and start using it. A lot of companies our size don't make these types of upgrades, it's too hard or too risky is usually the thinking. But as you fall further behind, it just becomes harder and riskier, and eventually you end up stuck with no upgrade path. This accumulation of technical debt slows down the entire development organization so keeping our stack current is a top priority at HubSpot.
 
Read More ››

Subscribe for updates

New Call-to-action