eHarmony Engineering logo

Collaboration Yields Automation Success

March 2, 2015

At eHarmony, automation plays an integral role in our QA process. Continuous tests execute across our products, enabling us to catch regression defects early in the QA cycle, while simultaneously enabling additional focus on new features and functionality. In this post, I reflect on what it takes for automation to succeed in an organization. Vision […]

Node.js in the Real World

January 21, 2015

At eHarmony we use Node.js® for 100% for our mobile web traffic. We switched to it from a PHP backend that grew stale and unwieldy to develop in. Using JavaScript on both the server- and client-side is an approach with many benefits. The purpose of this post is to share some of the solutions we’ve […]

Maven Dependency Wrangling

December 2, 2014

What nested project versions does your main Apache Maven project actually depend on? How can you choose those nested versions wisely? This Blog post looks at the methodology Rick’s team follows. If you use Gradle or some other tool, the principles are the same though the implementation differs. If you’re a Java developer, you’ve inevitably […]

Touch ID Security & iOS 8

October 7, 2014

The next Blog post in our series on ‘Modernizing a Mobile App’ looks at implementing Apple’s Touch ID security. The fingerprint scanner on the iPhone 5s enables Touch ID to identify users, and allows us to quickly authenticate them before they get to check out their new eHarmony matches. As eHarmony’s Senior iOS Development Manager […]

Mapping Love with Hadoop

September 24, 2014

In this talk, I discuss how Hadoop helps us to process over a billion possible matches into several highly compatible matches for each of our users per day. eHarmony was founded to give people a better chance at finding happy, passionate, and fulfilling relationships. Did you know that we are already responsible for 5% of […]

Modernizing a Mobile App

August 14, 2014

Keeping an app up-to-date with the steady flow of new features released by mobile device companies is a daunting task. Read about the efforts of the mobile team at eHarmony to clean up and redesign our mobile apps. Many of you old-timers out there have been through this on desktop applications, server apps, and old […]

Design Pattern: Private Type Parameters, an Application of Type Currying for Java

July 16, 2014

I’ve recently noticed myself applying the following design pattern. Then I started noticing it in libraries that I use. It’s better known in Functional circles; I haven’t previously seen a formal description for Java developers. Just as functions can be curried by accumulating and encapsulating object parameters, types can be curried by accumulating and encapsulating […]

Responsive Design in the Real World

June 26, 2014

At eHarmony, we’ve been using responsive design techniques to ensure that each type of user gets the most relevant User Experience for their platform. Along the way, I’ve picked up a few tips that I’d like to share. Designing for a content sites, like our Dating Advice or our eHarmony Blog is pretty straight forward. The […]

Data Science of Love

June 26, 2014

View the video of my Data Science of Love Keynote address at the Innovation Enterprise Summit, with synchronized slides

Spring Batch Admin – The Tricky Parts

June 26, 2014

In the Matching Engineering team at eHarmony, our projects use the Spring Batch and Spring Data frameworks extensively. As the frameworks became more mature, we realized that a GUI control mechanism would be useful. The new GUI needed to support features like monitoring executing runs, starting and stopping jobs, and using a well-defined API remotely. […]

Spring Batch and Oracle 11G

June 26, 2014

I am sure anyone working with Spring Batch and using Oracle as metadata store has encountered this issue. The problem I am talking about is the default Transaction Isolation level in Spring Batch (SERIALIZABLE), which is causing inconsistent behavior. (However it is fair to mention that this issue isn’t happening as frequently in 10G or […]

Announcing the Seeking 1.0 Open Source Release

April 5, 2013

Seeking is a library for generically building and executing type-safe queries against different data stores. We developed Seeking to facilitate transitioning one of our Matching applications from Postgres to MongoDB. This particular Matching application performs complex, multi-attribute queries, and we needed to be able to switch back and forth seamlessly between the two data stores. […]