sergio

sergio

Engineering leads, what are you doing to stop the slop?

As more and more code is written by agents, driven by humans, what strategies are you employing to keep the slop at bay?

Managing a team of 2 engineers, it’s become quite difficult to review and keep the slop out at the rate of features being built. I can’t imagine what it’s like with a team of 20 engineers. I know the status quo will not work period.

I’m hiring a third engineer soon, and want to make sure I do my best to mitigate this new reality.

Most Liked

thiagomajesk

thiagomajesk

As someone already pointed out, everyone is trying to navigate this at the same time, but I think core fundamentals still apply. Everything that makes it easier for a human to contribute to a codebase also applies to agents:

  1. Rely more on automation (linters, rules, CI checks, tests, etc). Writing custom credo rules is especially powerful to enforce conventions.
  2. Writing down non-obvious conventions and patterns (or preferences), which would also make it easier for an agent to pick those up (something has been historically difficult for teams that rely more on “taste” and “gut feeling”).
  3. Apply the progressive disclosure pattern when organizing code so it’s easier to discover and ensure that things are properly documented (and Elixir makes this really easy, especially if you have documentation with good examples)
  4. Doubling down on accountability. You are still responsible for the code you generate, not the LLM (if something breaks, you should be able to fix it).

In other words, give people (or agents) the best tools for them to do their best work. But all of the above also speaks to creating a better harness for the LLM to generate code for you, which goes from properly architecting your solution to everything that comes to maintain that (fighting entropy basically).

People often describe the human work now as being the “quality gate” for LLMs; however, I think the correct mindset is being the “quality road”, meaning you don’t defer making good decisions to the end of the process. So in practice, nothing really changed, except that you iterate much faster than before.

Also, it’s useful to remember that the 10x multiplier in the right hands can also be used to refactor and tidy things, so you have to keep your team accountable as before. All that being said, it’s also important to mention that discovery happens so much faster now that sometimes it might be better to optimize for that instead.

PS.: The only point from my list that really concerns me is the 4th one. Now that some companies are pushing for PMs and other non-technical functions to produce code, it creates an inbalance on the trust dynamic because they can’t verify it, which hurts accountability on many levels.

adamu

adamu

I think I’ve identified the core reason I instinctively dislike LLMs.

I strongly value competence. This applies institutionally as well as societally, not just individually. In a competent society, things just work.

You can take a hot shower because there is clean water and flammable gas piped into your home, a device on premise that burns the gas in a safe, controlled way to heat the water, and a sewerage system to carry the dirty water away to be disposed of cleanly. Not to mention the electricity being used to light your home and power the water heater, and the technology that went into building the home in the first place.

Almost none of this you could achieve alone. But you enjoy the benefits of a shared competence. There is an institutional knowledge at work that ensures you can take the benefits of our technological inventions for granted as part of your daily life.

LLMs replace this hard-earned institutional competence with statistical guesses - a literally incompetent imitation.

Of course, nobody can use an LLM to build a hot shower. But what if the people at the water company stopped knowing authoritatively how to purify water, and instead relied on an LLM? What if they stopped caring about fluid mechanics to get the water safely pumped to your house? What if the producers of the water heater stopped caring about controlled combustion, the sewage company about not dumping sewage into streets and rivers, the electricity company about electrical fundamentals or the builders of your home about solid architectural principles and following through with proven construction practices?

These are the institutional competencies we rely on. LLMs incite individuals to turn not to the institutional knowledge that we have collectively built, but instead to settle for a statistical approximation, eroding the forces that built the shoulders we stand on.

(also blogged a few hours ago)

sodapopcan

sodapopcan

I only just recently hit the acceptance stage for agentic coding, so I don’t have a lot of experience (and I’m not a manager). One thing I have not been letting it do is commit for me. This probably ruins some workflows where one person has a bunch of agents working on several features at once, though I haven’t reached the level of acceptance where I think that is in any way even a remotely good idea for production apps :sweat_smile: In any event, manually committing forces me to work in a more careful way, reviewing each step of the output along the way (the commit message itself can still be generated, of course).

Where Next?

Popular in AI / LLMs Top

DaAnalyst
Seriously, what do you do while Claude (or whatever you use) is doing its thing?
New
shreya_tech
Lately, it feels like every new repo is an “Autonomous Agent.” While the idea of an AI that “figures it out” is cool, I’m finding that fo...
New
FedericoAlcantara
Hi guys, I’ve been running Qwen locally for the last two weeks using an opencode + Ollama + qwen3.6:35b-A3B setup with q4_k_m quantizati...
New
asianfilm
For those who haven’t seen it, here is a research paper from August that found that LLMs perform twice as well with Elixir than with Pyth...
New
nbw
This is an open discussion to anyone using AI to help them work with Elixir in production-ready apps. I work on an Elixir app at work th...
#ai
New
Dmk
Is anyone here using any AI agent frameworks/loop programs/scripts? I’ve been using Claude Code/Gemini/Codex pretty heavily, all manual ...
New
onnimonni
Hey, I’ve been extensively using claude code for backend development and data wrangling in the last 6 months and it has worked very well...
New
sergio
Smart people online are talking about loops. Frankly I don’t understand what these things are in terms of tangibles. I use opencode a...
#ai
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
ricksonoliveira
Hey folks, I have been looking for an alternative to good old VsCode for a while. Have tried some vim and emacs editors with their plugi...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41989 114
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement