2024
Language Design: Rust's Almost-RulesLanguage 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 Mistakex86 prefixes and escape opcodes flowchart
2022
The lower bar of a hypothetical Rust 2.0Time 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 AttemptsLanguage Design: Annotations Obsolete Modifiers
Language Design: Unions
2020
Language Design: Popular, but WrongLanguage Design: Stop Using `<>` for Generics
2019
Language Design: Modern and MinimalLanguage 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 SortingDomains 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 ScalaLanguage 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 BugfixingParallel 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 ScalaScalaDays 2014 – Simplifying Scala: The Past, Present & Future
Functional Programmers Meetup – Scala Puzzlers
2013
GPN13 – Scala PuzzlersFunctional Programmers Meetup – Introduction to Scala