Tagfish, a CLI tool to interact with Docker registries

logo


I joined REA’s Consumer & Brand Delivery Engineering team 8 months ago, it’s been a blast and I love working on the tech we use. We extensively use Docker, AWS, and Ruby to produce internal tools such as `shipper` that other teams use to ship their containerized applications.

We host our own Docker Registry, and we maintain a set of base images, such as `ubuntu-ruby2.2` which is an image based on the official Ubuntu, with Ruby 2.2 and a few other dependencies baked in. We want the teams at REA to use those images, because we control how they are built and we include libraries and dependencies widely used in the company. Continue reading

When your developer skills can make a difference to someone’s life

AskIzzy_Image_004

In June 2015, REA Group Senior Developer Daniel Heath came across an internal ad outlining a secondment opportunity: ‘Need food, shelter and a software developer – please help.’ The role was looking for a passionate software developer to help work on a national initiative with a real social impact. He decided to throw his hat in the ring and was the successful applicant for the role. Continue reading

Automated visual checking of deployments with ImageMagick

We’re big fans of continuous deployment here at REA. Merging a pull request and seeing the changes flow all the way to production in a matter of minutes is really awesome. Unfortunately, even with a large number of automated tests, this also makes it possible for an uncaught bug to flow all the way through as well.

We recently experienced this when some new cache-busting code was mistakenly committed and caused our landing page to use a non-existent CSS file. Fortunately we noticed quickly and so the user impact was minimal, but it highlighted that the tests in our deployment pipeline were not as effective as we would like them to be. Continue reading

Business-Friendly Functional Programming – Part 1: Asynchronous Operations

Recently, we refactored one of our micro-services in order to apply the Each library. Each is a macro library developed by Thoughtworks that converts native imperative syntax to scalaz‘s monadic expressions. This means that we can write, among other things, asynchronous code with Futures in a plain imperative style.

The micro-service is a Scala application that serves as a RESTful server. It receives requests from browsers. For each of the requests, the micro-service fetches data from other internal RESTful servers, composites these data into one response, and sends the response to browsers.
Continue reading

How we used Category Theory to solve a problem in Java

A few months ago, my colleague Chris Myers and I used some basic category theory concepts to guide us to a design that elegantly solved a problem in a Java codebase.

It isn’t the only way we could have arrived at the design; anyone could have done it, really! However, you might find it interesting to see what practical application of these ideas can look like. Importantly, category theory gives us a framework to shed light on what makes many good design concepts useful, and why. Continue reading

Another epic Tech23

Pitching @ Tech23

“Invention is a solo event. Innovation is almost always a team sport.” – Larry Marshall, CEO CSIRO

This is just one of the stellar quotes that came out of the seventh annual Tech23 event on 17 November in Sydney. The event celebrates Australian innovation by connecting investors, and entrepreneurs from across enterprise, government, university and industry sectors.

23 young companies with high growth potential and technical expertise pitched their stories and problems they’re tackling, with industry experts responding with both insights and advice. But outside of the presentations themselves, one of the most important parts of the event constantly reinforced throughout the day is the connections and collaboration between brilliant people from all walks of the innovation ecosystem. Continue reading