Evolution of LLMs use by a programmer (opens in new tab)

2026-01-21 strategy

Thinking that 6 months ago I didn’t use LLMs at all for programming and seeing the use I make of it today, I thought it would be interesting to write a blog post about the evolution.

This post is based on my experience developing Asfaload, an opensource multi-signature sign-off solution developed in Rust and using minisign for handling cryptographic signatures.

Some important points to note are:

  • I’m working on an open source project, and I’m ok sharing the code with LLMs.
  • I am the solo developer of the project.
  • I was starting the project using a programming language I didn’t know at the time. Finding solutions to the error messages returned by the Rust compiler was a good incentive to interact with LMs.
  • I’ve always enjoyed designing and specifying the systems I was working on. I spent months specifying how Asfaload would work and this as paid off now I’m using LLMs extensively.

While these factors are important regarding my experience, you might follow a similar path in your journey discovering what LLMs can bring to programming.

First phase: prudent discovery

In the first phase I started to use LMs via a chat interface to ask questions about how to write some code or about error messages I got from te compiler. I was just starting Rust and it was very interesting and very helpful to progress much faster than I would if I hadn’t had access to these chat interfaces.

But then I started asking questions that that were increasingly complex. And that led me to the second phase of my use of LLMs for programming.

Second phase: getting familiar

As my interactions with the LLMs via the chat interface were really helpful, I asked questions that were getting complex and that became deeply linked with my code. Inevitably I started to paste code excerpts. Initially I thought I would write the tests myself, but it appeared that it was very helpful to let the LLMs generate the tests and to review them afterwards. So a lot of interactions with the chat but of the kind “Write me exhaustive tests for this function that I paste below”. This worked fine even if I reviewed all the code generated and I regularly add fundamental changes to apply. In the end it made me win time and if it didn’t make me faster, it freed me from the burden of unpleasant work.

But as the test generation worked fine, I went further and began to ask a question regarding code in the application. That led me to the third phase.

Third phase: sharing more

Loading more...

Keyboard Shortcuts

Navigation
Next / previous item
j/k
Open post
oorEnter
Preview post
v
Post Actions
Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s
Recommendations
Add interest / feed
Enter
Not interested
x
Go to
Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Browse
gb
Search
/
General
Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help