2024

Language Design: Rust's Almost-Rules
Language Design: Naming Conventions – Part 3: Options
Language Design Talk (WIP)
Compact Base64-first Database-friendly UIDs

2023

Language Design: Rust's Struct Initializer Syntax Was a Mistake
x86 prefixes and escape opcodes flowchart

2022

The lower bar of a hypothetical Rust 2.0
Time to wind down Rust feature development
Language Design: Drop `break` and `continue`
Pointer Compression
Header Compression
Language Design: Unified Condition Expressions – Comparison with Rust
Language Design: `Result` naming
Language Design: Typing Terminology
Language Design: Schemas as Source Code
Language Design: Useful Syntax Sugar
Language Design: The Cost of Everything
Language Design: Fields & Methods & Properties? – Pick Two!
Standards: The sad state of programming on Linux
Language Design: Familiarity – Familiarity is a tie-breaker, not a self-sufficient argument
Language Design: Naming Conventions – Part 5: Streaming
Language Design: Naming Conventions – Part 4: Lookup
Language Design: Against Mixed-cased Type Names

2021

Language Design: Annotations Obsolete Modifiers – Failed Attempts
Language Design: Annotations Obsolete Modifiers
Language Design: Unions

2020

Language Design: Popular, but Wrong
Language Design: Stop Using `<>` for Generics

2019

Language Design: Modern and Minimal
Language Design: Unified Condition Expressions – Implementation
Language Design: Unary Operators are Unnecessary
Language Design: Binary Operators are Overused
Vertical Tabs in Firefox
Language Design: Equality & Identity – Part 4: Fixing Haskell

2018

Language Design: Comparing and Sorting
Domains as Cargo Namespaces
Linux: Improving the Synaptic Package Manager UI
Language Design: Use Consistent Keyword Length
Language Design: Naming Conventions – Part 2: Conversion
Language Design: Naming Conventions – Part 1: Creation
Standards: Unicode Sentence Separator
Language Design: Unified Condition Expressions – Exceptions
Hardware: Keyboard Setup
Hardware: Keyboard Build (WIP)
Hardware: Keyboard Design
Hardware: USB-HID Protocol Evolution (WIP)
Language Design: Rust's Into in Scala
Rust Hack & Learn Karlsruhe – directories: A Tiny Library That Might Help You!
Language Design: Unified Condition Expressions – Introduction

2017

Language Design: Package Objects in Scala
Language Design: Equality & Identity – Part 3: Solution
Language Design: Equality & Identity – Part 2: Problems
Language Design: Equality & Identity – Part 1: Overview
Standards: XDG Migration Status
Standards: Defending $HOME
Linux: Improving the XFCE Settings UI
Language Design: Mistakes in Rust
Language Design: Use `ident: Type`, not `Type ident`
Language Design: Generics
Six Years of Scala Development – Part II: Retrospective
Six Years of Scala Development – Part I: Departure
Language Design: Implicit Numeric Conversions

2016

Functional Programmers Meetup – The Future of Scala: The News from Scala Days!
BOBkonf 2016 – Workshop: Introduction to Scala
ScalaSphere 2016 – The Implementation Challenges of Language Simplification

2015

Scala.World 2015 – A Snorkeling Excursion into Bugfixing
Parallel Programming with Java Multithreading
ScalaDays 2015 – Project Valhalla: Part II
Functional Programmers Meetup – Project Valhalla: Value Types in the JVM

2014

39th Softwerkskammer Meetup – Programming in Scala
ScalaDays 2014 – Simplifying Scala: The Past, Present & Future
Functional Programmers Meetup – Scala Puzzlers

2013

GPN13 – Scala Puzzlers
Functional Programmers Meetup – Introduction to Scala