Avoid Git First Drafts
Here are pages rife with debate on using git pull vs. git pull --rebase. I’ve decided for myself there are times for both, that is, there are times for merge commits and not.
With 14+ years in the game, I help frontend teams ship incrementally, with test coverage confidence, without rewrites. Debug any app, existing or legacy. Collaborate on distributed teams via docs, code review, and mentorship.
Here are pages rife with debate on using git pull vs. git pull --rebase. I’ve decided for myself there are times for both, that is, there are times for merge commits and not.
This is an adaptation of an internal blog post I made for Gravity engineers. To preface, Gravity likes to use 2 very predictable patterns throughout its Scala codebase, which is very important for a TIMTOWTDI language like Scala: the for-comprehension and ValidationNEL.
Here’s a collection of the high-level concepts I’ve adopted over the years. I think they add human value—to customers and teammates alike—and GTD value. All while keeping me happy with my career in the otherwise often bitter IT ecosystem.
A collection of 9 usability tips from mobile design, yet they benefit desktop users too. 2 birds, 1 stone.
I want to discuss why programming and coding are not the same, and why I can no longer support the Learn to Code movement. I can no longer tell my friends to learn coding. Although I’m passionate about it, it’s too arcane and insular for mainstream practice.
To those overwhelmed by all the programming languages and tools you can learn, changing daily, I’d like to offer some peace of mind. In my previous article, I questioned the rampant, disconnected proliferation of code. I don’t know why it is stuck the way it is.
As a career programmer, I pursue code mastery. Economics at scale however stamps out the craftsman. How do I stay ahead?
My introduction to Haskell has shown me the promise of types, enabling type-driven development. The type system self-documents better than any docstring or variable name ever did. It even guides your thinking and program architecture.
On the web, your users are no longer a secondary engineering concern. A thick-client framework, like Ember.js, makes UX 1st class.
I'm disappointed to find tech interviews are still asking LeetCode questions. Companies haven't listened to old advice on competitive hiring like DHH's "Hiring programmers with a take-home test" or Matasano Security's "the Hiring Post".
I suffer from a particular form of procrastination. My problem is not that I instead watch Netflix, unable to get off the couch. I will do productive work. It just won't be the assigned task. I have some tips to fight this procrastination.
I also suffer from a less common form of procrastination than my previous article. I would not attempt something at all if I knew I couldn't do it perfectly. On a hobby of mine, I discovered a decent workaround.
AI-assisted coding has fit surprisingly well with the terminal and text-first tools I spent years sharpening. Agent orchestration may be the industry productivity boost I long wanted. While engineering discipline still matters, I feel wistful for hands-on coding.
I switched from Git to Jujutsu `jj` late last year. It interops with Git, so collaborators haven't noticed. I was hardcore into the Git CLI for 15 years. I haven't looked back. `jj` made it easier to reorder, squash, rebase, and stack AI-assisted changes for review for me and my team.