← Back to search

#llms

Posts

Ralph Wiggum, Abundance and Software Engineering

I've been enjoying my break from work and using this time to overwhelmingly use LLMs for writing code, learn how others use them and explore what my thoughts are. The [Ralph Wiggum](https://ghuntley.com/ralph) phenomenon by [Geoff Huntley](https://ghuntley.com) or agent loops more generally, inspired me to write this post. There's a bit of a self-discovery involved as I use these tools more and more and that's something I wanted to write about since I feel many might be in the same boat. I hope this post clicks something for them.

Commentary

Staircase Analogy

Came across this blog today and this paragraph amused me a little.

A potentially reasonable reaction to these limitations would be to say “LLMs have improved a huge amount over the past year and thus future improvements over the next year will likely make them much better at writing good documentation and maintainable code.” But if you accept my staircase hypothesis, that reaction is a lot less certain. Being able to climb up a tall staircase doesn’t mean you can swim.

This is true! I see AI pilled engineers using LLMs to generate arbitrary documents and share with others without verifying the veracity or worse yet, whether the information is for the intended audience.

A little judgement goes a long way.

Outsourcing Thinking

One of Descartes’ foundational contributions to Philosophy is cogito, ergo sum which translates to “I think, therefore I am”.

LLMs are fascinating and helps you learn and understand things a little more by sort of pointing you at the right direction if you know what you’re looking for. In a world where we’re optimizing for speed and max throughput where Software Engineers are purely acting as a conduit between an LLM and their systems and stop thinking, are we losing a part of our humanity in the process?

Non-determinism in LLMs

Everyone knows that LLMs are inherently non-deterministic and harnesses, MCPs, RAG, skills etc. all try to paper over this.

But this non-determinism is a feature. And the developer community is slowly beginning to embrace it. This was well elucidated by Martin Fowler on his recent podcast on The Pragrammatic Engineer. He akins this to the field of mechanical engineering with engineers building tolerances into what a structure can withstand.

Computer Science Engineers actually have an example closer to home. Not too long ago, Google ushered us all in with the MapReduce paper and the core of this architecture was GFS which inherently assumes that all underlying hardware components are unreliable. And this has prompted the industry to build strategies like replication, fault-tolerance, SRE practices around the fact that systems are fallible.

Perhaps, our industry can consider this as a watershed moment before the mother of all uncertainties becomes more mainstream - Quantum Computing.