bash — go-left.com
➜ ~/go-left whoami
software engineer · writer · tinkerer ➜ ~/go-left ls blog/
js-inheritance/   long-polling-with-node-js/   100-little-programming-exercises/ ➜ ~/go-left cat about.txt
Writing about the things I build, break, and occasionally fix.
JavaScript, Node.js, maps, and whatever else catches my eye. # currently reading: blog/ → 15 posts

Writing about
software & the craft
of building things.

A personal blog by a software engineer. Practical notes on JavaScript, Node.js, geospatial maps, and the occasional unexpected rabbit hole. No fluff — just things worth writing down.

Read the Blog Featured Posts
JavaScript Node.js OpenLayers HTML CSS
Featured Posts

Things worth reading

JavaScript Inheritance

A clear-eyed look at prototype-based inheritance in JavaScript — before ES6 classes made it easy, and why understanding the underlying mechanism still matters.

function Animal(name) {
  this.name = name;
}
Dog.prototype = Object.create(Animal.prototype);
Read post
100 Little Programming Exercises

A curated list of small, focused programming challenges — designed to sharpen fundamentals, build problem-solving habits, and give you something to work on when you have 20 minutes and a code editor open.

// Exercise #42
// Reverse a linked list in-place
function reverseList(head) {
  let prev = null;
View exercises
Long Polling with Node.js

Before WebSockets were everywhere, long polling was how you pushed data to the browser in real time. A practical walkthrough of implementing it cleanly with Node.js — and when you should (and shouldn't) still use it.

app.get('/events', (req, res) => {
  waitForEvent(event => {
    res.json({ event });
  });
Read post
Extending IKEA UTBY Legs

A very different kind of engineering problem — how to extend the adjustable steel legs on an IKEA UTBY table when you need more height. Part machinist puzzle, part documentation for future-me.

// hardware engineering, IRL
// UTBY max height: 900mm
// target height: 1050mm
const extension = 150; // mm
Read post
Browse the full blog →

Every post, in order. JavaScript internals, Node.js patterns, geospatial experiments, hardware tinkering, and whatever else seemed worth writing down at the time. No categories, no algorithm — just posts.

go-left.com/blog/
Experiments

Interactive map
select & edit

An interactive OpenLayers demo exploring vector feature selection and editing in the browser — built when OpenLayers 3 was still shiny and geospatial JavaScript was genuinely hard.

The demo implements click-to-select, drag-to-move, and vertex editing on GeoJSON features rendered to a canvas map tile. Still works. Still interesting.

Open the map demo
selected feature 500m © OpenLayers · OpenStreetMap
OL / select-edit.html
Browse by Topic

What I write about

01
📜
JavaScript

Inheritance patterns, prototype chains, closures, and the parts of JS that reward careful reading. Pre-ES6 and post-ES6 thinking both have a place here.

🟢
02
Node.js

Server-side JavaScript patterns — from real-time long polling to async patterns and everything in between. Practical, not theoretical.

🗺
03
Maps & Geospatial

OpenLayers experiments, vector editing, coordinate systems, and the surprisingly deep world of browser-based mapping libraries.

💪
04
Programming Practice

100 small exercises designed to build programming muscle memory. The kind of thing you wish someone had handed you when you were starting out.

🔧
05
Making & Hardware

Occasionally software engineering bleeds into the physical world. IKEA hacks, workshop notes, and anything else that involves a measuring tape.

📖
06
All Writing

Everything published, in order. No editorial calendar. Posts appear when something seems worth writing down.

blog/
go-left.com · software engineer
About

Writing code, writing about it.

This is a personal blog by a software engineer who believes that writing things down is part of understanding them. Not every post is polished. Some are barely more than notes-to-self. That's fine.

The topics tend toward JavaScript (especially the parts that confused me until they didn't), Node.js server patterns, and geospatial experiments with OpenLayers. Occasionally something completely different — like modifying IKEA furniture.

The 100 little programming exercises post gets the most traffic. It started as a list for myself and apparently struck a nerve.

JavaScript
Node.js
OpenLayers / Maps
HTML & CSS
Algorithms
Web APIs
Blog Archive

All posts

01
JavaScript Inheritance
JavaScript August 2011
02
100 Little Programming Exercises
Programming Practice
03
Long Polling with Node.js
Node.js Real-time
04
Extending IKEA UTBY Legs
Making July 2012
05
OpenLayers: Select & Edit Features Demo
Maps Experiment
View all posts — go-left.com/blog/
Full archive