ecabigting
← Back to Blog

Pumping for a Fix

by Eric Thomas D. Cabigting
Pumping for a Fix
[ ai generated ]

I started my career as a full-time junior PHP developer at a company nobody would recognize. The office was grey. The work was greyer. I wrote CRUD endpoints for internal tools that maybe twelve people would ever use. Every morning I sat down at my desk and felt the same flat nothing. Not burnout exactly. Just the slow realization that nothing I built that day would matter, and nothing I built tomorrow would either.

One afternoon, bored past the point of usefulness, I installed a different code editor on a whim. I picked a theme. I changed the font. When I opened a PHP file I had written that morning, something about the way my own code looked now, the functions in one color and the strings in another, the keywords bolded, felt deeply satisfying. I wrote one more function just to see it rendered. Then another. That tiny aesthetic upgrade became the engine that pulled me out of the slump.

I did not have the language for it back then. But I had accidentally engineered a dopamine hit into my workflow. And it worked.

That was over fifteen years ago. I have since moved through C#, Node.js, TypeScript, Python, and now a polyglot mix at an AI startup. The tech stack changed. The principle did not. I still rely on small, deliberate hits of satisfaction to keep myself moving through hard work. I call it pumping for a fix. And once you see it, you notice it everywhere.

Take CI/CD pipelines. For years I hated them. YAML is a configuration format that feels designed to punish you. Pipelines are slow at every company I have worked at. They break in ways that make no sense. And the person who understands them is always someone unreachable, an ops lead who responds to Slack once a week from a farm somewhere.

But I cannot lie. Watching each stage of a GitHub Actions pipeline animate from pending to passing gives me a hit. That little green checkmark next to "build" and "test" and "deploy" is a reward. It says you did something right, and here is proof, animated.

When a stage fails, I do not just see an error. I see a challenge. The red X is a mini-boss fight. Fixing it feels better than it passing the first time.

This is not just a personal quirk. Pipeline animations turned infrastructure work into a game for me. I started setting up CI/CD for my personal projects just to watch the stages light up. In the process, I accidentally learned Docker, networking, and configuration management. Not because I planned to. Because the feedback loop made me want to engage.

Testing frameworks lean into the same psychology, and they might be even better at it. Every test runner I have used ships with strangely satisfying animations. Jest prints a clean grid of green dots. Pytest fills your terminal with warm passing indicators. Even the built-in test explorer in VS Code gives you that satisfying row of green checkmarks, and the even more satisfying moment when a red one flips green.

I know everyone says they hate writing tests. I said it too. But the visual feedback from a test suite changes the experience entirely. Seeing a hundred green dots scroll past is a small celebration. Seeing one red dot in the middle of all that green is a puzzle you actually want to solve. Getting to one hundred percent code coverage is functionally useless past a certain point, but I would be lying if I said the badge did not feel incredible.

The third system I rely on is the simplest: task trackers. Everyone wants to build a to-do list app. Few people talk about how satisfying it is to actually use one.

I mostly keep a running markdown file with checkboxes. Sometimes I use Linear or GitHub Projects. The tool does not really matter. What matters is the act of checking something off. That little moment of completion, of forward motion, of one less thing hanging over you. It is a tiny dopamine hit that costs nothing and compounds every day.

Here is what strikes me after nearly two decades in this field. We have entire methodologies for designing good software. Domain-driven development. Test-driven development. Whatever-driven development is trending this month.

But we almost never design for the experience of the person writing the code. We treat developer tools as utilitarian vehicles and then wonder why engineers burn out building integration services for data analytics pipelines that hook into a CRM and now have to have AI stuffed in there somewhere. That kind of work makes anyone want to become a potato farmer.

But someone has to do the boring work. And if you are going to do it, you might as well engineer your environment to make it feel good. Change the font in your editor. Install a prettier terminal prompt. Set up a CI badge on your repo. Start a task list and actually check things off. These are not cosmetic changes. They are motivation infrastructure.

The monkey brain wants a treat. Give it one. Do it on purpose. Pump for the fix, and the code will follow.

Disclaimer: All content reflects my personal views only and does not represent the positions, strategies, or opinions of any entity I am or have been associated with.

Continue Reading.