629 karma · joined August 3, 2021
Software Engineer at MicroEJ Currently working on embedded systems/IoT in Java & C. Previously worked on ML & NLP in Java, Python, Common Lisp, C, C++, ...
Homepage: https://omecha.info Email: gjadi@ the homepage domain. LinkedIn: https://www.linkedin.com/in/gr%C3%A9goire-jadi-8988a415b/
https://hnbadges.netlify.app/?user=gjadi
Now, I'm still trying to figure out what I can fully delegate to an agent and what I can't. Right now, LLM feel like a senior on technical stuff and a junior on decision/taste. One thing is sure, I can't delegate a critical development to it, not without review. For that review, I need programming skills. Maybe in the future that won't be the case, but I am not seeing that right now. (Using Claude code)
Tutor-mode is a SKILL I made to have the LLM guide and teach through questions and hints.
So I delegate completely the boilerplate/build system/CI and switch to manual+aided by AI for specific implementation part of the code.
I also keep a final validation step to me because I've experimented a few too many "sorry I told you I passed the test suite and I did, but the build failed and I didn't told you".
I want to believe formal methods can help, not because one doesn't have to think about it, but because the time freed from writing code can be spent on thinking on systems, architecture and proofs.
I'm sure almost no family have an upper limit on book time.
Thus aiming for screens the replace books is a bad aim.
When you get a fatter check because your code break, the incentives are not in favor of good code.
If your tooling can pull a dependency from the internet, it could certainly check if more recent version from a vendored one is available.
Steve Jobs
Now, what are doers in the age of LLM is another question.
> We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.
But once you have a home, enough to raise your family and save for later, when is enough enough?
And is the work fun? Fulfilling?
Money is a mean to an end.
Sure you can aim to earn enough to get FIRE asap. In my case, I aim for FIRE in the next 40y while maxing my fun in the meantime :)
Good enough can be good enough and then aim for fun/interesting/challenging/fulfilling work instead of a fatter check.
Think about dating apps, pictures could be fake, and now words exchanged can be fake too.
You thought you were arguing with a gentle and smart colleague by chat and mails, too bad, when you meet then at a conference or at a restaurant you find them very unpleasant.
For me, navigating with shortcuts feels like I can keep my inner monologue, it is part of it, maybe because I can spell it?
Dunno, but reaching for the mouse and navigating around breaks that, even if it can be more convenient for some actions.
When it comes to fundamentals, I think it's still worth the investment.
To paraphrase, "months of prompting can save weeks of learning".
But isn't the corrections of those errors that are valuable to society and get us a job?
People can tell they found a bug or give a description about what they want from a software, yet it requires skills to fix the bugs and to build software. Though LLMs can speedup the process, expert human judgment is still required.
Whereas a junior might be reluctant at first, but if they are smart they will learn and get better.
So maybe LLM are better than not-so-smart people, but you usually try to avoid hiring those people in the first place.
Back in the day, it was much less concentrated and less dangerous than what you can get today.
It's like reading, for better learning and understanding, it is advised that you think and question the text before reading it, and then again after just skimming it.
Whereas if you ask first for the answer, you are less prepared for the topic, is harder to form a different opinion.
It's my perception.
I think handling sensitive data should be done by professional. A lawyer handles contracts, a doctor handles health issue and a programmer handles data manipulation through programs. This doesn't remove risk of errors completely, but it reduces it significantly.
In my home, it's me who's impacted if I screw up a fix in my plumbing, but I won't try to do it at work or in my child's school.
I don't care if my doctor vibe codes an app to manipulate their holidays pictures, I care if they do it to manipulate my health or personal data.
My issue is, LLM fooled me more than a couple of times with stupid but difficult to notice bugs. At that point, I have hard time to trust them (but keep trying with some stuff).
If I asked someone for something and found out several time that the individual is failing, then I'll just stop working with them.
Edit: and to avoid with just anthropomorphizing LLM too much, the moment I notice a tool I use bug to point to losing data for example, I reconsider real hard before I use it again or not.
But yes, the bench result will tell something true.
So far, my biggest issue is, when the code produced is incorrect, with a subtle bug, then I just feel I have wasted time to prompt for something I should have written because now I have to understand it deeply to debug it.
If the test infrastructure is sound, then maybe there is a gain after all even if the code is wrong.
Like, if it tells you merge sort is better on that particular problem, do you trust it or do you go through an analysis to confirm it really is?
I have a hard time trusting what I don't understand. And even more so if I realize later I've been fooled. Note that it's the same with human though. I think I only trust technical decision I don't understand when I deem the risk of being wrong low enough. Overwise I'll invest in learning and understanding enough to trust the answer.