At work we will soon be getting access to agentic AI that parses through our gigantic code base and burns through money for very simple requests.

What would be the best way to maliciously comply with the management’s decision for AI usage to be an everyday thing you are expected to do without getting found out?

My idea is spamming the living shit out of the most expensive models for pointless tasks and then insisting that the result is wrong, and work in the meantime. Nobody can complain if my work is still good, but they will notice that the AI budget is not worth it and stop the hype train.

  • PorkrollPosadist [he/him, they/them]@hexbear.netM
    link
    fedilink
    English
    arrow-up
    19
    ·
    edit-2
    20 days ago

    Modify the build system to use the language model as a linter. Modify the build system so every compiler diagnostic is automatically submitted to the language model for a “friendly” explanation. Modify the commit hooks to have the language model pre-fill the commit message with a summary of the changes. Justify it as making the tooling more user-friendly.

    If you use an internationalization framework like gettext or similar, have the language model generate “place-holder” translations for every target locale on every development build (not just releases). Have the language model shit out a handful of localization unit tests to justify this.

    If you work with C++ and use any libraries which do template metaprogramming (famous for those cryptic 50+ line compiler diagnostics overflowing with angle brackets), instead of scanning your recent changes for the typo, make the language model explain the diagnostic to you at length until you are satisfied.

    Seek excuses to use incompatible languages (i.e. using an obscure C library without bindings in Python. Internal, proprietary libraries are a good candidate) and use the language model to automate the production of language bindings each time the API is updated.

    If you use a scriptable text editor (like Emacs or VS Code), describe what you want your desired configuration to do in some form of vernacular English and have the LLM generate a new configuration file on the fly each time you start the editor. Get creative. Maybe include a message of the day which involves the language model fetching or hallucinating some new historic event every morning. Justify this by making small changes to your human language “configuration file” regularly. Ideally, tell the language model to implement some over-cooked code style guidelines like the Google Style Guidelines (for instance) and have it parse the entire spec each time just to set up your tab stops.

    • invalidusernamelol [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      9
      ·
      edit-2
      19 days ago

      This is amazing because all of this is entirely useless at best and actively hostile at worst, but it’s all exactly the kinda thing the morons pushing LLMs want. This is 100Xing tech debt generation, all features no maintenance.

      I kinda hate my current job, but at least I’m the only dev and the entire codebase is my own handwritten slop. Refusing to use AI at any point has basically allowed me to minimize feature creep and force all our tooling to fit in a decently modular home baked framework that only takes up ~100MB for the whole history and around 60K lines of active code (split I over about 4 or 5 separate open source repos I’m maintaining).

      Half of my commits now are deleting huge portions of the codebase since I’ve noticed they aren’t used, or have been replaced over the years by better solutions. All of this runs the entire project management, design and QA suites for a 60 person fiber optic design firm.

      I do have a habit of just deciding to delete modules and waiting for tickets to flow in then rewriting them on the fly, but there’s no better way to find out if something is important than deleting it in prod and waiting for complaints lol