Posts in Engineering

15 posts in total

engineering thumbnail image

Monads explained by a imperative programmer - with examples

A monad is any type construct that follows a specific pattern; it works in the same way as other design patterns. The .NET ApplicationContext is a singleton in the same way that Array is a Monad. Something being a monad does not define its purpose; in the same way that a class can implement many interfaces, a monadic type can also conform to many patterns to increase its usefulness.

engineering thumbnail image

Circuit Breakers and Application Resilience

For most people circuit breakers are a concept that belongs in the world of electricity. They are usually a box of fuses under the stairs that prevents the tangle of extension cords from turning into an unexpected open fireplace behind the TV. But the concept of a circuit breaker is something that we can apply to software and software services.

engineering thumbnail image

falcor-postman

At OpenTable, we have an engineering culture that empowers us to research, experiment and learn.

engineering thumbnail image

OpenComponents - microservices in the front-end world

Many engineers work every day on opentable.com from our offices located in Europe, America, and Asia, pushing changes to production multiple times a day. Usually, this is very hard to achieve, in fact it took years for us to get to this point. I described in a previous article how we dismantled our monolith in favour of a Microsites architecture. Since the publication of that blog post we have been working on something I believe to be quite unique, called OpenComponents.

engineering thumbnail image

Dismantling the monolith - Microsites at Opentable

A couple of years ago we started to break-up the code-base behind our consumer site opentable.com, to smaller units of code, in order to improve our productivity. New teams were created with the goal of splitting up the logic that was powering the back-end and then bring to life new small services. Then, we started working on what we call Microsites.

engineering thumbnail image

Hobknob v2.0: A new dimension

Sometimes there is the requirement for more granularity when toggling a feature switch. Version 2.0 of Hobknob hopes to address this with feature categories.

engineering thumbnail image

Hobknob v1.0: Now with authorization

We are pleased to announce the version 1.0 release of Hobknob, our open-source feature toggle management system. With it comes a few additions and several improvements.

engineering thumbnail image

Introducing Hobknob: Feature toggling with etcd

The ability to dynamically turn features on/off in software without the need to redeploy code is extremely beneficial. Whether you are trialing a new feature or using branch by abstraction to avoid creating feature branches, the use of feature toggles can aid continuous delivery and provide a mechanism to reduce mean time to resolution when an issue occurs.

engineering thumbnail image

Acceptance Now

When is acceptance-only testing a good idea, and how can its problems be overcome?

engineering thumbnail image

Look ma, no unit tests!

At OpenTable we strive to deliver change as quickly and correctly as possible. To do this effectively we are always looking for new tools and methods that allow us, the developers, to respond quickly and accurately to changing requirements and environments.

engineering thumbnail image

When to performance test in production

In my last post about performance testing I wrote about how we decided to do it in production as the ultimate test of success. Performance testing in production is enough to make some operations guys have a panic attack and a few odd looks were dished my way when I raised it on behalf of the team.

engineering thumbnail image

Linking to your app in Windows 8

In an effort to raise the visibility of our excellent Windows 8 app we have recently connected www.opentable.com to the Windows Store. This was simply a case of adding two lines of meta data to our site. Or it should have been – there were several gotchas along the way that are worth sharing.

engineering thumbnail image

Counting in ElasticSearch

Counting is the religion of this generation it is its hope and its salvation. Gertrude Stein

engineering thumbnail image

Grunt + Vagrant = Acceptance Test Heaven

My continued love affair with Grunt reached a new high the other day, when I combined Vagrant with my Grunt deployment tasks and test runners.

engineering thumbnail image

Grunt your deployments too

We've been using Grunt as a build tool for our nodejs apps, and it's brilliant. It lints, it configures, it minifies, it tests and it packages.