Articles
I’m Louis Jackman, a technology architect in London. See my CV, my LinkedIn, my talks, and my projects and open-source contributions. Find out how to contact me, and more about me in general. An initial review of the relatively new systems programming language, Odin, plus a wider discussion of the state of systems languages in the 2020s. A history of text editors from Vi and Emacs to IDEs and Visual Studio Code. A comparison of portable source languages, portable runtime platforms, and hybrid approaches. A defence of Java's conservative, coherent approach to language and runtime evolution. A proposal for versioned web-platform defaults that make secure behaviour easier to adopt. How single-field wrapper types improve correctness, documentation, and parameter usage. Why Go and Rust serve distinct niches despite frequent comparisons between them. How operating systems, language runtimes, and user environments could divide security responsibilities. How trusted compilation of memory-safe code could avoid duplicated runtime security checks. How lambda syntax evolved in C-style languages and the parsing ambiguities those designs create. Why continuous integration systems are high-value infrastructure targets for adversaries and must be secured accordingly. A security review of WebAssembly's execution model, memory design, portability, and browser risks. Why developer tools, plugins, and package ecosystems make development environments attractive targets for adversaries. How execution time can leak sensitive information and when constant-time operations matter. Why synchronous non-blocking runtimes can offer clearer APIs than explicit async and await. How nested languages can bypass escaping that protects only one level of embedding. An introduction to Unix process-based concurrency using fork, signals, and Python examples.2026
A review of Odin - and, more generally, of 2020s systems programming languages
2021
A brief history of text editors: from Vi to Visual Studio Code
2020
Source portability vs platform portability
2019
In defence of Java
A proposal for the web: improving security with versioned baseline defaults
Using single-field wrapper types to reduce bugs
The distinct niches of Go & Rust
To secure systems of the future, we must rethink our notions of "Environment" and "Operating System"
Skipping expensive security checks with JIT compilation
Lambda syntax in mainstream programming languages
2018
Your CI pipeline has the skeleton key to your infrastructure
WebAssembly: a security engineer's review
Syntax highlighting and remote code execution: why developers are an easy target
Timing attacks: why being efficient can leak information
Asynchronous APIs are a step backwards for non-blocking code
Escape-bypassing language injection: exploiting multiple-level language embedding
Unix parallelism and concurrency: processes & signalling