Know Thy Stack, or: Don’t be a Stack Hopper

A stack hopping anime dev

Just like there’s the distro hopper, there’s a type of developer called the stack hopper. This post is about why you should settle for a stack asap and never look back.

Table of Contents

  1. What is a stack hopper?
  2. What does the average stack hopper look like?
  3. A list for all the stack hoppers out there
  4. Final words

What is a stack hopper?

There was a time in my early 20s when I kept switching between different Linux distributions on a biweekly basis. In other words, I was a distro hopper.

What’s that again, you might ask. Well, according to the trustworthy Urban Dictionary, a distro hopper is someone who…

…keeps switching from one Linux distribution to another, not with the intention to just test a certain Linux distribution, but with the illusion to find the perfect Linux distribution that suits all his/her needs and to install that as his/her main operating system. Of course, that distro does not exist.

Needless to say, being a distro hopper wasn’t the most productive chapter of my life. At some point, I decided to stick with Arch Linux and haven’t looked back.

A stack hopper is basically the same as a distro hopper except that the former is not primarily into switching between Linux distros but software frameworks and development tools.

Stack hoppers keep replacing parts of their stack in search of an elusive “ultimate best cutting-edge stack” instead of working on real problems with the tools they already know.

What does the average stack hopper look like?

In my experience, the typical stack hopper is a junior to mid-level dev. At this stage of their careers, most devs have a tendency to get carried away by the hype surrounding new frameworks.

There seems to be an underlying fear of becoming irrelevant if one doesn’t immediately hop on the latest hype train. And from a certain perspective, that’s completely understandable.

It’s just very easy to become overwhelmed and unsure of which tech to use in an age when 7 or so React rivals get released every day.

A few weeks ago, I was talking to a younger developer friend of mine about a client project I had just finished.

“What stack did you use?”, he asked. “Django all the way”, I replied. “But Django’s old!”, he said. “Might be true”, I countered, “but so is your mom.”

Just kidding, I didn’t say that.

What I actually said was that Django’s age doesn’t matter to me as long as it helps me get the job done (which it did superbly, by the way). At the end of the day, that’s all that counts.

Virtually no end user and/or client cares about what tools you use as long as everything works as expected.

The same goes for any product, really… Or when were you last interested in the exact workings of your car’s engine? As long as it gets you from A to B, you probably don’t care.

A list for all the stack hoppers out there

So, what am I actually trying to say with all of the above? Before I get carried away, let me make a list of things left to say:

  1. Stack-hopping (i.e. unwarranted changes to your stack) is detrimental because it distracts you from using your existing stack of skills & tools to solve real-world problems.
  2. Stack-hopping for the purpose of getting a job or project is a bad idea. Neither you nor your prospective employer or client will be happy with the poor outcomes caused by working with unfamiliar technologies.
  3. A bad carpenter always blames his tools. If in doubt, stick to what you already know.
  4. As a freelancer, it’s usually better to walk away from a project opportunity than having to relearn a whole new set of tools.
  5. Don’t evaluate technologies based on hype, but on whether you actually need them (i.e. your current stack absolutely can’t handle a required functionality).
  6. From the developer’s perspective, tech agnosticism is a lie (albeit, a sweet lie) and the market proves it… Or have you ever seen a company looking for a tech-agnostic developer? In reality, they’re looking for very specific things such as a Django developer with experience in ML frameworks X, Y, and Z.
  7. As a business, tech agnosticism sounds like a great idea in the beginning… until you again find out that it’s a lie.
  8. Focus on the base technologies. In the case of web development, base technologies include a server-side programming language (Python, JS, or PHP) and the client-side triad (HTML, JS, and CSS).
  9. The “older” a framework, the more mature and stable its codebase tends to become–especially if it’s as popular and highly maintained as Django ❤️

Final words

Everything said in this post boils down to the following: Stop the stack-hopping. Chances are you already have a stack that is more than capable of solving many business problems out there.

Sure, sometimes it’s inevitable to embrace a new framework, programming language, database, or whatever else. Usually, though, the best technology is the one you already know.

In a nutshell, the trick to succeed as a developer is to choose a stack that looks to be relevant in your chosen field for the next one and a half decades, get really good at it and never look back. By the time said stack has become obsolete, most people will likely have grown out of their developer roles anyways.


Leave a comment

Your email address will not be published. Required fields are marked *