Remix.run Logo
Worst of breed software(worstofbreed.net)
98 points by facundo_olano 12 hours ago | 40 comments
tombert 9 hours ago | parent | next [-]

During my exit interview at a BigCo, when they asked why I was leaving I said "I just don't think it was a very good fit", which I believe is the most polite way of saying "I just didn't like the job".

The manager doing the exit interview started getting defensive and blaming my "attitude problems" [1], and eventually I started explaining that it felt like the entirety of the culture at BigCo, particularly amongst management but even with engineers, came down to "try and justify your existence in the company". Instead of doing things ways that are easy and straightforward, you instead were incentivized to make your code complicated so you can brag about how complicated it is, and then drop constant references to your management about how hard what you're doing is.

The manager didn't like this response, and got more defensive, we ended up going back and forth, and eventually the interview ended and despite taking a pretty considerable paycut I was ok with my decision.

I didn't know the term "Resume Driven Development" until after I left, but that was a pretty accurate description.

[1] Not completely wrong, but that doesn't absolve them of their sins.

arwhatever 9 hours ago | parent [-]

Yeah I've worked at enough places that could generate vastly more software feature ideas than they could ever implement, to find the "justify your own existence"-type places utterly insufferable. And I absolutely refuse to suffer them and everyone else should too.

arwhatever 9 hours ago | parent | next [-]

"How about YOU justify my existence BEFORE making the decision to hire me in the first place?" - I've never quite said but have come close.

(Sorry, you struck a nerve with your BigCo depiction. :-)

tombert 9 hours ago | parent [-]

Genuinely not the guy's real name, but let's say that this manager's name was "Steven".

When I said that the job boiled down to a lot of people trying to justify their existence, Steven said "do you really think that people are doing things to justify their existence in the company, Tom? Really?"

I responded back with "Yes. I think some managers, STEVEN, really like to schedule meetings to make it look like they're doing important work, STEVEN, despite the fact that most of these meetings are useless and could have been handled over slack STEVEN. I don't want to name names STEVEN, but I have observed it on the management side. I suppose you'll need to figure out who I am talking about STEVEN".

This was several years ago so I'm paraphrasing, but barely. I really disliked that job and when he wouldn't just let me answer with "it wasn't a good fit" I got (maybe irrationally) angry and it ended up being an excuse to air all my grievances. I could tell that he was getting upset when I started basically resorting to thinly-veiled insults. Not my proudest moment, to be 100% honest, but I also can't really say that I'm sorry either because I meant everything I said.

twosdai 9 hours ago | parent [-]

As an outsider of Big co's. I always felt that if youre not on one of the 10-20 awesome product teams. Eg, Google maps, aws lambda, windows core os. Something along those lines. It seems like a territory for justification Olympics.

Just my view as a dev who's largest co was like 500 people. ~100 engineers.

nunez 3 hours ago | parent [-]

Couldn't be more on the nose.

Big companies are significantly better to work in when you're either (a) in sales with a clear path to hitting/exceeding quota, (b) a strategic revenue generator, or (c) a super hot and extremely well funded corporate initiative (basically all AI projects right now).

The money tap is always on, you get all the cool toys, travel perks are great, and you get to work on amazing stuff without as much red tape.

tombert 2 hours ago | parent | next [-]

Yeah, I was working on more of an infra thing (involving caching and indexing). Certainly important given the size of the company, but not something that gets lots of hype or sexiness.

There were occasional bits of ambition to occasionally work on interesting stuff, but it was mostly a “keep the lights on and then figure out how to make yourself seem important”.

One of my biggest pet peeves is when engineers say that we can’t do something because we would have to learn something new. I got into several arguments because I wanted to rewrite some buggy mutex-heavy code (that kept getting me paged in the middle of the night) with ZeroMQ, and people acted like learning it was some insurmountable challenge. My response would usually be something to the effect of “I’m sorry, I was under the impression that we were engineers, and that we had the ability to learn new things”.

As I said, complaints about my attitude weren’t completely unfounded, but it’s just immensely frustrating for people using their unwillingness to learn new things as an excuse to keep some code in a broken state.

8n4vidtmkvmk an hour ago | parent | prev [-]

I think i found something even better. I'm just adjacent to the big money maker. We keep folks on the page a little longer but don't need to concern ourselves with revenue and ads. Just make it good so folks stick around but important enough that we won't get axed.

tombert 9 hours ago | parent | prev [-]

I've never really figured out a test to tell if the company is going to fall into that category without actually working at the company.

It's not as simple as "BigCo" vs startup; I've worked at startups where layoffs were frequent enough that it devolved into existence justification, and I've worked at BigCos that actually did give a fair bit of leeway in how you do things (within some degree of reason).

The closest thing to a "rule" that I've come to is if they use a less-mainstream language; if they're routinely using Haskell or something, they're probably a bit more onboard with experimentation, but that's still not a hard and fast rule.

sgarland 10 hours ago | parent | prev | next [-]

I am personally offended by [0]. Maybe you should spend some time doing proper data modeling when you design your app, and maybe adding a new column should be a painful exercise.

Haphazard schema is the quickest way to develop terrible performance, loss of referential integrity, and insane queries. Well, outside of sticking everything into a JSON column.

0: https://worstofbreed.net/patterns/schema-bureaucracy/

esseph 8 hours ago | parent [-]

stands up I'll admit one of my sins

I have occasionally stuffed json into proprietary software data fields to get that data accessible/usable by another system.

(High performance not required)

neilv 8 hours ago | parent | next [-]

That could be a virtue.

And some closed proprietary software does things like adds a few additional fields for pragmatic end user extensibility like this.

The practice predates JSON, but sometimes your bespoke string or ID or whatever in field "Custom 1" is all compromise you need to make things work well.

netbioserror 8 hours ago | parent | prev [-]

I've used JSON as an additional options input to a native-compiled CLI program's various commands because 1) the schema of each option is radically different, 2) they need to be passed most of the way down the call stack easily for each stage of our calculation and report generation.

It works fantastically well, and don't let anyone tell you that you MUST bloat the CLI interface of your program with every possible dial or lever it contains. We should all be cogent of the fact that, in this very young and rapidly evolving profession, textbook and real-world best practice often do not overlap, and are converging and diverging all the time.

tormeh 10 hours ago | parent | prev | next [-]

Templated YAML - and all YAML eventually becomes templated - is so bad it makes me yearn for XML. We had it bad and we made it worse.

marcosdumay 10 hours ago | parent [-]

I dunno why nobody used things like external includes in XML, but the worst parts of YAML were there too. (But at least, I think XML doesn't have macro expansions, so that's a win.)

mpyne 9 hours ago | parent | next [-]

> I dunno why nobody used things like external includes in XML

In practice they led to fairly severe security vulnerabilities. "XXE" used to be an OWASP Web Top 10 issue, and the reason it dropped off the list was because XML mostly went away, not because it stopped being a thing.

> But at least, I think XML doesn't have macro expansions, so that's a win.

XML, like HTML, has entities that can be expanded. Unlike HTML you can define them in XML and this led to the "Billion laughs attack": https://en.wikipedia.org/wiki/Billion_laughs_attack

marcosdumay 6 hours ago | parent [-]

> In practice they led to fairly severe security vulnerabilities.

Well, that seems to not matter for the people writing YAML.

> XML, like HTML, has entities that can be expanded.

Lol! Of course I'd be wrong about that.

Expecting XML not to have a well known security vulnerability is a losing proposition.

actionfromafar 9 hours ago | parent | prev [-]

At least in XML you could easily see where a tag ended and a single whitespace too much or too little wasn't sure to make your day worse. (Though, sometimes it did.)

vikboyechko 11 hours ago | parent | prev | next [-]

YAML spaces and apostrophes inside of single quote strings keeps me at night.

esseph 8 hours ago | parent [-]

jinja2 has given me ptsd

nunez 4 hours ago | parent | prev | next [-]

I felt some of these personally.

> "We are doing DevOps now! The developers write Dockerfiles and the Ops team operates Jenkins, which cannot build the Dockerfiles."

I have DEFINITELY seen this done in production back when containers were en vogue! This and Dockerfiles passed around by email.

SkyeCA 10 hours ago | parent | prev | next [-]

SAFE requires more than being burnt with fire. If SAFE were an SCP it would be apollyon class.

arwhatever 9 hours ago | parent | prev | next [-]

Hoo boy some of these (anti) patterns really resonate.

I want to name names - I could cross-reference some of these with specific company names that you've heard of, but I shan't.

I'll definitely keep this website in my hip pocket to privately throw at teams going forward, as needed.

HendrikHensen 11 hours ago | parent | prev | next [-]

Just last week at my job we apparently converged on a Kubernetes deployment to host a static site, due to company security policies related to publicly exposing buckets to the internet... I died a little inside that day.

nunez 2 hours ago | parent | next [-]

I mean it's a legit use case. Kubernetes is awesome for large scale web hosting. Much simpler than writing huge NGINX configs.

Devasta 10 hours ago | parent | prev [-]

Thats honestly the reason why most stuff is a web app these days. For desktop software you need to deal with IT security losers who recoil in horror at the idea of computers running software, and god help you if you need a port opened.

Far better to shove everything through port 443 and redownload the software over and over until the end of time.

marcosdumay 10 hours ago | parent | next [-]

> For desktop software you need to deal with IT security losers who recoil in horror at the idea of computers running software

Windows will invariably tell them your software is not secure and block it.

It doesn't matter what the software does, all that matters is that only your company runs it, so there isn't a million people out there with a copy.

lifetimerubyist 10 hours ago | parent | prev [-]

> you need to deal with IT security losers who recoil in horror at the idea of computers running software

Oh boy I have some bad news for thise IT security losers

neilv 10 hours ago | parent | prev | next [-]

Thank you. I've been doing distributed systems for years, when and to the degree appropriate, but this Worst Of Breed career guidance resource should help me position my skills, for current hiring priorities, to maximize my impact, towards enterprise objectives, going forward.

But seriously, it's not only cynical careerists who are pumping resume keywords like it's a game everyone is playing, and everyone keeps quiet about RDD, etc., because nobody wants to spoil it for everyone. It's also people who are really into one of the keywords, and think it's the most important thing, or the only important thing.

-- Past Case Study #1 --

Context: interview with systems research PhD brand-new founders, after my cold outreach pitch as a "startup generalist" (I think I said it in the headline) who would complement the scientists.

Me: (paraphrased) You're the experts in novel distributed systems research niche X, and I can't help you with that. What I can help with is all the other early startup work you'll need done, like bespoke infrastructure that works with X, Web consoles, mobile apps, some systems programming, product definition, project management, helping academic researchers and industry engineers work together, whatever needs to be done.

PhD founder: (this might be an exact quote) We need an expert, not a generalist.

-- Past Case Study #2 --

Context: interview with a mid-stage startup's CTO, who was hired for distributed systems expertise.

Me: I suspect that a Postgres server on a modest cloud server can handle the entire planet's activity of X. And (since the company's recruiting materials emphasized bias for action, and rapid iteration) we could very quickly build and validate that empirically with simulated transaction load. Of course, in production, we'd set up Postgres with distributed failover, etc.

CTO: I going to need a severalth one-on-one interview with you, an offer is imminent, but it's unclear whether you'll ever be allowed to talk with anyone else on the team, who you pointedly have still not yet met.

Dwedit 10 hours ago | parent | prev | next [-]

Still hard to beat Syncronys SoftRAM.

gjsman-1000 10 hours ago | parent | prev | next [-]

I have personally seen well meaning older devs saying that building on Microsoft Access with VBA is absolutely a viable greenfield stack in 2026 for small business.

And we wonder why ageism exists in our industry. Not saying that’s fair or all of it by any stretch, but ouch. It goes to show many of these worst practices are alive, well, and employable.

nunez 2 hours ago | parent | next [-]

This is a reasonable idea if the users maintaining the system aren't technical AT ALL. Think small business who wants a homebrew inventory system for some reason. There is almost always a better tool, but Access is still very approachable for non technical users

esseph 8 hours ago | parent | prev [-]

If you can spin up a working prototype with Microsoft Access and VBA then you can get investors and others to help build your market release.

I'm _not staying you should_, but if it works and makes money, it may not be that dumb.

fitsumbelay 11 hours ago | parent | prev | next [-]

Hilarious

slater 12 hours ago | parent | prev | next [-]

Nice to see L_tus N_tes still getting the hate it rightfully deserves!

marcosdumay 10 hours ago | parent [-]

As long as a single person uses it, everybody will sympathize and hate together.

worik 10 hours ago | parent | prev | next [-]

Need to save state for an HTML form?

UUencode all 354 fields (64MB string) and put it in a hidden input field!

Twice!!

bmurphy1976 11 hours ago | parent | prev | next [-]

Genius!

cramcgrab 11 hours ago | parent | prev | next [-]

Oracle? Is that you?

anishgupta 10 hours ago | parent | prev [-]

did you try making it a slop but ended up making UI good? fun website, seems we're back in the days of early 2000s when discovering new websites like this was fun