Senior Full-Stack Software Engineer
+44 7419 821335
Main page
Systems Developer
CEM (cem.org)
Contract
Jul '18–Dec '18
Converted a set of adaptive assessment algorithms from ActionScript to TypeScript, retro-fitting unit tests to legacy code to verify that all behaviours were preserved. I completed this well within the projected timescale and was able to contribute significantly to several other areas, including:
Project
Flash -> HTML5 transformation
Details
Converted algorithms from ActionScript to TypeScript; tests from ASUnit to Jasmine; and data from XML to JSON.
Outcome
Completed quickly and to a high standard, moving forward estimates for key projects within the company.
Project
Async unit test framework/workflow design
Details
A large part of the task was writing unit tests for event-driven code, which involved a repetitive process of handling and firing events to implement what were essentially function calls. To address this, I wrote a small framework to abstract the event boilerplate away from the tests. This made them smaller, easier to read, and faster and less error-prone to write. I also designed a surrounding workflow to speed up and automate as many of the other repetitive elements as possible, using a combination of ad-hoc scripts, instrumentation, editor macros, and other tools.
Outcome
Increased team productivity and code quality.

Other activities:

  • Maintained translations in a Flask app with Jinja2 templates
  • Provisioned VMs with SaltStack
  • Wrote script to stress-test WebSocket metrics server, documented results and applied memory upgrade to improve responsiveness under peak loads
  • Backed up and restored MongoDB databases
  • Set up Smoothwall firewall machine to simulate school network
  • Used tcpdump to debug proxy issues
  • Set up Squid proxy to test sites from behind the Chinese firewall
  • Managed staging and production machines & services

Methodologies:
Agile
Scrum
TDD

Tech:
Linux
TypeScript
Python 3
Jinja2
Flask
i18n
ActionScript
ASUnit
Jasmine
MongoDB
Smoothwall
SaltStack
Squid
uwsgi
nginx
HAProxy