Alex Dytrych

Full-Stack Web Developer
Teacher & Facilitator

London, UK • Remote

I'm a full-stack JavaScript developer who specialises in creating delightful, high-performance web applications with technologies such as React, Node.js, and PostgreSQL. I have 5 years experience building apps, games and tools for the web.

I spend a lot of time thinking about coding, computational thinking, and how we teach it. I'm the creator of Erase All Kittens, an open-source game that teaches children aged 8+ to code. As a teacher/facilitator, I've run courses on web programming for beginners, taught business executives to build their own IoT devices, and introduced 7-year-olds to game design.

Work History

Software Engineer • Music Glue
  • JavaScript
  • Node.js
  • React.js
  • Redux
  • GraphQL
  • Relay.js
  • PostgreSQL
  • TDD
  • Ruby
  • Microservices

In my role as Software Engineer, I helped design, develop, and architect a rewrite of Music Glue's e-commerce system using React, Node.js, GraphQL, and Ruby.

I led work on the new platform's theming system which let users customise their website without having to write code. This involved writing RESTful Microservices with Node and Postgres, integrating with a large Ruby on Rails app, and writing a UI with React, Redux, Relay, and Immutable.js.

I also architected the light-weight React/Redux shop front-end used on all Music Glue stores. Keeping within our performance budget here was an interesting challenge, but the result was a very fast, simple system.

One of the more interesting challenges was scale. Music Glue's platform needs to deal with an event like a major band announcing a stadium tour, where hundreds of thousands of tickets might be sold in just a few minutes. I worked to profile and optimise the use of PostgreSQL by our microservices; and designed & implemented a caching strategy using Memcached for our GraphQL API.

Co-Founder & CTO • Drum Roll HQ
  • JavaScript
  • Node.js
  • React.js
  • PostgreSQL
  • MongoDB
  • Pixi.js
  • UI/UX
  • AWS
  • Project Management

As co-founder & CTO, I was responsible for all the technical work on our product Erase All Kittens, a web-based game that teaches children how to code. I started the project in my bedroom, and by the time I left we had introduced hundreds of thousands of children to code.

I designed and implemented a custom game engine in JavaScript, using Pixi.js, Backbone.js, WebGL, React.js, and the WebAudio API. I wrote a backend API in Node.JS, using PostgreSQL, MongoDB, and Stripe.

As well as implementing the engine, I was responsible for most of the in-game UI & UX design, writing all the educational content & curriculum, level & puzzle design, some character & UI animation, and project management.

Developer • Decoded
  • JavaScript
  • Node.js
  • PHP
  • Salesforce
  • PostgreSQL
  • Websockets
  • Go
  • Redis
  • TDD/BDD
  • Angular.js

As a developer at Decoded I worked on a range of internal and external software products. I designed and built a live code editor for Decoded's coding workshops. It was written with a real-time framework called Derby.js, using MongoDB, Redis, and Stylus. Users could open their project on a phone and watch it update live via websockets with Socket.io as they worked.

I also built internal business-management tools in Angular.js and Node.js using a BDD approach. I maintained the existing website and course infrastructure (PHP and MySQL); and wrote a tool in Go that would automatically synchronise company data between a PostgreSQL database and Salesforce.

Projects, Prototypes, Talks

Teaching/Consulting • ADA College

Recently, I've been at ADA National College for Digital Skills, designing and delivering courses on web programming and game design.

The courses are aimed at 16/17 year old students with little to no coding experience. In the web programming course, we've covered the basics of web programming—HTML, CSS, responsive design, accessibility, and JavaScript—as well as UX. In the games course, we've looked at user testing, rapid iteration, several aspects of game design, and building games with JavaScript and Phaser.js.

Talk • Error Handling in GraphQL

Watch on Skills Matter. A short talk on our use of GraphQL at Music Glue. I looked at how we had made error handling an explicit part of our data schema for extra resilience if a back-end service went down.

Prototype • Programarble
  • JavaScript
  • React
  • Pixi.js
  • Redux
  • Immutable.js
  • Matter.js

A prototype exploring a way to visualise and explain computational thinking as transformations of streams of data. I decided not to take this prototype any further, but plan to integrate some of the ideas into a future project. Check out the code on GitHub.

Using Redux—with its focus on immutability—with a physics engine that relied on mutating objects (Matter.js) was an interesting challenge. In the end, I kept all the important data in Redux, synchronising it with the physics engine when the store updated.

This was my first time using a third-party renderer with React: react-pixi, which attempts to let you use React with Pixi.js (my favourite 2D renderer for the browser). The integration wasn't quite as smooth as I'd like, but I learnt a lot from reading the source and I'm excited for the official renderer API that's coming with React Fiber.

Project • Oulipo

Oulipo is a programming language and IDE I hacked together whilst working on my startup, Drum Roll. The aim was to let my non-technical collaborators write interactive branching dialogue trees for our game without me having to manually translate them into JavaScript.

Although it was implemented hastily, Oulipo did its job well. The screenplay-inspired syntax was easy for my collaborators to use, and they wrote some great dialogue. Check out the source code and some examples on GitHub.