The author

My name is Joseph Junker. I’m a software developer interested in functional programming, type systems, formal verification, programming language theory, and a select slice of object-oriented programming. For me, programming is a craft as much as it is a vocation: I delight in code itself, and I pursue quality both for its own sake and as a necessity for the success of software projects.

The name

There are many competing definitions of code quality. I think the easiest and roughest definition is something like “code is high quality if developers do not struggle to modify and extend it”. When quality drops, development speed slows, and developer frustration grows. From this perspective, the clearest proxy for the quality of a codebase is this: Do its developers enjoy working with it? The answer to this question depends on both the code and the developers.

“Programming should be enjoyable” thus has two meanings. The first references software quality, and the second references programmer attitudes and abilities. Producing elegant code which is satisfying to work with requires that developers value fun and have the skills needed for elegance. I try to write posts which contribute to both sides of this equation, by communicating the excitement I feel when I learn new techniques for producing quality code.

The site

This blog is generated by Jekyll and uses the Hyde theme, with minor modifications. It is hosted on Netlify.