Live data from Hacker News

What the hell have you built

wthhyb.sacha.house

21–30 of 239 posts

Re: What the hell have you built

#22
post #7

I feel like sometimes it’s a form of procrastination. There are things we don’t want to do (talk to costumers, investors, legal, etc.), so instead we do the fun things (fun for engineers). It’s a convenient arrangement because we can easily convince ourselves and others that we’re actually being productive (we’re not, we’re just spinning wheels).

It's the natural evolution to becoming a fun addict. Unless you actively push yourself to do the uncomfortable work every day, you will always slowly deteriorate and you will run into huge issues in the future that could've been avoided. And that doesn't just apply to software.

You know what, you're right.

I should get off HN, close the editor where I'm dicking about with HTMX, and actually close some fucking tickets today.

Right after I make another pot of coffee.

...

No. Now. Two tickets, then coffee.

Thank you for the kick up the arse.

Re: What the hell have you built

#23
"Maybe Redis for caching".

Really that's going way too far - you do NOT need Redis for caching. Just put it in Postgres. Why go to this much trouble to put people in their place for over engineering then concede "maybe Redis for caching" when this is absolutely something you can do in Postgres. The author clearly cannot stop their own inner desire for overengineering.

Re: What the hell have you built

#24
post #7

I feel like sometimes it’s a form of procrastination. There are things we don’t want to do (talk to costumers, investors, legal, etc.), so instead we do the fun things (fun for engineers). It’s a convenient arrangement because we can easily convince ourselves and others that we’re actually being productive (we’re not, we’re just spinning wheels).

Is it really for "fun"?

Or is it to satisfy the ideals of some CTO/VPE disconnected from the real world that wants architecture to be done a certain way?

I still remember doing systems design interviews a few years ago when microservices were in vogue, and my routine was probing if they were ok with a simpler monolith or if they wanted to go crazy on cloud-native, serverless and microservices shizzle.

It did backfire once on a cloud infrastructure company that had "microservices" plastered in their marketing, even though the people interviewing me actually hated it. They offered me an IC position (which I told them to fuck off), because they really hated how I did the exercise with microservices.

Before that, it almost backfired when I initially offered a monolith for a (unbeknownst to me) microservice-heavy company. Luckily I managed to read the room and pivot to microservice during the 1h systems design exercise.

EDIT: Point is, people in positions of power have very clear expectations/preferences of what they want, and it's not fun burning political capital to go against those preferences.

Re: What the hell have you built

#25
post #7

I feel like sometimes it’s a form of procrastination. There are things we don’t want to do (talk to costumers, investors, legal, etc.), so instead we do the fun things (fun for engineers). It’s a convenient arrangement because we can easily convince ourselves and others that we’re actually being productive (we’re not, we’re just spinning wheels).

It's the natural evolution to becoming a fun addict. Unless you actively push yourself to do the uncomfortable work every day, you will always slowly deteriorate and you will run into huge issues in the future that could've been avoided. And that doesn't just apply to software.

I see your point. But accidental complexity is the most uncomfortable work there is to me. Do programmers really find so much fun in creating accidental complexity?

Removing it, no matter whether I created it myself, sure, that can be a hard problem.

I've certainly been guilty creating accidental complexity as a form of procrastrination I guess. But building a microservices architecture is not one of these cases.

FWIW, the alternative stack presented here for small web sites/apps seems infinitely more fun. Immediate feedback, easy to create something visible and change things, etc.

Ironically, it could also lead to complexity when in reality, there is (for example) an actual need for a message queue.

But setting up such stuff without a need sounds easier to avoid to me than, for example, overgeneralizing some code to handle more cases than the relevant ones.

When I feel there are customer or company requirements that I can't fulfill properly, but I should, that's a hard problem for me. Or when I feel unable to clarify achievable goals and communicate productively.

But procrastrination via accidental complexity is mostly the opposite of fun to me.

It all comes back when trying to solve real problems and spending work time solving these problems is more fun than working on homemade problems.

Doing work that I am able to complete and achieving tangible results is more fun than getting tangled in a mess of unneeded complexity. I don't see how this is fun for engineers, maybe I'm not an engineer then.

Over-generalization, setting wrong priorities, that I can understand.

But setting up complex infra or a microservices architecture where it's unneeded, that doesn't seem fun to me at all :)

Re: What the hell have you built

#26
post #8

What the hell have you built? Turns out a pretty straightforward service. That diagram is just aws, programming language, database. For some reason hadoop I guess. And riak/openstack as redundant. It just seems like pretty standard stuff with some seemingly small extra parts because that make me think that someone on the team was familiar with something like ruby, so they used that instead of using java. "Why is Redi…

Whoosh

Re: What the hell have you built

#27
post #3

s/postgres/sqlite/g

Postgres is simpler. Get your cloud to manage it. Click to create instance, get failover with zero setup. Click button 2 to get guaranteed backups and snapshot point in time.

When you use sqlite, you can distribute your program by distributing a single executable file. That's what I call simple.

Re: What the hell have you built

#28
post #16

Heh Once you have a service that has users and costs actual money, while you don’t need to make it a spaghetti of 100 software products, you need a bit of redundancy at each layer — backend, frontend, databases, background jobs — so that you don’t end up in a catastrophic failure mode each time some piece of software decides to barf.

uh, maybe you only have the issue that you need redundancies because you have so many pieces of software that can barf? I mean it will happen regardless just from the side effects of complexity. With a simpler system you can at least save on maintenance and overhead.

Yes, but if your web server goes down for whatever reason, you’d rather have some more for your load balancer to round robin. Things like physical host dying are not exactly unheard of. Same with DB, once you take money, you want that replication and quick failover and offsite backup.

Re: What the hell have you built

#30

Earlier quoted context omitted.

It's the natural evolution to becoming a fun addict. Unless you actively push yourself to do the uncomfortable work every day, you will always slowly deteriorate and you will run into huge issues in the future that could've been avoided. And that doesn't just apply to software.

I see your point. But accidental complexity is the most uncomfortable work there is to me. Do programmers really find so much fun in creating accidental complexity? Removing it, no matter whether I created it myself, sure, that can be a hard problem. I've certainly been guilty creating accidental complexity as a form of procrastrination I guess. But building a microservices architecture is not one of these cases. FWI…

I 100% agree.

Normally the impetus to overcomplicate ends before devs become experienced enough to be able to even do such complex infra by themselves. It often manifests as complex code only.

Overengineered infra doesn't happen in a vacuum. There is always support from the entire company.

Post reply on HN