Helping Geeks Produce for Over 40 Years.

My mission is to help people learn how to embrace change and harvest its value. Here you will find hundreds of free articles and videos covering software topics ranging from highly technical to broadly philosophical.

If you want to learn how to create lasting change in your workplace, click the button below to book my solo or group Coaching Sessions today!

📝 Recent Posts

Detail: Series Intro

Detail: The thing that strikes me over and over again, in my own work style, in my Friday group’s analytics, in Ron’s long-running Kotlin and short-running Gilded Rose series, is how much attention high-skill geeks pay to some of the smallest details in the code. An example. I was doing Gilded Rose the other day, first time in years, and

Joy Project: FGNO Plotter

Joy project: Today’s a comparatively light work day, so I’m gonna lay out what I’m actually trying to do with this project. The source, btw, is at: GitHub – GeePawHill/fgno-plotter Playtime project for the fgno meetup. Contribute to GeePawHill/fgno-plotter development by creating an account on GitHub. Feel free to poke around. There are a bunch of simultaneous missions going on

TDD Pro-Tip: Against Automated Macrotests

TDD Pro-Tip: I advocate against automated macro-tests — those whose base is entire running programs –, as their cost is high and their benefit is doubtful. I very rarely write them. There is a bewildering variety of terminology out there around what I’m calling macro-tests, so let’s poke around a little. The central idea of "macro-test" is that we write

Some TDD History

I spoze the historic and ongoing inability/unwillingness of the software trade to grasp and adopt test-driven development (TDD) is one of the most frustrating & demoralizing events of my forty-two years as a professional geek. I believe there are several related factors in play, ranging in abstraction level from pressures of global ieconmics to mistakes in local human interaction. Studying

On Over-Coding

Let’s talk for a minute about "over-coding". Over-coding, when you’re a TDD’ist, is writing more code than you (intended to) have test to cover. But I will offer a few thoughts on this to non TDD’ers and TDD’ers alike. Many people, pro-TDD and con- both, seem to think of TDD as the name for a collection or rigorous mechanical rules.

Robot Worlds E05: A Making UI!

This entry is part 5 of 5 in the series Robot Worlds

A Making UI We’ve got a very crude skeleton running, let’s get it on the screen, inside a "making app"! If you want to follow along, the repo is at https://github.com/GeePawHill/robot-worlds. Transcript and captions coming soon . . .

Ten I-Statements About Change

This entry is part 1 of 5 in the series Leading Technical Change

Here’s ten I-Statements about change, in the geek trades, and beyond. My hope is that it will give you a richer sense of where I’m coming from in my blogs, talks, videos, and courses. Before we begin, though these statements are about the geek trades, I am actually far more concerned with change in the world. We can change this.

Trade Collapse Begins?

I’ve oft mentioned how the twin cost-revolutions in geekery warped & nearly destroyed our trade. Then wondered if we’ll get to a place where it’s no longer profitable for most companies to write bad software poorly. This morning I wonder if I’m seeing the beginning of it. I don’t have any facts & figures for you. But it feels like

Robot Worlds E04: Yes, Commander!

This entry is part 4 of 5 in the series Robot Worlds

Robot Worlds: End-to-End-ish Time to flesh out at least one of those ends we got from last time! If you want to follow along, the repo is at https://github.com/GeePawHill/robot-worlds. Transcript and captions coming soon . . .

Psst...

Self-paced online course coming soon. 

Sign up to get an early access discount.

🎥 Latest Videos

Optimizing A Program (And Programming) | Video

A Simple Optimization Problem Hey, it’s GeePaw! Got a little optimization issue for you. Let’s look at some code. It’s easy stuff, so I’ve just used pseudocode here. Take a look. The program starts by entering a loop that runs 50 times. Inside that loop, it calls the Read method. It then enters another nested loop, this time for 100

Five Underplayed Premises Of TDD | Video

This entry is part [part not set] of 9 in the series Underplayed Premises

Five Underplayed Premises Of Test-Driven Development (Transcript) Hey, it’s GeePaw! I’m here to tell you today about five underplayed premises of Test-Driven Development. These premises form the kind of fundament under which almost all TDD proceeds. And when I say that I’m a TDDer, I almost always mean I am operating inside the little ring formed by these five test-driven

One Page Intro To Microtests | Video

A microtest has the following properties: It is short, typically under a dozen lines of code. It is *always* automated. It does not test the object inside the running app, but instead in a purpose-built testing application. It invokes only a tiny portion of the code, most usually a single branch of a single function. It never *reaches* inside an

Scroll to Top