Hi, I'm Ollie, a Clojure programmer from London. I've worked with a sprawling collection of technologies over my decade (or so) of programming, ranging from React to Ring. I'm most passionate about developer tooling, text editors and languages.

My free time is mainly occupied by my Neovim Clojure tooling, Conjure. You'll find posts in this blog covering topics such as D3 and React integration as well as building Neovim RPC clients in Rust, it's quite eclectic.

You can find ways to get in touch with me at the bottom of each page.

I hope you find something useful here. Have a great day!


Recent video content


Conversational software development


Neovim configuration and plugins in Fennel (Lisp)

Getting started with Clojure, Neovim and Conjure in minutes

Clojure prepl for tool authors

Minimalistic blogging with Clojure and AsciiDoc

REPLing into projects with prepl and Propel

Exploring REPL tooling with socket prepl

Extending Neovim with any language (mostly Clojure)

Clojure socket prepl cookbook


Wake word detection with Clojure (or Java)

Editing Clojure with Neovim

Finding new dependencies with Depot

Clojure and ClojureScript tests on Travis

Clojure and ClojureScript testing with the Clojure CLI

Clojure and ClojureScript nREPL with Clojure CLI

Clojure projects from scratch


Hello, World!

Taming clojure.spec with expound

An introduction to transcriptor

Updating dependencies without CHANGES.md

The Collatz conjecture, visualised in Clojure

I’m on Linode now


When projects rise from the grave

Getting Go Going

An introduction to ClojureScript

Working with multiple of lists in JavaScript

Asynchronicity and JavaScript


Installing Arch Linux on a Dell XPS 13 (9350)

D3 within React the right way

My new prompt (oh-my-zsh)

Wrangling JavaScript with Vim

Lazy arrays in JavaScript

Things I learned about Docker the hard way

Some thoughts on Prolog

Some thoughts on Io

Some thoughts on Ruby

Making El-Get sync like vim-plug

Giving Emacs another chance

A quick reflection on Algorithms

Vim for people that don’t want to use it

If I wrote a text editor

Brainfuck VM in Clojure

Brainfuck VM in JavaScript


Revisiting: Searching JavaScript arrays with a binary search

A JavaScript / Clojure mashup

My 2015 Bucket Set

I want to learn stuff and write about it over 2015

vim-expand, my second {plugin,bundle}!

My thoughts on React, Flux and Reflux

Essential Vim bundles for JavaScript and Clojure

Emacs: There and Back Again

Spacemacs: Emacs + Vim

Understanding Emacs errors

Angular feels like you’re always viewing a tiny piece of the puzzle

If you’re using sudo with npm you’re doing it wrong

Making package.el behave like Vundle

A week (or so) with Emacs

Emacs: A few hours after exposure

Why a lover of Vim is going to try Emacs

Building vim-netrw-signs: Into the VimL

Building vim-netrw-signs: Tooling

Building vim-netrw-signs: Introduction

Hello again, WordPress

Installing Vimdeck on Arch

Always remain a beginner


Test private methods

Graph from scratch

Grabbing elements from the DOM

Do things that scare you

Classless JavaScript – Continued

Classless JavaScript

Handling concurrency and asynchronous JavaScript

Building for browsers in a terminal

Composing a framework from specialised libraries

Exporting through AMD, CommonJS and the global object

Use verbose naming in JavaScript

Tuples in JavaScript

Ranges, summation and predicates

Equipping Vim for JavaScript

Maps in JavaScript

Searching JavaScript arrays with a binary search

Implementing a message bus in JavaScript

Prototypical inheritance done right


Faster JavaScript

Localizing times with xtz

Fun with negative margins

Writing a modular frontend

Portable JavaScript

Writing great JavaScript

Thoughts on JavaScript libraries and frameworks

Pure CSS toggle accordion

Sliced text effect

Getting started with LESS

Color in JavaScript

Inheritance in CSS

Multiple borders with CSS

Centering with the flexible box model