Introduction

This is the third article the series about the Elo rating system.

In the first article we focused on understanding the math, the second article we wrote code to use the system and in this article we’ll be looking at testing the system.

As you may have seen in the code repository, we already have a set of unit tests that verify the basic functionality such as “given player A has EQUAL rating as player B, probability or expected score should be 0.5” and you might be asking “What is different about this additional type of testing?”

In these types…


In this article we’ll look at how to implement the Elo rating system in code.

This is part of a series of articles on the Elo Rating system.

  1. We developed an understanding of the Elo rating system and walked through the equations with interactive visuals.
  2. (Current) Create a rating system library in TypeScript
  3. We look closer at the simulation tool and talk about about some of the more advanced adaptations you can make when applying in different contexts.

I’ll be writing TypeScript since I plan to consume it as an NPM package in other TypeScript projects but as you can…


In this article we’ll learn about the Elo Rating system. We’ll look at what problems it can be applied to and use visuals to help understand the math behind the equations.

Why you might need a rating system?

Before we go into the details about the algorithms behind the Elo Rating system let us take a step back and look at the problem we’re solving.

Imagine you are developing a game. In that game you have different players with different set of skills and experience who will compete against each other. Here are some goals for your game:

  1. If a lower skilled player (A) beats a higher…


In this post we’ll look at how to combine multiple repositories into a single repository.

The common reason you might want to merge repos into a type of single repo (monorepo) is because you realize changes from one repo affect the other. It would be better to have single atomic commit with all the changes across different repos rather than separate commits for each repo. A single repo guarantees all the code across projects works together with guaranteed dependencies which reduces maintenance and makes tracking or reverting changes easier.

Usually a repo will start with a smaller scope but as…


In this post we’ll look at how to create an NPM package out of the build of a React application. Specifically, we’ll use the build output of a Create-React-App and create a package which exports the paths to the index.html and build folder. The enables the static files to be served from a backend such as express. Even though this example uses React, I believe the technique should apply to all front-end frameworks as they all eventually generate HTML, JS, and CSS to be rendered by browsers.

You might be asking:

Why would you want to create a package?

Good…


I recently published a new npm package slate-entity-labeler which is React component built on Slate.js to facilitate labeling text. I mainly want to formally announce it here so I can get feedback and maybe other people who want to contribute and make it better. I will briefly go through design process. There is a demo video at the bottom of the article, but for now here’s a picture:

Image for post
Image for post
Screenshot of component demo

Only the text box at the top is provided by the package. The rest is just for demo display to aid understanding of state.

A while back I had been working on…


Most of the articles I write on here are about my own personal work and exploration, but given this post is about company IP I have to say:

Disclaimer: I work at Microsoft on the Project Conversation Learner team

With that out of the way, I’m super excited to finally talk about this project publicly. Given Google I/O and Microsoft //Build happened during the same week you might have missed the announcement, but Project Conversation Learner was released at //Build 2018 as a private preview.

You can view the official docs here: https://labs.cognitive.microsoft.com/en-us/project-conversation-learner

Notice it is a Cognitive Service Lab…


I recently finished up an app called SchultzTables which hopes to recreate an activity Ido Portal had us do at Movement Camp last year.

I searched online and didn’t find any existing apps I liked an though it would be simple enough to create on my own.

There is a 5 x 5 grid of symbols (usually numbers since they’re universal, although it can be alphabetical) and you must touch them in order as fast as possible. …


I recently started working on a React project and was looking to add authentication support to it. As a long time Ember developer I expected there to be a standard community solution similar to ember-simple-auth that I would be able to install and extend for my use cases. However, as I started searching on community areas, github, and npm and I didn’t find anything quite like what I was looking for. I ended up building my own solution based on the principles behind Ember-Simple-Auth hence the name of React-Simple-Auth. However, Ember-Simple-Auth is full fledged production ready ember-addon where as mine…


Recently I worked a #OneWeek hackathon project which allows creating backlog items in Visual Studio Team Services using speech to text translation and wanted to share some thoughts and the development processes.

During a sprint retrospective we noticed our team was getting randomized by requests in emails from partner teams and I was trying to persuade people to be more diligent with using VSTS for work tracking to help stay focused and better be able to measure our progress. A co-worked mentioned that for simple small tasks, the act of having to open up VSTS UX, find the right view…

Matt Mazzola

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