Connect

Here at HomeAdvisor, we've recently started taking a closer look at creating more automated tests around our growing suite of microservices. Our testing strategy has typically followed the software testing pyramid. Unit tests have always been the biggest part of our test approach, with integration and component level tests becoming more prevalent as we've migrated to microservices. But all of these testing strategies are within the application, and require almost as much maintenance as the code itself. While all of these testing strategies are just as important in microservices as they are in a software monolith, microservices usually come with some additional testing burden in the form of contract testing. This refers to the public facing API that a microservice offers, and comes with its own set of concerns beyond normal testing methodologies.
In this post, we'll talk about how we use Swagger to automatically create API documentation for all of our microservices, so that we … [Read more...]

In recent years, building a comprehensive API automation framework has become crucial for large software systems. Our digital world has grown to include more and more devices that communicate with each other instead of humans, and most of this is driven by APIs. It's more important than ever to ensure organizations can release code with ease and confidence. Using an API automation framework ensures APIs are thoroughly tested prior to releasing, including boundary and error cases that are tedious to test with every code release. There are several benefits that such a framework will provide:
Forces APIs to be documented consistently for both human and machine readability.
Faster and more reliable than UI based automation such as Selenium.
Can cover a great deal more scenarios that might be impossible to using UI Automation.
As a Automation Test Engineer who specializes in REST API testing, I have seen and tried numerous strategies for API testing. In my experience, … [Read more...]

We've talked a lot recently about our experience decomposing our monolithic web applications and migrating towards a microservice architecture. In this post, the third part in our ongoing microservices series, we'll talk about the technology and tools we have chosen to build our common microservice stack.
Choosing a Microservice Stack
As we talked about in our microservices pitfalls post, one of the most important things you should do before building microservices is settle on a microservices stack. A microservice stack is the consistent set of technologies with which all teams will develop their microservices. This is what Mark Richards referred to as a "base image". As we'll discuss below, failure to take this important step early on can have lasting impacts on your organization.
The HomeAdvisor microservice stack is based on a variety of open source projects that generally have great community support and proven track records across multiple industries. Choosing your own stack … [Read more...]

Today we are happy to announce the release of Robusto: our open source Java API client framework. The goal of this library is to help build resilient API clients while being as flexible and configurable as possible. At HomeAdvisor we use it for building HTTP clients, but the framework is not bound to any particular client or protocol.
You can find the official source code and documentation on our GitHub page. Below we'll talk about the motivation behind building this framework and how it helps us build a more robust microservice architecture.
Why Robusto?
The name Robusto is both an homage to the Java programming language in which it is written, as well as a nod to the similarly named coffee bean that is particularly strong and resilient to pests and disease.
The Need for Robust Clients
As we'll talk about more in future posts, in the past year or so we've begun breaking up our monolithic architecture. Instead of a few applications that do everything, we're building a large … [Read more...]

Welcome to the HomeAdvisor technology blog. Before we dive into what you can expect to find here, perhaps a little background is in order. HomeAdvisor, formerly ServiceMagic, is a marketplace that connects homeowners with ­­home service professionals. We are headquartered in Golden, Colo. Our technology group, which is responsible building and maintaining multiple public-facing platforms, is comprised of around a hundred or so engineers specializing in various disciplines — including Java, Front End, U/X, QA, CM and more. We practice Agile/Scrum techniques and are always self-evaluating to identify what we do well and what we can improve on. We emphasize stability, functionality and innovation in all of our processes. And when the going gets tough, we play ping-pong and foosball to help us clear our minds.
So what can you expect from this technology blog? Like many software organizations, we are constantly faced with challenges both large and small when it comes to designing, … [Read more...]

About Us

Based in Golden, CO, HomeAdvisor’s technology group is comprised of nearly 100 Java ninjas, front end gladiators, QA warriors, U/X experts and other rock stars. We build the technology that helps make HomeAdvisor the best place for homeowners to connect with home service professionals.