Do the Hard Things First

A concept that I admire is ‘Doing the Hard Thing First’ via Ben Orenstein. Ben described on the Art of Product Podcast Episode 50. Here’s my summary: Choose the hard part of the problem, the part you’re unsure about, the part that success depends on, and solve that first! ...

January 25, 2021

My Annual Review 2020

Here’s my annual professional review covering 2020. ...

December 30, 2020

Exercism Raindrops in Python

I’ve been learning a bit of Python this Fall to facilitate conversations with a mentee. In this post, I’m going to share the first Python function I’ve ever written, a solution to the Exercism challenge ‘Raindrops’. ...

December 6, 2020

Programming Resources for Beginners

There is a glut of programming information online. You can’t read it all, and you shouldn’t, because much of it is outdated, wrong, or irrelevant to you. So, what is the signal in this noise? I recommend aggregators, blogs, pair programming. And I offer a gentle recommendation against tutorials. ...

December 5, 2020

My Annotated Vim Configuration File

I love Vim. Folks who’ve programmed with me, or attended a Vim Meetup when I was an organizer, can attest. When I was learning to code, getting fast at Vim changed everything for me. After almost a decade using this editor, here are my personal configurations. ...

November 26, 2020

Essays on Programming I Think About a Lot

Programming is a new and abstract field, and so we place great emphasis on ideas. When I find one that sticks with me, I end up sharing it again and again. These are some of my favorites. ...

October 29, 2020

My Development Roadmap

I’ve been working on a development roadmap for my projects, and wanted to share my process. Consider this my recipe to turn an idea into software. ...

October 20, 2020

You Have New Mail

Here’s a familiar scenario: you open a new terminal, and before the prompt appears, you see the following. You have new mail. What’s going on here? ...

October 16, 2020

Duplicate your Development Branch for QA

I’m working on a team where we keep a clone of the development branch (the main place where work is done), used to deploy to a QA environment. The benefits of this branching technique are: clone is isolated from work It’s easy to tell what was deployed to QA– clone is the source of truth ...

October 9, 2020

How I Clean Up JavaScript Dependencies

Unused dependencies are bad: they increase the size of your project, slow down your processes, require upgrades, and send incorrect messages to fellow developers about what’s important. Make your project better by periodically auditing your dependencies, and removing those that are unused. ...

August 3, 2020