topic: software development
Everything I’ve written on the subject, from the beginning of this version of the site.
-
2020
-
Apr
-
24
-
29
-
The Infra Engineer’s Blind Spot—JOURNAL
Why I ended up down a rabbit hole instead of shipping.
-
-
-
May
-
03
-
find, grep, xargs, and newlines and null—JOURNAL
Turns out
tr
is your friend for this kind of thing.
-
-
04
-
Follow-Up on Command-Line Finding and Filtering—JOURNAL
A simpler solution that doesn’t require
tr
… if you have GNU utils or other alternatives.
-
-
08
-
This Week I Learned #3—JOURNAL
Less reading this week… because more composing.
-
-
13
-
mut
(andset
) and autotracking in Ember Octane —JOURNALUnderstanding a surprising behavior—and fixing a refactoring hazard.
-
-
15
-
Designing an Atomic CSS System—JOURNAL
Making my CSS scalable from the outset.
-
-
24
-
25
-
Making Illegal States Unrepresentable—In TypeScript—JOURNAL
Showing how Scott Wlaschin’s approach in F♯ translates to a language with a very different type system.
-
-
-
Jun
-
07
-
Building the Slow Way—JOURNAL
Or, part of why rewrite is taking a while: I’m in this for the long haul.
-
-
-
Jul
-
01
-
A Git Workflow for Managing Long-Running Upgrades—JOURNAL
Using some lessons learned in the trenches of large upgrades.
-
-
-
Aug
-
17
-
Migrating Off of
PromiseProxyMixin
in Ember Octane —JOURNALAn important refactor for getting rid of mixins and proxies.
-
-
28
-
Async Data and Autotracking in Ember Octane—JOURNAL
Digging into the
load
helper andAsyncData
type I introduced in an earlier post.
-
-
-
Sep
-
04
-
Tracking in the Glimmer VM↩︎—❈—ELSEWHERE
Chris Garrett (@pzuraq) explains to me how autotracking and the Glimmer (Ember) template layer connect!
-
-
05
-
Data Constructors, Part 1: Understanding by Implementing —JOURNAL
Understanding an idea from Standard ML-like languages by implementing it in (boring) TypeScript.
-
-
22
-
Autotracking: Elegant DX Via Cutting-Edge CS —JOURNAL
A modern JavaScript reactivity system powered by Lamport clocks and incremental computation and depth-first searches: oh my!
-
-
26
-
Things I Was Wrong About: Types —JOURNAL
Because it would do us all good to be a little more honest about where we’ve changed our minds or simply been mistaken.
-
-
-
Oct
-
06
-
Initializing Class Fields in Ember Octane —JOURNAL
One of the many small-but-lovely benefits of getting to use native classes in Ember Octane.
-
-
24
-
Writing Robust TypeScript Libraries—JOURNAL
A subtler art than it might at first appear, if you intend to support JS or even loose mode TS.
-
-
31
-
Notes on Thoughtbot’s “Stop Using 'any'”—JOURNAL
A couple tweaks and improvements to a good post!
-
-
-
Dec
-
22
-
Understanding
args
in Glimmer Components—JOURNALClearing up a common confusion with a worked example.
-
-
-
-
2021
-
Feb
-
13
-
Announcement: Speaking at EmberConf 2021 —ELSEWHERE
In which I’ll be speaking for 30 minutes at a JS conference… and will spend only about 5 of those minutes on JS.
-
A Useful Approach to Problem-Solving—JOURNAL
(It’s useful to me, at least.)
-
-
28
-
A Gap in (My Knowledge of) the Developer Productivity Literature —JOURNAL
Where is the equivalent of Accelerate for anything outside of DevOps?
-
-
-
Mar
-
08
-
Naming and Framing—JOURNAL
Or, why did Accelerate matter for DevOps?
-
-
13
-
Introducing “Heuristics for Good Software Design”—JOURNAL
A series of posts in which I explain how I think about effective software design.
-
-
21
-
Progressive Disclosure of Complexity and Typed FP Languages—JOURNAL
Or, one part of why to some extent Elm, and to a significant degree PureScript Halogen, can be quite difficult for users to get their heads around at first.
-
-
23
-
RFC: Semantic Versioning for TypeScript Types ↩︎—❈—ELSEWHERE
In which years of thinking and months of design come to fruition.
-
-
29
-
Impromptu EmberConf 2021 AMA↩︎—❈—ELSEWHERE
In which my friend David Baker put me on the spot… and it was great!
-
-
31
-
Keep It Local—ELSEWHERE
Or: (part of) what “reasoning about your code” really means; being my EmberConf 2021 talk.
-
-
-
May
-
27
-
Chatting About Web Dev ↩︎—❈—ELSEWHERE
Ember CLI history, ember-auto-import, web bundling, and more
-
-
-
Aug
-
07
-
MusicXML and Percussion Notation—JOURNAL
Digging into How Dorico and StaffPad represent percussion differently.
-
-
-
Dec
-
12
-
Small, Non-Trivial Projects for Learning—JOURNAL
For learning effectively, nothing is better than a real project which gives you a place to experiment and play.
-
-
-
-
2022
-
Jan
-
07
-
28
-
Announcement: Speaking at TypeVille 2022 —ELSEWHERE
On the subject of “Types as Tools for Thought”
-
-
-
Apr
-
18
-
Semantic Versioning for TypeScript Types 1.0.0-beta.1↩︎—❈—ELSEWHERE
After years of work, I’ve published the first beta of the spec for semantic versioning for TypeScript types!
-
-
22
-
SemVer for TS in Practice—JOURNAL
Showing how the recommendations from www.semver-ts.org can actually work in the real world.
-
-
28
-
Misusing TypeScript Assertion Functions for Fun and Profit—JOURNAL
A horrible (but very useful) hack I came up with yesterday for adding types to some old code.
-
-
-
Jul
-
08
-
A Pleasing Symmetry in Rust—JOURNAL
Appreciating how Rust
enum
variants are mirrors of its kinds ofstruct
s.
-
-
-
Aug
-
05
-
On the Ember Blog: Plain Functions as Helpers ↩︎—❈—ELSEWHERE
Making sure people understand a new feature we shipped which is a big deal.
-
-
28
-
Flow State—JOURNAL
Maybe it’s less important than we like to think?
-
-
-
Sep
-
25
-
Marco’s Rule of Software Stacks (Expanded)—JOURNAL
On being the biggest user of a given technology.
-
-
-
Oct
-
06
-
Trade-offs—JOURNAL
They are real; but too often offered as an excuse to avoid thinking rather than a reason to think harder.
-
-
24
-
-
Nov
-
04
-
Organizing Many Software Projects—JOURNAL
How I lay out my file system and how I tweak Git for working on literally dozens of different repositories.
-
-
-
Dec
-
09
-
Reasoning About Reference Cycles—JOURNAL
Rust’s lifetime types are challenging, but they bring a capability I miss all the time in other languages.
-
A UML Comeback?—JOURNAL
Because the tools are positioned for sketching, now?
-
-
-
-
2023
-
Jan
-
08
-
Product Idea: Meal Tracking for Athletes —JOURNAL
All of the existing tools need broader design vocabularies.
-
Special Null Syntax vs. Types and Functions—JOURNAL
Why does
Maybe.map
feel better than??
and friends to me? A sketch.
-
-
13
-
16
-
Feature Idea: Week-Level Smart Training Plans —JOURNAL
Training (at my level, anyway) is less about individual day-to-day work and more about what I do each week. The tools should support that!
-
-
-
May
-
23
-
Competencies—JOURNAL
An observation on the dynamics of (sufficiently) large organizations.
-
-
27
-
-
Jun
-
10
-
Is GitHub Copilot Any Good?—JOURNAL
Betteridge’s Law applies, but the details of why I think so might still interest you.
-
-
11
-
15
-
Writing Tools—JOURNAL
Obsidian, Bear, high-quality native apps vs. cross-platform Electron apps…
-
-
23
-
On Ember’s New Major Version Cadence—JOURNAL
Not just how this one specific process for one JavaScript framework is changing, but why—and why I hope it will be useful to other projects as well!
-
-
-
Jul
-
01
-
Trying BBEdit and Nova—JOURNAL
I am taking some time off, and this seems like a great time to mess with alternatives for my software stack.
-
-
11
-
Je ne sais quoi—JOURNAL
Programming languages, cameras, computers, and other technologies—and feel.
-
-
17
-
Is TypeScript Good?—A Reply to Rach Smith—JOURNAL
Taking a thoughtful post as an excuse to discuss software system dynamics through the lens of TypeScript.
-
-
29
-
My Current Mac Stack—JOURNAL
The software I use every day, with commentary.
-
-
30
-
Extended Time Off Report—JOURNAL
What I got up to over the past month! Because I relax by learning and doing.
-
-
31
-
Reflections on a Month with BBEdit and Nova—JOURNAL
What works, what doesn’t, and where did this experiment lead me in the end?
-
-
-
Aug
-
02
-
05
-
Stay Curious About Your Tools—JOURNAL
I have lately enjoyed digging further into Unix and macOS fundamentals—and it has reminded me to stay curious about my tools!
-
-
08
-
Just Keep Climbing—JOURNAL
Or: how to make progress.
-
-
16
-
26
-
Unmeasurable Costs and Benefits—JOURNAL
One major reason standard advice about “demonstrating value (or impact)” does not work well for foundational software, including (but not only) open-source library code.
-
-
-