Connect

We're pleased to announce some major new functionality in Kafdrop, our open source Kafka monitoring tool. There are several new features introduced in this latest release, including brand new Kafka APIs, CORS support, front end search, and some general code cleanup and bug fixes. We hope you'll find these news additions as useful as we have at HomeAdvisor. As always, we appreciate all your feedback. You can find the new code and user guide on our GitHub Page.
Kafka APIs
The biggest change with this update is a brand new set of APIs that allow you to monitor and query your Kafka cluster. Up until now, Kafdrop has only provided HTML views of Kafka clusters: brokers, topics, consumer groups, and messages. Now all of those human readable views are available as JSON end points.
At HomeAdvisor, the need for these APIs was driven by our multi-data center work. We're using Apache Mirror Maker to synchronize our data centers and needed a way to ensure it's keeping up. Checking for lag in … [Read more...]

At HomeAdvisor, as our ecosystem of Java clients, mobile apps, and microservices continues to grow, we've been thinking a lot more about backwards compatible software. Typically, we think of software compatibility in two forms: intraprocess (source code, compiled libraries, etc) and interprocess (APIs, messaging, etc). With more than a dozen agile teams all writing code and services that have to work together, keeping compatibility in mind is important for every change we make.
In this post, the first of a three part series on writing backwards compatible software, we'll look at intraprocess software compatibility. We'll look at the different ways software libraries can introduce breaking changes, from simple source code level changes to more difficult to track logic errors. We'll also look at some of the best practices we have adopted to help us prevent writing software that breaks other teams.
Backwards Compatible Software in Source Code
Source code (or compiled code you use … [Read more...]

If you're a software developer, you've probably got your Swiss army knife of commands, aliases, and scripts that help you be more efficient. But it's surprising how many people don't utilize some of the most powerful tools packaged with most Unix distributions. At HomeAdvisor we love learning new tips and tricks to get things done, so we thought we would share some Unix commands our development teams use everyday. Hopefully you'll find a new tool to add to your bug fighting arsenal.
1. grep
A lot of the examples we use below involve the grep command, so it makes sense to look at it first. By far one of the more powerful commands on Unix, grep is a regular expression processor that can quickly find text within files, command output, and more. The default usage is very straight forward:
[crayon-5b72e605492fb932661234/]
This will find the term word in a file named file.txt and echo out all lines that contain word. That's it. Very simple, yet incredibly powerful. No opening a text … [Read more...]

Come one come all as we live code a dual purpose automation framework. One part simple and easy API testing framework and one part page object-based UI framework. Feel free to just sit back and watch, or join in and code along with us. And if you're worried you might get lost, fear not we will record the session and host the code from each session. We will cover building it from the ground up with in-depth discussion for test engineers at all levels. And we'll do it all using some of the most cutting-edge tools and technology.
This is the second part of a 3-part series we're hosting at our Golden office. Please RSVP to let us know if you plan to attend, and we hope to see you there.
… [Read more...]

Here at HomeAdvisor we've been thinking a lot lately about what it means to have a truly resilient architecture. As we continue our record growth, we're realizing that our current architecture won't allow us to scale the way we need to over the next few years. Like most organizations, the answer for us is becoming clear: we need to move into the cloud. In this post we'll discuss the motivations behind moving to a multi data center architecture and the pros and cons of each approach we're considering. We're still very early on in the process and expect it to take us well into next year, so this will likely be the first of many posts as we begin to make this important change.
Our Current Architecture
As we've discussed previously, our current architecture is a hybrid of several large monolithic web applications and a growing suite of microservices. The monoliths are traditional Java web applications based on Apache Tomcat, while our Microservices are based on Spring Boot. In … [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.