This is the second post in a series about how BBC Children’s and Education have migrated from native-first apps to interactive app experiences as Progressive Web Apps (PWA). As we saw in the first blog post, very soon we will be launching four CBeebies apps, completing the migration of old embedded tech to modern web standards and APIs on the new Universal App Platform (UAP). Part of this process has involved creating a new, declarative animations framework and re-thinking how we use them. …


This is just a quick one to put some Haskell code on AWS Lambda, and what’s better than a good-old HTTP Proxy?

The Setup

We’re going to use serverless, so let’s ensure we have that installed.

npm install -g serverless

And we’re going to use serverless-haskell as our Haskell-Lambda library and stack as our build tool. So let’s install stack if we haven’t already:

curl -sSL https://get.haskellstack.org/ | sh

and let’s create a project with serverless-haskell:

stack new http-proxy-lambda https://raw.githubusercontent.com/seek-oss/serverless-haskell/master/serverless-haskell.hsfiles

We’ve called our project http-proxy-lambda and we’ve used the serverless-haskell template to create the project. Now cd http-proxy-lambda.

The Config

Inside this project you’ll…


We are told, time and time again, that the government should spend taxpayer money wisely, efficiently, and sustainably. The government is the custodian of the taxpayer’s money and should get good value for it. Often these pronouncements are followed by promises to use taxpayer money well by cutting government spending and making efficiency improvements. However, there is an unchallenged assumption here that does not stand up to scrutiny — namely, that there is such a thing as “taxpayer money.”

The Bank of England

Not only is there no such thing as taxpayer money, it is not the case, ipso facto, that the government spends…


A common functional pattern, for lack of a better word, is to compose various functions together. This is often seen as an elegant way of combining multiple operations on a single data structure. But another advantage of composition is that it allows us to write faster, more efficient code.

We’ll look briefly what composition is, some properties of map, and then consider some (contrived) examples in JavaScript along with their performances.

Composition: What it is

Very simply, composition is an operation that takes a function from a to b, and a function from b to c, and returns a function from a to c.


Remote Pair Programming

Pair programming is a vital aspect of work at the BBC. Yet, on the face of it, it seems to be an awkward fit with remote work — after all, how can you pair program when you are 20 miles away? Nonetheless, both pair programming and remote work are important and the benefits have been known for a long time: pair programming because it ensures high quality code, shares knowledge amongst the team, and promotes code ownership; remote work because it allows greater flexibility, as well as reduced transport spending and stress.

So, it becomes imperative that we are able…

Chris Grounds

Software Engineer at the BBC. All views my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store