Testing the Happy Path with Selenium

Phil HackMon, 05 Feb 2018

Testing the Happy Path with Selenium

At MarketInvoice, we pride ourselves with building high quality software by automating as much as we can and shipping quickly. In order to do this, we must ensure that the code is well tested and thus follow the Clean Code boy scout: If you need to touch code that is not tested, then you must add a test around that area of the code. Following this policy has drastically increased the test coverage in our platform.

This is fantastic, but what about at the very top of the testing pyramid. How, can...


Going Polyglot with Python

Phil HackMon, 22 Jan 2018

Going Polyglot with Python

At MarketInvoice, most of our codebase in C#. However, we still do believe in being somewhat polyglot, where we use the right language/tool for the job. In terms our of data science and machine learning technologies, C# doesn’t fit in very well. For this we use a mixture of F#, R, and Python. We use a lot of different 3rd party API’s to collect data, so that we can aggregate it, pump it into our algorithms, and help MarketInvoice make better decisions.

One challenge that we came up against recently was how to best rotate...


Generating Small Services

Phil HackTue, 05 Dec 2017

Generating Small Services

Since we are on the cusp of UK Open Banking and we want to be at the forefront of it, let’s start generating a “smallish” service for it. At MarketInvoice we believe in moving fast and automation. We currently are running ~20 of these “smallish” services. Let’s see how quickly we can build a service and get it live.

Step 1: Create a new git repository

All our small services are separated into their own git repositories. This helps isolates services into their own bounded contexts. We will first create a new git repo...


WebAPI 2 Scaffolding with Yeoman

Phil HackMon, 16 May 2016

At MarketInvoice, we want to scale our applications and infrastructure. We are doing this by breaking out code into micro(ish) services. One way that we can remove the blocker of the overhead of creating a new service is by generating scaffolding, such as yeoman to create a new service.

We typically use WebAPI 2 for our services that use the OWIN pipeline. When I was looking to build a custom generator, I found a few that were well done, a closish fit, but weren’t exactly what we needed. So, I decided to learn how to use Yeoman, roll our...


MarketInvoice’s First All Company Hackday

Stephanie Le GeytWed, 27 Apr 2016

Last Monday, MarketInvoice ran its first company-wide Hackday. In case you’re not familiar with the term, a hackday is an event in which computer programmers and others involved in software development collaborate intensively on software projects. They’re really great ways to get people who don’t usually work together to solve problems together, or give them the license to work on something different.

Inspired by Google’s 20% time, MI’s tech team has an innovation day every other Monday; many of the projects have gone into production, but more importantly we think it keeps us learning. Feedback from the rest of the...


Continuous Process Flow

James AthertonWed, 02 Mar 2016

What is it?

Flow is the at the core of lean thinking. Minimising the time taken from inception of an idea to delivery will improve quality, lower costs, and improve response times.

Why should we care?

  1. Focus on quality
  2. Enhances flexibility
  3. Reduces Inventory
  4. Improves Morale
  5. Minimises Risk
  6. Improves Productivity

How can it do this?

Focusing on getting single items through to the customer as quickly as possible can be thought of as reducing the water flowing in a river. As the water level drops we see the stones and shopping trolleys sticking above the water....


Retrospectives - My Favourite

James AthertonWed, 24 Feb 2016

There are myriad ways to run retrospectives, and if you are ever lacking a retro or wish to mix things up please check out this amazing resource: http://retrospectivewiki.org/ - From Rob Bowley.

General format is:

  • Review actions from last retro
  • Discuss the last period of time (week, fortnight, month, project)
  • Generate ideas
  • Filter/vote
  • Discuss and generate actions/experiments

In this post I am going look at the Generate ideas section of my personal favourite retrospective. It is the “Stop, Start, Continue Retro”. The name really says it all, what should we start doing? what should we stop doing? what...


Andon - What is it and why?

James AthertonTue, 16 Feb 2016

The Andon cord is a cord on a physical manufacturing line that you can pull to stop the entire line. If an item arrives at a station, a defect is found and it cannot be fixed before it leaves the station then the cord is pulled to stop the line. That is what it is why would you pull it? You pull it to stop the defect affecting the processes downstream, you pull it so the whole team can help resolve the problem, you pull it so you can identify the root cause and fix it, you pull it so...