The Catfish Programmer
The catfish programmer takes on the jobs nobody wants: updating legacy code, cleaning backlogs, SSHing to production. While others chase shiny frameworks, we grind through the mud doing what needs to be done. Find your niche in unglamorous work, become irreplaceable.
The Catfish Programmer
Work needs to get done. The catfish's work demands it pushes its head down and grinds through the mud.
Years ago (2017, to be exact), I found a blog post about "The Catfish Programmer" on Hacker News. It's no longer available, except on the Wayback Machine here. It's a satirical take on the life of a developer—almost always a consultant—doing what needs to be done to get the job done and get shit moving.
No time to learn that new fancy framework; the legacy code has a bug that needs fixing right now. No time for a big refactor to fix all the legacy code; there's an issue in production that needs immediate attention. It's time to SSH to production and manually intervene. We know it's not clean, we know it's not "the way," but it needs to be done right now to get the service working again.
I've always felt like this catfish programmer, taking on the tickets and jobs that nobody wants to do.
Update all the lambda functions from Node 16 to Node 20? Sure, I'll tackle that. I'll go through all our AWS accounts one by one and update them all. I don't care that it takes me six months—we won't risk doing it all at once. Instead, I'll handle a couple per week to avoid impacting customers.
Going through all 1,000 Jira tickets in the backlog? That's my jam. Close everything older than two years, then tackle the remaining tickets 100 per week, asking for updates or "Is this still relevant?" and pushing for replies.
Educating developers on how to spend fewer resources on our Jenkins cluster so we save on our AWS bill? Sure, I'll reach out to the top 10, schedule meetings to educate them, work together to optimize their builds. Once that's done, I'll reach out to the next 10, and the next 10, until we've saved 25%.
Updating the disaster recovery procedure? Going through security questionnaires? Writing documentation? All the stuff that no one likes to do but needs to get done—that's what I live for.
Find your niche, get good at it, become irreplaceable. If we fire this person, who's going to take care of all this catfish work?
A catfish programmer sees the world differently than others and generally shies away from the clichés found in programming circles and articles.
Push that update out: move fast and break things. No need for 20 meetings first to gain the courage that this fix really, really won't break anything.
Use stupid bash scripts: why pay some provider $10/month/user to verify that a git commit has a ticket number assigned to it? Use a simple git commit hook and enforce it.
Embrace the mud. People pay to get mud on their face at a spa—you get it for free!