• artaxadepressedhorse@lemmyngs.social
    link
    fedilink
    arrow-up
    2
    ·
    8 months ago

    How do you keep your sanity? Do you just have to compartmentalize everything as extremely abstract and comical when your task is detangling someone’s 25,000 line spaghetti God classes and obscure async timing bugs?

    • theluddite@lemmy.ml
      link
      fedilink
      arrow-up
      8
      ·
      8 months ago

      Honestly I almost never have to deal with any of those things, because there’s always a more fundamental problem. Engineering as a discipline exists to solve problems, but most of these companies have no mechanism to sit down and articulated what problems they are trying to solve at a very fundamental level, and then really break them down and talk about them. The vast majority of architecture decisions in software get made by someone thinking something like “I want to use this new ops tool” or “well everyone uses react so that’s what I’ll use.”

      My running joke is that every client has figured out a new, computationally expensive way to generate a series of forms. Most of my job is just stripping everything out. I’ve replaced so many extremely complex, multi-service deploy pipelines with 18 lines of bash, or reduced AWS budgets by one sometimes two orders of magnitude. I’ve had clients go from spending 1500/month on AWS with serverless and lambda and whatever other alphabet soup of bullshit services that make no sense to 20 fucking dollars.

      It’s just mind-blowing how stupid our industry is. Everyone always thinks I’m sort of genius performance engineer for knowing bash and replacing their entire front-end react framework repo that builds to several GB with server side templating from 2011 that loads a 45kb page. Suddenly people on mobile can actually use the site! Incredible! Turns out your series of forms doesn’t need several million lines of javascript.

      I don’t do this kind of work as much anymore, but up until about a year ago, it was my bread and butter…