Sparx Learning

Contract Projects, 2013 - 2025

Starting in June 2013 Alistair has worked as a freelance developer for the EdTech company Sparx Learning. I developed a suite of learning games and was involved in the development of several R&D projects.

Sparx

Who are Sparx Learning?

Sparx are one of the leading educational software providers in the UK. Their premier product, Sparx Maths, is an online learning suite that delivers homework targeted to each student's individual needs, and provides detailed data to teachers to help them track progress. They also develop products for reading and science.

What did I do for them?

I joined Sparx early in its inception in 2013, as both developer and game designer, and helped research and develop its approach to games as teaching tools. I worked closely with founder Mark Dixon to understand the theories of pedagogy from his research, and to create games that tested the company's hypotheses on game-based learning.

As the product matured I developed the suite of times tables games which are incorporated into students' homework. These are polished to a high-quality and robust production standard, forming part of the paid Sparx Maths product used by over 2 million students. I also worked on numerous projects within the Discovery R&D team, exploring new technologies and building prototypes to test them as teaching tools in a live school environment.

Technologies Used

JavaScript HTML5 WebGL

I developed the game content for the current Sparx Maths platform using PIXI.js, a framework which efficiently renders sprites in a WebGL renderer, for games in the browser. These were written in JavaScript.

TypeScript React Redux

I developed the pages that take students from their maths homework into the learning games using TypeScript. The pages are built in React, using React Hooks to get dynamic data from the Sparx cloud servers.

In previous versions, Redux was used to maintain states as the user navigated between pages.

Go Protobuf

I wrote cloud-side code in Go to manage player activity. This includes registering questions answered towards a student's homework progress, storing save-game data, flagging key analytics to BigQuery, and running a lobby for the prototype multiplayer game.

Messages between client and server are validated with Google's Protocol Buffer (Protobuf).

Firebase Firestore

In an R&D prototype game I use Firestore databases to both store long-term player progress, and to manage simulataneous play by students on shared activities. Database calls are made in Go and structured to maximise efficiency.

Selenium Playwright

I wrote automated tests in JavaScript and Typescript to ensure the games would function reliably for the millions of students using times tables games as part of their homework.

Because neither of these products could natively read from the WebGL buffer, I developed additional functionality to allow the tests to answer times tables games and perform game actions in the browser, just like a user would.

Unit Tests Jest

I wrote unit tests for key bits of functionality, including the times tables algorithms. On the client, these were done using Jest for JavaScript testing. On the cloud these were done using Go's built-in unit test framework.

Objective-C

I made the earliest Sparx games in Objective-C for iPad. Graphics were handled by Cocos2D, an open-source sprite rendering system.

Sparx
Sparx