<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="394943" data-post-id="394943">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="martosaur" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/martosaur/120/41071_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  martosaur
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="jam" data-post="101" data-topic="76697">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jam/48/36266_2.png" class="avatar"> jam:</div>
<blockquote>
<p>but curious how you’re avoiding deskilling in particular?</p>
</blockquote>
</aside>
<p>I engage with “recreational programming” (and natural language writing as well!) every weekend. I wouldn’t say I avoid it entirely, but experiencing flow state here and there helps to at least slow the decline.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394943" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/102">Post #101</a>
	                </div>
	            </div>
              <div id="likers-container-394943" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394943"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #101"></div>
  </section>
</div>
    <div class="postbit" id="394946" data-post-id="394946">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Alex66" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Alex66/120/7934_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Alex66
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hope I’m not off topic,</p>
<p>a lot of people in this thread say LLMs are fine for trivial stuff but not for serious work. I disagree, with one condition: they’re useless for serious work <em>if you drive them like autocomplete</em>.</p>
<p>After more or less a year of daily LLM use on non-trivial Elixir libraries and projects, work related and side ones, I didn’t end up with a swarm of agents. I ended up with exactly two instances, a hard gate, and a deliberately annoying process.</p>
<p><strong>The coder</strong> is Claude Code. It sees the repo, writes the code, and runs the gate.</p>
<p><strong>The architect</strong> is a separate Claude chat that <em>never sees the implementation</em>. It only gets what the coder produces <em>about</em> the code: review reports, gate output, and an <code>api.md</code> describing the public contract (types, functions, invariants, error cases). From that alone, it writes the tests and reviews the reports.</p>
<p><strong>The gate</strong> runs in this order, cheapest first:</p>
<pre data-code-wrap="bash"><code class="lang-bash">mix compile --warnings-as-errors
mix format --check-formatted
mix test
mix credo --strict            # plus extra checks enabled in .credo.exs
mix dialyzer                  # last, it's the slow one
</code></pre>
<p>CI runs Credo diff-gated against the merge base (<code>credo diff --from-git-merge-base origin/main --strict</code>), so a branch fails on what it <em>adds</em>, while a full-tree run ratchets the legacy baseline down over time. Dialyzer runs with <code>:unmatched_returns</code> on. Nothing counts as done until all of it is green, and “done” is the coder’s claim, not a fact, until the architect has seen the output.<br>
Why bother?</p>
<ul>
<li><strong>Tests written from the spec, not the code.</strong> When the same model writes both the implementation and the tests, the tests quietly encode whatever it did, bugs included. The architect can’t overfit to code it has never seen.</li>
<li><strong>The coder can’t grade its own homework.</strong> The gate is the objective part, and the architect is the skeptical part. A frontier model with no feedback loop gives you <em>confident</em> code. The same model inside a strict loop gives you <em>good</em> code.</li>
<li><strong>The gate catches what review misses.</strong> Credo strict flagged a function the model had grown to cyclomatic complexity 35 in one session. The model then admitted, unprompted, that its own week of work wouldn’t pass its own gate. That’s the loop working.</li>
<li><strong>The architect’s context stays clean.</strong> It isn’t drowning in diffs, so it holds the big picture and catches scope creep and “helpful” features nobody asked for.</li>
<li><strong><code>api.md</code> is a forcing function.</strong> If the contract can’t be written clearly enough for a blind reviewer to test against, the design isn’t finished.</li>
</ul>
<p><strong>The last layer: oracles nobody in the loop wrote.</strong> The gate and the architect still share one weakness: both are the same model family, and they can share the same misreading of a spec. So where it matters, the final judge is external to the project entirely (for example):</p>
<ul>
<li><strong>Tincture (PDF generation):</strong> conformance isn’t claimed, it’s verified by veraPDF: PDF/A-2a at 153/153 rules, PDF/UA-1 at 106/106. The reports and the source documents are committed, so anyone can reproduce them.</li>
<li><strong>An OPC UA stack I’m working on:</strong> the existing Erlang implementation served as a characterization oracle for the codec port, where “wrong” meant “diverges from upstream,” though never treated as gospel. For the parts upstream never implemented, like Write, there’s no reference at all, so the answer is interop testing against independent implementations (asyncua, open62541, UAExpert).</li>
</ul>
<p>That’s the real hierarchy: the compiler checks syntax, Credo and Dialyzer check shape, the tests check intent, and an external validator checks the truth. LLMs are good at satisfying whatever judge you give them. Give them one they can’t sweet-talk.</p>
<p>It’s slow as hell. Every retry is a cold <code>mix</code> run, I’m the courier and the watcher between the two instances, and every contract change means updating <code>api.md</code> first. But the failure mode shifts from “confidently wrong code” to “a gate fails, or we argue about the spec.” That’s the argument you actually want to have.</p>
<p><strong>Why Elixir, specifically.</strong> This setup works in any language, but it works <em>better</em> here, and not only because we’re on the Elixir forum:</p>
<ul>
<li><strong>Immutability and explicit data flow.</strong> A function’s behaviour is on the page: no hidden mutation, no action at a distance. The model can reason locally, which is exactly what a context window rewards.</li>
<li><strong>Contracts in the syntax.</strong> Pattern matching, <code>{:ok, _} | {:error, _}</code> tuples, <code>@spec</code>, and guards mean the intent is written down, not implied. That’s also what makes a blind <code>api.md</code> possible in the first place.</li>
<li><strong>The feedback is fast, precise, and machine-readable.</strong> Compiler warnings, the new type checks, Credo, Dialyzer, and doctests all tell the model <em>what</em> is wrong and <em>where</em>, which is what an agent loop runs on.</li>
<li><strong>Stable language, one place for docs.</strong> No framework churn every six months, and HexDocs for everything. The model’s knowledge doesn’t rot as fast as it does in JS land.</li>
<li><strong>OTP limits the blast radius.</strong> When generated code is wrong at runtime, supervision contains it instead of taking the system down.</li>
</ul>
<p>It isn’t just my impression. On Tencent’s AutoCodeBench (20 languages, execution-graded), <a href="https://dashbit.co/blog/why-elixir-best-language-for-ai" rel="noopener nofollow ugc">Elixir got the highest completion rate across models</a>, despite having a fraction of Python’s training data. The caveat is that those are self-contained functions, not systems with architecture. That gap is exactly what the gate and the architect are for.</p>
<p>It’s also not free. Less training data shows up as idiom leakage: the model writes <code>acc ++ [x]</code> in reduces and leaves semicolons around like it’s still in Python. Credo catches most of it, and that’s the point.</p>
<p>So no, LLMs aren’t only good for trivial stuff. Left unsupervised, they produce trivial-quality work at any scale. Put them inside a structure where every claim is checked by a compiler, a linter, a type checker, and a second instance that has never seen the code, and they do serious work.</p>
<p>The structure <em>is</em> the engineering. That’s where the skill went. It didn’t evaporate, it moved up a level: deciding the contract, the invariants, and the gate, and knowing when the model is bluffing. It’s the same hard part it always was.</p>
<p>One honest caveat. I’m not a 40-year-old developer, I’m an architect with a lot of years of hand-written code behind me from before any of this existed. That matters, because the architect role only works if you can smell a bluff, and I learned to smell it by writing the code myself for decades. How the next generation builds that instinct is, to me, the real open question in this thread.</p>
<p>If you like LEGO, you’ll get this: none of these bricks is clever on its own. The strength is in how they lock together.</p>
<p>Best,<br>
Alex</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394946" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/103">Post #102</a>
	                </div>
	            </div>
              <div id="likers-container-394946" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394946"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #102"></div>
  </section>
</div>
    <div class="postbit" id="394951" data-post-id="394951">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="volcov" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/volcov/120/39013_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  volcov
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Agentic coding also changes the way we see other people. Teams used to be sort of like parties of adventurers: a Git wizard, a Rust witch, a bard who is really into mechanical keyboards. There was plenty of room for skill expression, and the diversity of expertise was celebrated.<br>
Now, an average team consists of a Claude operator, a Codex whisperer, and a guy with AI psychosis who insists on committing .md files. “This is John—you’ll want to see how he <em>prompts</em>,” said nobody ever.</p>
</blockquote>
<p>You described exactly what I feel and what I mentioned in the previous message, hahaha!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394951" data-batch-url="/posts/batch_likers">
                        5
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/104">Post #103</a>
	                </div>
	            </div>
              <div id="likers-container-394951" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394951"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #103"></div>
  </section>
</div>
    <div class="postbit" id="394967" data-post-id="394967">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="derek-zhou" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/derek-zhou/120/19943_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  derek-zhou
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="jamesaspinwall" data-post="98" data-topic="76697">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/j/87869e/48.png" class="avatar"> jamesaspinwall:</div>
<blockquote>
<p>I think AI is doing something similar to coding.</p>
</blockquote>
</aside>
<p>I have not seen many non-coders taking up coding via AI though. If AI made everyday Joe a coder, producing applications for himself, friends and family, like social media made everyone a reporter that friends and family follows, then I would have much higher respect on AI.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394967" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/105">Post #104</a>
	                </div>
	            </div>
              <div id="likers-container-394967" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394967"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #104"></div>
  </section>
</div>
    <div class="postbit" id="394970" data-post-id="394970">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Zurga" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Zurga/120/38832_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Zurga
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>In the Netherlands, this is a prediction a lot of people are betting on. Get as many people to produce code, use their non-coding background as a plus so they will want to solve problems in their domain.</p>
<p>Even in government, people are told to just try to vibecode their daily problems away, but don’t integrate with the existing software solutions. Totally unproductive; shadow IT has been a problem for a long time.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394970" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/106">Post #105</a>
	                </div>
	            </div>
              <div id="likers-container-394970" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394970"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #105"></div>
  </section>
</div>
    <div class="postbit" id="394971" data-post-id="394971">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="krasenyp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/krasenyp/120/39733_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  krasenyp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This sounds like the COBOL hype long time ago. It will probably end the same way.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394971" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/107">Post #106</a>
	                </div>
	            </div>
              <div id="likers-container-394971" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394971"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #106"></div>
  </section>
</div>
    <div class="postbit" id="394972" data-post-id="394972">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cmo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cmo/120/19618_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  cmo
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Alex66" data-post="103" data-topic="76697">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/alex66/48/7934_2.png" class="avatar"> Alex66:</div>
<blockquote>
<ul>
<li><strong>An OPC UA stack I’m working on:</strong> the existing Erlang implementation served as a characterization oracle for the codec port, where “wrong” meant “diverges from upstream,” though never treated as gospel. For the parts upstream never implemented, like Write, there’s no reference at all, so the answer is interop testing against independent implementations (asyncua, open62541, UAExpert).</li>
</ul>
</blockquote>
</aside>
<p>You could shell out the thousands of dollars to get the specs, though I’ve found several of them online, and another $1500 or so for the conformance test software and let it go wild on that.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394972" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/108">Post #107</a>
	                </div>
	            </div>
              <div id="likers-container-394972" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394972"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #107"></div>
  </section>
</div>
    <div class="postbit" id="394975" data-post-id="394975">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="jam" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jam/120/36266_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  jam
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This sounds potentially interesting. So what’s the input you provide to the agents? Just the <code>`api.md`</code>? What about for the user-facing frontend?</p>
<p>Also wish you would have written it yourself. My eyes kind of glaze over with the claudese. <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394975" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/109">Post #108</a>
	                </div>
	            </div>
              <div id="likers-container-394975" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394975"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #108"></div>
  </section>
</div>
    <div class="postbit" id="394982" data-post-id="394982">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Alex66" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Alex66/120/7934_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Alex66
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes, CTT is on the list.<br>
Interop first because it’s free, and CTT when the stack is worth paying to fail.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394982" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/110">Post #109</a>
	                </div>
	            </div>
              <div id="likers-container-394982" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394982"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #109"></div>
  </section>
</div>
    <div class="postbit" id="394983" data-post-id="394983">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Alex66" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Alex66/120/7934_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Alex66
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Fair point on the claudese <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"> I’m the gate: grumpy old IT guy, bad temper, I say no a lot.</p>
<p>Inputs: the coder sees the repo, the architect only sees api.md, gate output and reports. I write/approve api.md.</p>
<p>Frontend: honestly, I’ve used it on libraries, not UIs.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394983" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/i-genuinely-hate-programming-now/76697/111">Post #110</a>
	                </div>
	            </div>
              <div id="likers-container-394983" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394983"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #110"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/76697/load_more?page=12">Load more posts (3 remaining)</a>
</div></template></turbo-stream>