eHarmony Engineering logo

Enhancing RESTful Services with Manifest Data

February 17, 2016

Enhancing your RESTful services with key environment metadata in your Manifest files is a core step towards creating a universal application status dashboard for all the API versions in all your environments. One advantage of having RESTful services is enabling and advocating their use outside your team, especially since integration with RESTful APIs is so […]

Taking MongoDB to Production

August 4, 2015

MongoDB makes it extraordinarily easy to get your first application up and running. Unfortunately, some of the very things that make that possible—such as self-descriptive, schema-less data—can actually become headaches once you’re maintaining that application at scale over the long term. A while back, I gave a talk to the LAMongoDB user group on the […]

In Pursuit of Messaging Brokers

June 27, 2015

During this session I will present the path we have taken to: Prioritize Features -> Compare Brokers -> Eliminate -> Benchmark I’ll discuss the findings, together with our recommendations. Messaging Brokers are intrinsic part of our infrastructure. At eHarmony, we have historically used HornetQ, which failed to meet our needs. We have experienced issues that forced us to […]

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 […]

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 […]

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 […]

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 […]