Butter Notes
Explore & Practice Music.

Catfish Programmers

The Lonesome Bottom Feeder

A catfish, due to their negative buoyancy, is largely considered a bottom feeder, a detritivore. In reality, they come in different forms, but they are all opportunistic eaters.

A catfish programmer is, more often than not, a contractor. The last desperate phone number a company calls when the technical debt gets too deep to happen, when that pursuit of the perfect "somebody" has descended into "get close enough, just get this done!"

A catfish programmer sees the world differently than others, and generally shies away from the cliches found in programming circles and articles.

Impostor Syndrome?

Work needs to get done. The catfish's work demands it pushes its head down and grinds through the mud.

Learn a New Code Base and Be Productive in 2 months?

The code needs to be fixed in 2 days, new features have to be added next week, the system needs to be rebuilt in 1 month. Present the critical bug and the catfish figures out the rest.

Pin Pong and free food?





The catfish programmer doesn't learn by riding the coat-tails of others. The catfish programmer learns by looking at a pile of often poorly-written code. The lessons aren't what to do, but what not to do.

The catfish programmer regularly sees the code of legends. The code that makes it into The Daily WTF[1] has no peer to many things a catfish programmer sees on an hourly basis.

The catfish programmer observes the cost of not fixing mistakes as they come up. The catfish finds things that don't make sense, and removes those things from it's arsenal:

Metaprogramming is witchcraft.

Not the fun "add two eyes of newt" style of witchcraft, but the summoning of the demons from the 7th layer of hell and release a Stephen King blood-fest on the planet.

Why are the deletes so slow on my database?

The ORM added delete cascade to the 10 denormalized tables it created.

Why is my system slow?

$ grep -R "map" *

reduce(filter even? (apply (* 3) (map inc (i for i in (filter even? collection)))))

A catfish programmer defaults to clarity. A route is a route, and is written out by hand. A computer can remove a lot of redundancy, but a computer can't think. A human can extend, add, subtract, and finally, reduce to the elements. A catfish programmer is a master of the basics. The code a catfish creates is no different than the code one would find in a freshman's introductory class.

The best mentor is the failed code of others, and those failures, more often than not, result in refusing the write code when it matters most. A catfish vicariously learns that easy is never easy when it matters.

The Life and Workflow

A catfish programmer is often a faceless wall of text, eschewing meetings and producing output with little guidance.

Taking breaks to play games, chat around coffee, or taking a few minutes to walk around the office is a non-existent element of life. An 8 hour work day is exactly that: 8 hours of pure work. Some days are 7 hours, some 9 or 10, but every minute counts until the catfish's eyes glaze over and its brain screams "no more."

There is no seeking advice outside of clarifying intent. The catfish is the expert in all things, even when it is not. Error messages become the intellectual conversation with the old wise programmer on the hill.

It is a lonely existence, but it is a productive existence. A catfish is privy to the toxic "social media" landscape of programming, but a catfish chooses to not be directly affected by the toxicity, nor does it attempt to move the needle one way or the other. Good and bad code comes from the sober, the drug-addicted, the men, the women, the MIT all-star, the high school dropout, the senior with 12 years experience, and the fresh grad.

In the catfish world, code speaks, money changes hands, and friendships are evanescent, blind to color, age, and gender. The catfish doesn't care.

The Invasive Species

The lonesome catfish lives in an cyclic and symbiotic ecology, sharing the world with the invasive catfish.

The bottom-feeder doesn't know much about the invasive catfish, only that without the piles of detritus the invader produces, there would be less work. There is no sense of who the person is, what that person was like, or how or why that person managed to last long enough to create, lead, and ultimately spoil the code they were working on. The bottom-feeder can only guess the invader had a need, a magic, that made their presence addicting and appreciated.

In some ways, the bottom-feeder appreciates the invader, but on other times, knowing that the contract is going to end in short time, and the hunt for the next contract may be tomorrow, the bottom-feeder can only be silently mystified at how the invader found a job in the first place, much less kept it. The bottom-feeder only knows it couldn't be the invader, for their tastes are very different indeed.

[1] The Daily WTF


Hacker News

Need a Contractor?

If you would like to try me out for a contract, feel free to send me an email at [email protected]

My main tech is Python, Clojure, PostgreSQL, and PL/pgSQL, using Linux. I've worked with many other languages and database stuff. To truly "catfish" as described here, gotta be able to move around the stack and dive into whatever situation pops up.

Enjoy this article?

please subscribe to my Newsletter

You can also follow me on Twitter and Facebook