This version of the site is now archived. See the next version at v5.chriskrycho.com.

Doing It Myself

March 21, 2014Filed under tech#software developmentMarkdown source

The End of Surfing

March 26, 2014Filed under tech#design#software developmentMarkdown source

FirebirdSQL and IntelliJ IDEA (etc.)

March 28, 2014Filed under tech#software developmentMarkdown source

Feels Right

April 04, 2014Filed under tech#design#software developmentMarkdown source

Learning QML, Part 1

April 11, 2014Filed under tech#software developmentMarkdown source

A Little Crazy

April 29, 2014Filed under tech#software developmentMarkdown source

The Long Race

May 24, 2014Filed under blog#family#fitness#software developmentMarkdown source

Pushing Into C's Corner Cases

August 12, 2014Filed under tech#software developmentMarkdown source

The Next Generation of Version Control

October 16, 2014 (updated October 20, 2014)Filed under tech#software developmentMarkdown source

A Ridiculous Situation

The craziest include structure I've ever seen.

November 07, 2014Filed under tech#software developmentMarkdown source

Growing Up Together

Or: How I Learned to Stop Worrying and Love JavaScript

November 15, 2014Filed under tech#software developmentMarkdown source

The Joy of Good Tools

Or: How deciding to pay for GitHub made me think about delight.

January 09, 2015Filed under blog#design#joy#software developmentMarkdown source

Unsurprisingly, In Flux

A Quick Look at the State of JS Frameworks in Early 2015

April 08, 2015 (updated August 28, 2015)Filed under tech#angularjs#emberjs#javascript#react#software developmentMarkdown source

Lessons Learned

9 Months With HolyBible.com

April 12, 2015Filed under tech#angularjs#javascript#software developmentMarkdown source

A Modern Python Development Toolchain

May 16, 2015Filed under tech#software developmentMarkdown source

These Are My People

May 17, 2015Filed under blog#joy#software developmentMarkdown source

Python Enums, ctypes.Structures, and DLL exports

Illustrating the Simplest Use of ctypes Structures

May 28, 2015Filed under tech#software developmentMarkdown source

How to Build a Single-Page App API Right

Or: How to get performance, progressive enhancement, and SEO in your Ember/Angular/Backbone/etc. app for free!

June 09, 2015Filed under tech#javascript#software developmentMarkdown source

HTML5 Location, <base>, and SVG

Making Angular and SVG xlink:href work correctly in Firefox.

June 20, 2015 (updated July 02, 2015)Filed under tech#angularjs#javascript#software developmentMarkdown source

If-expressions in Rust

September 12, 2015 (updated September 12, 2015)Filed under tech#programming languages#python#rust#software developmentMarkdown source

Rust and Swift (v)

The value (and challenge) of learning languages in parallel.

September 12, 2015Filed under Tech#programming languages#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (vi)

Collection types and the difference between syntax and semantics.

September 19, 2015Filed under Tech#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (vii)

Pattern matching and the value of expression blocks.

September 19, 2015 (updated September 20, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (viii)

Functions, closures, and an awful lot of Swift syntax.

October 18, 2015 (updated October 19, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

CSS Fallback for OpenType Small Caps

A not-so-great solution which still gets the job done.

October 19, 2015Filed under tech#design#software development#typographyMarkdown source

Rust and Swift (ix)

Sum types (enums) and more on pattern matching

November 09, 2015 (updated June 22, 2019)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (x)

Classes and structs (product types), and reference and value types.

December 06, 2015 (updated December 22, 2015)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Rust and Swift (xi)

Hopes for the next generation of systems programming.

January 10, 2016Filed under Tech#programming-languages#rust#rust-and-swift#software development#swiftMarkdown source

“I Don't Know When I'd Use That”

Learning new languages as a way of stretching your brain.

January 17, 2016Filed under tech#haskell#programming languages#rust#software developmentMarkdown source

Rust and Swift (xii)

Properties: type and instance, stored and computed.

February 27, 2016 (updated June 22, 2019)Filed under Tech#listicles#rust#rust-and-swift#software development#swiftMarkdown source

Static Site Generators and Podcasting

Publishing podcasts the hard way.

February 28, 2016Filed under tech#podcasting#python#rust#software developmentMarkdown source

The Future of JavaScript

ES2015, ES2016, and Hopes for ES2017 and Later

March 02, 2016Filed under Tech#javascript#programming languages#software development#talksMarkdown source

Ulysses, Byword, and “Just Right”

My own killer Markdown app is still unwritten.

March 26, 2016Filed under tech#design#software development#writingMarkdown source

Testing Ember.js Mixins (and Helpers) With a Container

Fixing "Attempting to lookup an injected property on an object without a container" errors in mixin and helper tests.

June 09, 2016 (updated April 20, 2017)Filed under tech#emberjs#javascript#software developmentMarkdown source

Y Combinators, how do they even work?

A commentary on a blog post by Matt Might, or: learning out loud.

June 19, 2016Filed under tech#javascript#programming languages#software developmentMarkdown source

Consistency in User Interfaces

Or, one part of why Git has such a learning curve.

July 15, 2016Filed under tech#git#software developmentMarkdown source

Rust vs. React Native—What?

Tradeoffs, or: Speed and stability are for everyone

October 07, 2016Filed under Tech#f sharp#javascript#rust#software development#swiftMarkdown source

Why Everything is Broken

Because we all forget how broken it is.

November 01, 2016Filed under Tech#software developmentMarkdown source

What is Functional Programming?

(And why should we care about it?)

November 11, 2016 (updated November 14, 2016)Filed under tech#functional programming#javascript#software developmentMarkdown source

Using Rust for ‘Scripting’

With a bonus: cross-compiling from macOS to Windows!

November 14, 2016 (updated November 15, 2016)Filed under Tech#programming languages#rust#software developmentMarkdown source

keyof and Mapped Types In TypeScript 2.1

Making JavaScript dance to an ML-ic tune.

December 17, 2016 (updated December 18, 2016)Filed under tech#javascript#programming languages#software development#typescriptMarkdown source

The Itch

How typed functional programming is what I was looking for all along.

December 19, 2016Filed under tech#functional programming#javascript#rust#software developmentMarkdown source

2016 in Review, Introduction

Or: a ridiculous year summarized!

December 27, 2016Filed under Blog#2016-in-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

2016 in Review, Part 1 of 6

Running headfirst into a wall of pneumonia.

December 27, 2016Filed under Blog#2016-in-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

2016 in Review, Part 2 of 6

So. many. words. I had no idea how many words.

December 28, 2016Filed under Blog#2016-in-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

2016 in Review, Part 3 of 6

Podcasting: Winning Slowly, New Rustacean, and more!

December 29, 2016Filed under Blog#2016-in-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

2016 in Review, Part 4 of 6

Writing software for Olo and for open source.

December 30, 2016Filed under Blog#2016-in-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

2016 in Review, Part 5 of 6

Getting things done in 2016 and beyond.

December 31, 2016Filed under Blog#2016-in-review#family#fitness#podcasting#pomodoro#productivity#software development#writingMarkdown source

2016 in Review, Part 6 of 6

Plans for 2017!

January 01, 2017Filed under Blog#2016-in-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

TypeScript keyof Follow-Up

Autocomplete all the things in all the ways!

January 03, 2017 (updated January 08, 2017)Filed under Tech#javascript#programming languages#software development#typescriptMarkdown source

Better Off Using Exceptions?

Maybe, but only if your language demands it.

February 20, 2017Filed under Tech#fsharp#functional programming#rust#software developmentMarkdown source

Announcing True Myth 1.0

A library for saner programming in JavaScript, with first-class support for TypeScript (and Flow), with Maybe and Result types, and supporting both a functional style and a more traditional method-call style.

November 01, 2017Filed under Tech#functional programming#libraries#programming languages#software development#true myth#typescriptMarkdown source

Becoming a Contributor

The prepared script for my talk at Rust Belt Rust 2017, given October 27, 2017 in Columbus, Ohio.

November 02, 2017Filed under Tech#open source software#rust#software development#talksMarkdown source

2017 in Review: My Goals

Not the year we expected. But a good year nonetheless.

December 24, 2017Filed under blog#2017-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

I Want JSON Decoders

Elm taught me something important about how to handle my APIs.

December 25, 2017Filed under Tech#elm#javascript#software development#typescript#web developmentMarkdown source

2017 in Review: Looking Forward

Some hopes and (tentative, as ever) plans for 2018.

December 26, 2017Filed under blog#2017-review#family#fitness#podcasting#productivity#software development#writingMarkdown source

Types are Small

(Scott Wlaschin is really smart.)

December 29, 2017Filed under Tech#functional programming#software developmentMarkdown source

Good Work Takes Time

(And most of that time is invisible from the outside.)

February 17, 2018Filed under blog#ethics#software development#writingMarkdown source

Career Trajectory

Almost a decade in, and starting to get a handle on what I'm good at and what I care about.

May 02, 2018Filed under blog#career#software development#workMarkdown source

True Myth 1.3.0 and 2.0.0

A couple nice ergonomic updates and some breaking changes for consuming the library.

May 18, 2018Filed under Tech#functional programming#libraries#open source software#software development#true myth#typescript#versioningMarkdown source

Is Agile the Enemy of Good Design?

John Cutler on “Agile,” good design, and the reasons the two often seem at odds.

July 29, 2018Filed under tech#agile#business#design#software developmentMarkdown source

Building Things

A meander on leadership roles and the kinds of contributions we make.

August 06, 2018Filed under tech#leadership#new rustacean#podcasting#software developmentMarkdown source

Stable Libraries

A crazy idea: that sometimes a library might just be… done.

August 14, 2018Filed under tech#javascript#libraries#open source software#software development#true mythMarkdown source

Type-Informed Design

Revisiting our app in TypeScript’s strict mode has me thinking about what we’d do different if we had this input in the first place.

August 30, 2018Filed under Tech#ember.js#functional programming#javascript#software development#types#typescriptMarkdown source

True Myth 2.1.0 Released

A bunch of neat new utility functions on Maybe for arrays and tuples.

September 02, 2018Filed under Tech#functional programming#libraries#monads#open source software#software development#true myth#typescriptMarkdown source

A Real Victory

Today—just shy of two years since I started adding types to our Ember app—it fully type-checks.

September 05, 2018Filed under Tech#ember.js#flow#javascript#software development#typescriptMarkdown source

Scales of Feedback Time in Software Development

Orders of magnitude: build-time errors, automated tests, manual test, CI, staging, production.

October 22, 2018 (updated October 22, 2018)Filed under Tech#programming languages#rust#software development#testingMarkdown source

Internal and External Parameter Names in JavaScript and TypeScript

A handy design pattern stolen from Objective-C and Swift for designing nicely usable APIs.

November 26, 2018Filed under tech#javascript#software development#swift#typescriptMarkdown source

JavaScript is C

Maintaining invariants the most painful way possible.

December 20, 2018Filed under Tech#c#elm#javascript#rust#software development#typescriptMarkdown source

My Current Setup

Apps I use to get things done.

January 19, 2019Filed under Tech#apps#pomodoro#productivity#reading#software development#writingMarkdown source

Seeing Things Through

Getting a handle on actually finishing things I care about.

March 02, 2019Filed under blog#productivity#running#software development#writingMarkdown source

Being an Amateur Again

Starting up on iOS and macOS development is a strange feeling!

April 05, 2019Filed under blog#learning#software developmentMarkdown source

Announcing rewrite

An absurdly ambitious project: building a genuinely great research writing app.

July 06, 2019Filed under Tech#note-taking#rewrite#software developmentMarkdown source

Starting

I actually have no idea how to do this!

July 16, 2019Filed under Blog#rewrite#software developmentMarkdown source

rewrite Dev Journal: How I Started

The smallest possible set of tasks.

September 04, 2019Filed under Tech#productivity#rewrite#rewrite dev journal#software developmentMarkdown source

User Interfaces are API Boundaries

Applying domain-driven design ideas to UI implementation.

September 12, 2019Filed under Tech#domain-driven design#software architecture#software development#uiMarkdown source

rewrite Dev Journal: How Progress Doesn’t Feel

Learning in a new ecosystem doesn’t always feel like progress—but it is.

October 26, 2019Filed under Tech#productivity#rewrite#rewrite dev journal#software developmentMarkdown source

Apple, Your Developer Documentation is… Missing

If you want developers to love your platform, then you need to take this seriously. If it isn’t documented, it isn’t done.

October 28, 2019 (updated October 28, 2019)Filed under Tech#ios#macos#software development#swiftMarkdown source

Test the Interface

An essential principle for effective software testing.

November 13, 2019Filed under Tech#software development#testingMarkdown source