• Deployment using Docker

    This post covers how we use Docker to build and ship applications from development to a production environment and how it can be used in the various stages of the pipeline. We used the strategy outlined in this post to deploy a Node.js application serving a RESTful API, but is equally applicable to any web-based app.

  • Acceptance testing service depending on Web API

    Our current project is the first one where we have started to make heavy use of HTTP communication between services. Until now, our inter-service communication was almost exclusively based on asynchronous messaging. We have realized however that we need to introduce more flexibility in our architecture and that async is not always best. It means that for situations when we expect an immediate effect or response, we use synchronous HTTP calls, and for situations where we are initiating a long running process, we use asynchronous NServiceBus messaging. Once we started implementing this approach, we realized that it has a big impact on tests we run against our services and the how we execute them.

  • Dependency Injection on Drupal 6

    Drupal Logo

  • Running a Technology Meetup

    I'm one of the organisers of the AngularJS London meet up, which attracts 150-200 people each month. Here are some of the things we’ve done to make the group successful and how we’re going to keep growing it.

  • Advancing Quality And Collaboration With Gerrit Code Review

    As we mentioned on Twitter, we've recently started using Gerrit here at Wonga for source control, code review, and as a means to stop code which doesn't pass tests getting into our repositories, a pattern known as gated commits. We've considered many other SCM options including GitHub, Gitlab and Stash, but none provided the same control and pre-commit review workflow that Gerrit allows for.

  • LightBDD at Wonga

    After using FitNesse and SpecFlow, I created LightBDD as a developer-friendly way to write acceptance tests. LightBDD allows you to write acceptance tests entirely in code, using all the features of your IDE to create, maintain and refactor them, and generates reports that the whole team can use to ensure you're building the right thing.

  • Remaining Agile Under Regulation

    How we built a release management system that satisfies regulatory needs while keeping the agility of our teams

  • Acceptance testing with Cucumber.js and Protractor

    Last night we hosted the AngularJS London meetup at our office. Each month the theme alternates between getting started with Angular and Angular in the enterprise, with us hosting the latter. We look at tools and techniques that help teams deliver great Angular apps. A huge part of that is quality and testing, two things we're very passionate about at Wonga. This month we focussed on acceptance testing.

  • September London PhoneGap Meetup

    This week we hosted the London PhoneGap Meetup at the Wonga offices in London.

  • Cross Functional Feature Teams aren’t the Holy Grail!

    Cross function feature teams are supposed to be the be-all-and-end-all of agile teams. Everything you read on agile project management promotes feature teams, and recommends that you steer well clear of service or component teams. There are some huge benefits that can be realised from cross functional features teams. I am not going to regurgitate them here, here is a good article if you need a refresher.

  • Unifying generic type parameters using Mono Cecil

    Wonga’s backend is composed of autonomous services communicating via messaging using NServiceBus. All in all, our backend services handle close to 2,000 different message types. Our range of products are offered in many countries, and local regulations impose significant variations. In order to manage complexity, our Continuous Integration system is building, testing and packaging different variants of our backend services for every offering. Consequently, the set of handled message types varies across offerings.

  • Building, Testing and Maintaining a Website Platform

    Over the past year we have had to change the way we look at software development in the front-end team. We have expanded the same platform to deliver multiple products in several countries, this has made us rethink the way we deliver our software.