Knowledge: Tech Blog

Where we share our thoughts on technology and design.

Latest Articles

Colin Eberhardt

Exploring different approaches to building WebAssembly modules

In this blog post I'll explore the various different ways you can create WebAssembly modules, using Emscripten, LLVM and AssemblyScript, comparing the tooling and performance.

Oliver Kenyon

Using Kafka and Grafana to monitor meteorological conditions

Apache Kafka provides distributed log store used by increasing numbers of companies and often forming the heart of systems processing huge amounts of data. This post shows how to use it for storing meteorological data and displaying this in a graphical dashboard with Graphite and Grafana

James White

What's new in JUnit 5?

JUnit 5 has been available for a few weeks now so in this post I will investigate setting it up and migrating from JUnit 4 then explore some of the new features available.

Jason Phillips

An agile life in GDS projects

Working for a Digital agile consultancy was my first real exposure to Government / Public Service projects. GDS provide an exceptional amount of process and control for any OGD (Originating Government Department) so trying to follow their rules, the client's wishes and employing a succesful agile delivery methodology can mean serving multiple masters. It did (sometimes) work out.

Zinat Wali

Cassandra - Achieving high availability while maintaining consistency

A discussion about Cassandra consistency levels and replication factor, which are frequently misunderstood. This post explains the Cassandra infrastructure and how its configuration can be tuned.

James White

Mutation Testing - Who will test the tests themselves?

Having good tests is vital for maintaing code but it is difficult to assess the quality of your tests. Mutation testing provides one way of evaluating your tests. In this post I will be using PIT with Java to demonstrate the capabilities of mutation testing.

Gary Thompson

How Big is a Story Point?

If you're new to Agile you've probably heard the term Story Point a few times and, especially if you come from a more traditional project management or product background, you may be trying to figure out what a Story Point is and how big one is. This article tries to explain what this is in a more digestible format.

Colin Eberhardt

Asynchronous Recursion with Callbacks, Promises and Async.

Creating asynchronous functions that are recursive can be a bit of a challenge. This blog post takes a look at various different approaches, including callbacks and promises, and ultimately demonstrates how async functions result in a much simpler and cleaner solution.

Alec Gard

Foyer Screen - 2017 Edinburgh Intern Project

As the Edinburgh 2017 Summer Interns, Arran Rashid and I have spent twelve weeks working on a new foyer screen for the Scott Logic offices, this post describes the project and our time at Scott Logic.

Steven Hunton

Scaling Agile in the Public Sector

With a well publicised history of multi-billion pound IT failures and operating inefficiencies the UK government took the decision to adopt agile across the public sector. This is a brief look at the history of that adoption and lessons learned for those with an interest in agile project delivery.

Jan Akerman

Thoughts on Jest Snapshots

Jest is a testing framework that provides the testing tools we now expect to see in a modern software project. It provides fast parallelised test running, with a familiar assertion syntax, built in code coverage, Snapshots and more. In this post, I'll be investigating Snapshots and laying out some thoughts!

Bartosz Jedrzejewski

Chess data mining with Apache Spark and Lichess

Lichess makes over 100GB of chess games from 2017 available on their website. This post shows how this data can be transformed with Apache Spark and analysed. Something for Data Engineers and Chess Enthusiasts alike!

Ross Rhodes

Team Building, Development, and Go-karting : My Induction Week at Scott Logic

This blog post, written by a graduate developer joining the Edinburgh team, reflects on his induction week experience at Newcastle. A total of sixteen graduates across UX, development, and testing joined this August, and the induction was an ideal opportunity for everyone to meet.

Chris Price

Adding WebDriver tests to create-react-app generated projects

This post demonstrates one way to add Selenium e2e tests to a `create-react-app` generated app. It uses Jest as the test runner, embraces modern JavaScript features (including async/await, modules, fat-arrow functions, templated strings, etc.) and attempts to ensure that modern editors are able to provide useful auto-complete suggestions when authoring tests.

Colin Eberhardt

Creating a Market Profile Chart with D3

Market profile charts are relatively complicated and specialised charts used by financial traders. This blog post looks at how to render a market profile chart using D3.

Steven Hunton

Evolving the Agile Revolution

This blog post discusses concerns around agile delivery, particularly within the public sector

Mili Mathew

Test meetups - could be your cup of tea!

This blog describes the MeetUp trend in Testing, attending and hosting them

Andrew Carr

The Big Data technologies that saved BP $7bn

Yesterday the Financial Times boldly declared that BP saved $7bn since 2014 by investing in Big Data technologies. I spent a couple of hours researching Big Data technologies associated with BP members of staff to try and build up a picture of exactly which technologies they are using.

Bartosz Jedrzejewski

Successful microservices architecture with the Twelve-Factor App

Using microservices in your architecture is a very popular choice. Unfortunately it is also challenging to get it right. With the help of Twelve-Factor methodology, I will tell you how to set yourself up for a success rather than a disappointment.

Colin Eberhardt

cla-bot a GitHub bot for automating Contributor Licence Agreements

A few months ago we contributed a project, ContainerJS, to the Symphony Software Foundation, an organization that fosters open source and collaboration within financial services. The Foundation has various legal requirements that must be adhered to, including that all contributors (i.e. committers) sign a Contributor License Agreement (CLA). Unfortunately as...