Blog

Our thoughts on technology and design

Tech
I've recently been playing around with the JavaScript Abstract Syntax Trees (AST), with the aim of transforming some JavaScript code into various other languages (Java, C#, Objective-C). As part of my research, I looked at how Babel performs AST transforms. If you're not familiar with Babel, and the plugins which perform the transformations, I'd recommend this blog post by Shuhei Kagawa that describes the development of a simple plugin for Angular 2 code generation.
Cloud
This post describes the Concourse build system and explains why declarative CI / CD is so compelling. No more pet build servers!
UX Design
Last week I attended the UX Scotland conference held at the impressive setting of Our Dynamic Earth in Edinburgh. The 3-day conference, sponsored by Scott Logic, contained a selection of interesting case studies, workshops, hackathons and other social events.
Data Engineering
For the last few months we've been working on a very DevOps focused project. As such we've used AWS, infrastructure as code, Docker and microservices. The different microservices were initially running all on one box, each with a different port. This solution wasn't scalable or very practical. We couldn't have all our services on one machine and it was getting tiresome and error prone having to remember/lookup which port each service was on. We needed our services to run on separate machines, and we needed a way to communicate with them without having to hard-code IP addresses or port numbers. What we needed was service discovery. As we had already been using Docker for each service, Docker Swarm was a natural candidate.
UX Design
This blog post highlights an awkward problem in one of the key building blocks of an automated conversational UI and suggests a few strategies for how to deal with it.
Data Engineering
This is the second blog post orientated around Bitcoin and its inner workings. The first post took the blockchain and broke down the algorithms which create the fundamental structure of any cryptocurrency. The post was separated into two sections; the first focusing on the block header and the second focusing on the construction of a transaction. If you are not comfortable with how the blockchain works, I suggest you read the first blog post before continuing.
Data Engineering
In most microservice architectures, there are many opportunities and temptations for sharing code. In this post I will give advice based on my experience on when it should be avoided and when code reuse is acceptable. The points will be illustrated with the help of an example Spring Boot project.
Tech
This blog post shares a few quick tips and patterns that I've been using to structure JavaScript promises; keeping them clean, simple and readable.
Testing
Custom locators are great for when you need to roll your own, but they can require some tweaking when an application starts to get more complex. Here I'll look at how to chain custom locators.
Testing
I decided to do some research into testers and the challenges we face in the work place to find some answers. These are some my findings.
Tech
It’s been a couple of months since my first post about the security of Electron. With v1.0 having recently been released I felt it was time for a a fresh look
Data Engineering
An experiment in writing a volume plugin for Docker
Data Engineering
An insight into the ELK stack and how we used it on a big data project
Testing
Test metrics have for too long been the 'Holy Grail' of determining quality. This blog post looks at the reason why the metric of 'defect density' should perhaps have a second thought before use to determine software and tester quality.
UX Design
Body as interface is plausible either when the body is in a controlled environment or when the device becomes part of the body. Exploring this notion allows us to stop designing interfaces and start designing experiences.
Tech
For the past few weeks, Laurie Collingwood and myself have been working on a prototype banking app with an animated graph. In this post we’ll discuss some of what we’ve learned during the project and talk generally about animation with HTML5 canvas.
Tech
Being a software developer requires constantly improving ones knowledge. This is a short list of books that made the largest impact on me as Java developer. I hope that you too will find here something that will take you to the next level!
UX Design
We have recently been working on concept designs for a banking app aimed at the new generation of bank users. The main screen of one of such concepts hinges on a seamless transition between different views to communicate the relationship in the underlying data.
Tech
The redux pattern provides a simple (and strict) pattern for managing state; a single store holds the state while a reducer applies actions, evolving the application state.
UX Design · Video
Conversational Commerce drastically re-imagines the way services are delivered to customers by moving interactions with them into chat, messaging or other natural language interfaces such as voice. The following video captures some of our initial thoughts on how this might apply to financial services.

Authors