
System Architecture for Edaqa’s Room

An overview of all the deployed components in my multiplayer game
Highly inefficient invisible animations (CSS/Firefox/Chrome/React)

Reducing the CPU load of Firefox and Chrome due to invisible CSS animations
High-Throughput Game Message Server with Python websockets

Tracking an error in my game, stressing over a fix, and the code to replace it all
What I look for while play-testing

Tracking and evaluating individuals playing my game.
How to write a custom selector in React

Recreating useSelector for an app that doesn’t use Redux.
I Wrote an Online Escape Game

I’m an escape room enthusiast, some may say addict, and for the past few months I’ve been missing it. A friend of mine, a true addict with over 500 rooms to his […]
Your 30th Year in Code

Becoming a programmer can be a daunting task. After reading Your First Year in Code, you might wonder what awaits you long term. My book, What is Programming covers more of the […]
Why switch is better than if-else

In Ben’s post, he questions whether switch statements are cleaner than if-else chains. I contend they are, because they better express the semantics of the code, allow less room for errors, reduce […]
Fluid layout animation: Invalidation and caching

Dynamic changes in layout properties, either because of user actions, or animations, requires a recalculation of the layout. Maintaining a stable frame rate during recalculation is challenging, as the layout process is […]
Creating a custom author box on WordPress

How to use custom short-codes to create an author-box in a template.
A Failed Experiment with Python Type Annotations

I like Python, but wish it had static typing. The added safety would go a long way to improving quality and reducing development time. So today I tried to make use of […]
A Parade of Web Tech

Perhaps I wrote that I don’t know how to create a website, but glancing back, I certainlyhave built a lot. And oh boy, there’s quite the variety of technology involved. I thought […]
Terrible interview question: Swap variables without a temporary

“Clever programming tricks have no place in programming interviews. They usually involve a small amount of code and solve an innocent-sounding question like “find the loop in a linked list”. Often unfair […]
A programmer’s introduction to user portraits

As programmers, it’s vitally important for us to understand what our code should be doing. This knowledge starts with knowing the people using our product. While we’re deep in the code, […]