Profile picture
Paul Abrams
Software Engineer
Home
Software development
DevOps
Personal projects
CV / Resume
LinkedIn
Back

Personal Projects

Side projects, open-source contributions, and things I build for fun.

Chess Attack Visualization

A specialized chess training app that visualizes white and black attackers on any square. Built with my fork of chess.js and integrated with the Lichess.org API.

When solving mate-in-1 problems, the app automatically shows a visualization of exactly how the enemy king is restricted. Over time, this helps burn checkmating patterns into the brain, solidifying neural pathways so you never miss the pattern during competitive play.

  • Live Demo
  • Source Code
Technologies & tools
React
TypeScript
Lichess API
OAuth2
REST
Chess Attack Visualization

Chess.js (Fork)

My published fork of chess.js which extends the popular chess library with features for analyzing board control:

  • X-ray attack detection — identifies pieces that attack through other pieces
  • Piece battery analysis — accounts for aligned pieces when determining the number of attackers on any given square
  • Comprehensive test suite with Jest

These features power the Chess Attack Visualization app.

  • npm Package
  • Source Code
Technologies & tools
Node.js
TypeScript
JavaScript
Jest
npm
Chess.js (Fork)

A Hierarchical Genetic Algorithm for the Traveling Salesman Problem

My Honours Project for my Bachelor of Computer Science at Carleton University. This project explores a hierarchical approach to genetic algorithms applied to the classic Traveling Salesman Problem (TSP).

The algorithm uses a multi-level representation that evolves both the grouping of cities and the tour order within groups, allowing it to discover structure in the problem that flat representations miss.

  • Project Paper
  • Live Demo
Technologies & tools
Java
Artificial Intelligence
Genetic Algorithms
A Hierarchical Genetic Algorithm for the Traveling Salesman Problem

Code Monkey From Space

My alter-ego’s blog about software development, technology, and the occasional tangent. A space for longer-form writing about things I find interesting in the world of code.

  • Visit the blog
Technologies & tools
Blog
Writing
Code Monkey From Space