RSSAmplifier

Blog

Blog | Alex Harri

Welcome to my personal website and blog. I write about TypeScript and other software engineering topics.

alexharri.comRSS feed ↗18 posts

Latest posts

ASCII characters are not pixels: a deep dive into ASCII rendering

A look at how I used shape vectors to achieve sharp, high-quality ASCII rendering.

Compressing Icelandic name declension patterns into a 3.27 kB trie

How I used a compressed trie data structure to encode Icelandic declension data.

A flowing WebGL gradient, deconstructed

An introduction to writing WebGL shaders using gradient noise and cool math.

Sharing changes, visuals first

Exploring my visuals-first approach to sharing my work internally.

Searching for and navigating Git commits

Exploring Git’s built-in tools for searching through and analyzing Git commit logs and diffs.

JSDoc as an alternative TypeScript syntax

How to type your JavaScript code base without writing a single TypeScript file.

The web’s clipboard, and how it stores data of different types

Exploring the web’s clipboard APIs, their limitations, and their history.

2024 Icelandic Developer Survey: Compensation, Technologies, and more

Analyzing data from Iceland’s 2024 developer survey: compensation figures, programming languages, and technologies used.

Introducing Arkio’s Pin Tool

Archived version of a post I wrote introducing Arkio’s Pin Tool as part of Arkio’s 1.7 release

Planes in 3D space

Visual and interactive introduction to 2D planes in 3D space.

Iterating over Bit Sets quickly

Multiplying iteration speed by exploiting two’s complement and Hamming weights.

Bit Sets: An introduction to bit manipulation

Learn about bitwise operators and bit manipulation by implementing a BitSet class in JavaScript.

Making GRID’s spreadsheet engine 10% faster

Optimizing the performance of GRID’s browser-based spreadsheet engine, through the use of shared immutable objects.

Why doesn’t TypeScript properly type Object.keys?

A look at TypeScript’s structural type system, and we how we can effectively use it to our benefit.

Moving to a monorepo: Yes, but how?

Migrating existing repositories to a monorepo structure. A step-by-step guide.

Multi-cursor code editing: An animated introduction

Animated and interactive intro to multi-cursor editing using Command D and clever text navigation techniques.

Build your own schema language with TypeScript’s infer keyword

Case study on using TypeScript’s infer keyword, combined with recursive types, to create a custom schema language using template literal types.

The Engineering behind Figma’s Vector Networks

A deep dive into the world of vector networks, and the engineering challenges involved in their implementation.