Hacker Newsnew | past | comments | ask | show | jobs | submit | thisisbrians's commentslogin

It is and will always be about: 1) properly defining the spec 2) ensuring the implementation satisfies said spec


> properly defining the spec

Why do you often need to re-prompt things like "can you simplify this and make it more human readable without sacrificing performance?". No amount of specification addresses this on the first shot unless you already know the exact implementation details in which case you might as well write it yourself directly.

I often have to put in a prompt like this 5-10 times before the code resembles something I'd even consider using as a 1st draft base to refactor into something I would consider worthy of being git commit.

I sometimes use AI for tiny standalone functions or scripts so we're not talking about a lot of deeply nested complexity here.


> I often have to put in a prompt like this 5-10 times before the code resembles something I'd even consider using as a 1st draft base to refactor into something I would consider worth of being git commit.

Are you stuck entering your prompts in manually or do you have it setup like a feedback loop like "beautify -> check beauty -> in not beautiful enough beautify again"? I can't imagine why everyone things AIs can just one shot everything like correctness, optimization, and readability, humans can't one shot these either.


I do everything manually. Prompt, look at the code, see if it works (copy / paste) and if it works but it's written poorly I'll re-prompt to make the code more readable, often ending with me making it more readable without extra prompts. Btw, this isn't about code formatting or linting. It's about how the logic is written.

> I can't imagine why everyone things AIs can just one shot everything like correctness, optimization, and readability, humans can't one shot these either.

If it knows how to make the code more readable and / or better for performance by me simply asking "can you make this more readable and performant?" then it should be able to provide this result from the beginning. If not, we're admitting it's providing an initial worse result for unknown reasons. Maybe it's to make you as the operator feel more important (yay I'm providing feedback), or maybe it's to extract the most amount of money it can since each prompt evaluates back to a dollar amount. With the amount of data they have I'm sure they can assess just how many times folks will pay for the "make it better" loop.


Why do you orchestrate the AI manually? You could write a BUILD file that just does it in a loop a few times, or I guess if you lack build system interaction, write a python script?

> If it knows how to make the code more readable and / or better for performance by me simply asking "can you make this more readable and performant?" then it should be able to provide this result from the beginning.

This is the wrong way to think about AI (at least with our current tech). If you give AI a general task, it won't focus its attention at any of these aspects in particular. But, after you create the code, if you use separate readability and optimization feedback loops where you specifically ask it to work on those aspects of the code, it will do a much better job.

People who feel like AI should just do the right thing already without further prompting or attention focus are just going to be frustrated.

> Btw, this isn't about code formatting or linting. It's about how the logic is written.

Yes, but you still aren't focusing the AI's attention on the problem. You can also write a guide that it puts into context for things you notice that it consistently does wrong. But I would make it a separate pass, get the code to be correct first, and then go through readability refactors (while keeping the code still passing its tests).


> Why do you orchestrate the AI manually?

I have zero trust in any of these tools and usually I use them for 1 off tasks that fit well with the model of copy / pasting small chunks of code.

> But, after you create the code, if you use separate readability and optimization feedback loops where you specifically ask it to work on those aspects of the code, it will do a much better job.

I think that's where I was going with the need to re-prompt. Why not provide the result after 5 internal rounds of readability / optimization loops as the default? I can't think of times where I wouldn't want the "better" version first.


Make (or whatever successor you are using, I'm sure no one actually uses nmake anymore) is pretty reliable in filling in templates that feed into prompts. And AI is pretty efficient at writing make files, lowering the effort/payoff payoff threshold.

> I think that's where I was going with the need to re-prompt. Why not provide the result after 5 internal rounds of readability / optimization loops as the default? I can't think of times where I wouldn't want the "better" version first.

I don't think this would work very well right now. I find that the AI is good at writing code, or maybe optimizing code, or maybe making the code more readable (that isn't one I do often, but optimization all the time), but if I ask it to do it all at once it does a worse job. But I guess you could imagine a wrapper around LLM calls (ClaudeCode) that does multiple rounds of prompting, starting with code, then improving the code somewhat after the code "works". I kind of like that it doesn't do this though, since I'm often repairing code and don't want the diff to be too great. Maybe a readability pass when the code is first written and then a readability pass sometimes afterwards when it isn't in flux (to keep source repository change diffs down?).


There's two secret sauces to making Claude Code your b* (please forgive me future AI overlords), one is to create a spec, the other is to not prompt merely "what" you want and only what you want, but what you want, HOW you want it done (you can get insanely detailed or just vague enough), and even in some cases the why is useful to know and understand, WHO its for sometimes as well. Give it the context you know, don't know anything about the code? Ask it to read it, all of it, you've got 1 million tokens, go for it.

I have one shot prompted projects from empty folder to full feature web app with accounts, login, profiles, you name it, insanely stable, maybe and oops here or there, but for a non-spec single prompt shot, that's impressive.

When I don't use a tool to handle the task management I have Claude build up a markdown spec file for me and specify everything I can think of. Output is always better when you specify technology you want to use, design patterns.


Side note, everyone's talking about having AI agents "conform to the spec" these days. Am I in my own bubble, or - who the hell these days gets The Spec as a well-formed document? Let alone a good document, something that can be formally verified, thouroughly test-cased, can christen the software "complete" when all its boxes are ticked, etc.?

This seems like 1980's corporate waterfall thinking, doesn't jibe with the messy reality I've seen with customers, unclear ideas, changing market and technical environments, the need for iteration and experimentation, mid-course correction, etc.


> who the hell these days gets The Spec as a well-formed document?

The PMs asked ChatGPT to write a well-formed spec.

Sadly, true in too many companies right now.

I do agree with your general point that The Spec can become a crutch for washing your hands of any responsibility for knowing the product, the goals, the company's business, and other contexts. I like to defuse these ideas by reminding the engineers that The Spec is a living document and they are partially responsible for it, too. Once everyone learns that The Spec isn't a crutch for shifting all blame to the product manager, they become more involved in making sure it's right.


Personally, I get a huge rush of dopamine seeing LLMs build out complex features very quickly to the point that it will keep me up all night wanting to push further and further.

That's where the gambling metaphor really resonates. It's not whether or not the output is correct, I've been building software for many years and I know how direct LLMs pretty well at this point. But I'm also an alcoholic in recovery and I know that my brain is wired differently than most. And using LLMs has tested my ability to self-regulate in ways that I haven't dealt with since I deleted social media years ago.


> Personally, I get a huge rush of dopamine seeing LLMs build out complex features very quickly

I dont think i've read a sentence on this website i can relate to less.

I watch the LLM build things and it feels completely numb, i may as well be watching paint dry. It means nothing to me.


I wonder if the difference here is age/experience or what you're working on/in.

When I was 20, writing code was interesting, by the time I was 28 it became "solving the problem" and then moved on to "I only really enjoy a good disaster to clean up".

All of my time has been spent solving other peoples problems, so I was never invested in the domain that much.


Yeah, I used to enjoy writing code but after a while I realised I actually more enjoy creating tools that I (and other people) liked to use. Now I can do that really quickly even with my very limited free time, at a higher level of abstraction, but it's still me designing the tool.

And despite the amount of people telling me the code is probably awful, the tools work great and I'm happily using them without worrying about the code anymore than I worry about the assembly generated by a compiler.


Trust me, I have many days where I wish I had your relationship to this. I wish it were as boring as watching paint dry. But it triggers that part of my brain that wants more, and I have to be very careful about that.


It also doesn’t help that producing features is also wired to a sense of monetary compensation. More-so if you’re building a product to sell that might finally be your ticket to whatever your perception of socio-economic victory is.


That's definitely part of it, sure. I also just get a cosmic kick out thinking about the possibilities that this technology unlocks and that thinking can spiral in all sorts of unhealthy ways.


That can't be the whole story, right? Because there are an arbitrarily large number of (e.g.) Rust programs that will implement any given spec given in terms of unit tests, types, and perhaps some performance benchmarks.

But even accounting for all these "hard" constraints and metrics, there are clearly reasons to prefer some possible programs over others even when they all satisfy the same constraints and perform equally on all relevant metrics.

We do treat programs as efficient causes[1] of side effects in computing systems: a file is written, a block of memory is updated, etc. and the program is the cause of this.

But we also treat them as statements of a theory of the problem being solved[2]. And this latter treatment is often more important socially and economically. It is irrational to be indifferent to the theory of the problem the program expresses.

[1]: https://en.wikipedia.org/wiki/Four_causes#Efficient

[2]: https://pages.cs.wisc.edu/~remzi/Naur.pdf


> there are clearly reasons to prefer some possible programs over others even when they all satisfy the same constraints

Maintainability is a big one missing from the current LLM/agentic workflow.

When business needs change, you need to be able to add on to the existing program.

We create feedback loops via tests to ensure programs behave according to the spec, but little to nothing in the way of code quality or maintainability.


Good sir, have you heard the Good Word of the Waterfall development process? It sounds like that's what you are describing


I had a CIO tell me 15 years ago with Agile I was wasting my time with specs and design documents.


I was in a call just today where specs were presented as a new thing.


AI: "Yes, the specs are perfectly clear and architectural standards are fully respected."

[Imports the completely fabricated library docker_quantum_telepathy.js and calls the resolve_all_bugs_and_make_coffee() method, magically compiling the code on an unplugged Raspberry Pi]

AI: "Done! The production deployment was successful, zero errors in the logs, and the app works flawlessly on the first try!"


We're way past that.


Then pulling the lever until it works! You can also code up a little helper to continuously pull the lever until it works!


We have a monkeys and typewriters thing for this already.

Just instead of hitting keys, they’re hitting words, and the words have probability links to each other.

Who the hell thinks this is ready to make important decisions?


It's not ready to make important decisions. But that's not the same as making important contributions.


Well it’s more how much we care about those.

Which with the advent of LLMs just lowered our standards so we can claim success.


That was always the easy part.

The endless next steps of "and add this feature" or "this part needs to work differently" or "this seems like a bug?" or "we must speed up this part!" is where 98% of the effort always was.

Is it different with AI coding?


Location: Austin, Texas, USA

Remote: yes

Willing to relocate: no

Technologies: best at infra, data infra (including IoT), database (postgres), fan of: Ruby on Rails and "boring technology", Swift UI, developing hardware

Résumé/CV: https://drive.google.com/file/d/1u-PnhWu9V_YcTJtaOQem2iSEwD4...

Email: thisisbrians at g mail dot com

Former, exited founder looking for IC roles, but don't mind some leadership duties.


Location: Austin, Texas, USA

Remote: yes

Willing to relocate: no

Technologies: former founder. best at infra, data infra, database (postgres) (including IoT), fan of: Ruby on Rails and "boring technology", Swift UI, developing hardware

Résumé/CV: https://drive.google.com/file/d/1u-PnhWu9V_YcTJtaOQem2iSEwD4...

Email: thisisbrians at g mail dot com


Are these roles on-site only?


I'll probably get downvoted for this, but recent (last ~100 years) evidence and phenomena suggest that consciousness might be fundamental to reality, and thus there could be some other information transfer we would currently consider "woo" going on here. This is hard (if not impossible) to prove, of course, but quantum mechanics has totally bewildered many aspects of the materialist ("reductionist") model of the universe. There is a large and increasing number of physicists and other reputed scientists/researchers who are adopting some variation of the consciousness-as-fundamental stance.


That's been shown not to be true. Concious observers are not required for reality.


Yes, it's easy to cherry-pick an obviously absurd position that could be articulately argued. But the point is that you are definitely wrong about some things and should generally keep an open mind. Even intelligent people are wrong about certain things, and in fact their propensity for rationalization can lead them into some absurd positions. But some of those positions turn out to be right, like the Earth orbiting the Sun, for example.


The grandparent's point is that articulate prose is irrelevant to the strength/correctness of the argument or intelligence of the author.

I would take it a step further and include that it has no bearing on the morality of the author.

The original claim was:

> But exposing yourself to articulate versions of positions you oppose does something valuable: it makes you realize that intelligent people can disagree with you without being monsters or morons.

In truth, it does no such thing. Articulate arguments serve neither as proof the person making it isn't a monster nor that they are particularly intelligent or knowledgeable about that which they argue.

Though, I would also point out that monsters can occasionally be right as well.


I think he's using the wrong word here. "Articulate" isn't enough. What you need to do is compare the arguments from both sides about the subject, especially how they address specific things. Who is using facts, who is using emotions? How do claims stand up to time?


For example, the author is articulate and wrong about needing to give consideration to republicans :p


I can chime in to say: the scientific method, so far, cannot explain consciousness, and that the whole materialistic basis for physics is facing a crisis in the face of quantum mechanics, etc. Most of us have utmost confidence in a method that so far has nothing to say whatsoever about the most important quality of our existence: that we are aware.


The "scientific method" doesn't explain anything. It's a method for evaluating claims people make.

The fact that there is no scientifically verifiable theory of consciousness has no bearing on the science that helped people create, say, my computer monitor.


the semantics aren't very important to my argument, which is basically: our instruments can't perceive all of reality, thus we can't test theories around the unknown phenomena therein.


Consciousness is the inflection upon the potential of existential being. One might say existential reality peering back upon itself.

Awareness is merely a temporal feedback in the higher order cognitive biotechnology.

Awareness is the tip of consciousness. Consciousness is programmable, can be manipulated, augmented, even inhibited. All with or without awareness.


switch to a workplace that has higher standards. obviously that can't be done overnight, so in the interim, make sure to CYA (cover your a**) against the transgressions of the incompetent, including being as honest as you need to be in reviews. if assigned a stupid task, maybe try to divert it to one these stupid persons, or do it as quickly and lazily as possible (CYA).


you're probably getting downvoted because there isn't really a temperature 4 million miles away from the Sun (it's mostly just empty space being bombarded by radiation)

2,500º F is merely the temperature the probe is expected to reach at that distance. if it were to stay at that distance indefinitely, it would grow much, much hotter as it absorbed more energy from the sun.


No not necessarily - it will keep growing hotter until the black body radiation emitted by the probe matches the power of the radiation hitting the probe. Then it will stay at constant temperature.

It's a standard undergraduate problem to work out what this equilibrium temperature is for a flat plate at a distance from the sun equal to the Earth's orbital radius.

Interestingly the result is only a few 10's of degrees less than the average temperature of the real Earth - the difference is due to the Greenhouse Effect.

For the probe one could easily do the maths but I could believe that at 4 million miles that equilibrium temperature is 2,500F.


i definitely can't do the math myself, but excellent retort. thank you for the nuance


Temperature is so wibbly-wobbly. The probe will reach an equilibrium energy-in vs. energy-out temperature depending on its distance from the sun, its surface area facing the sun, and the materials being lit, vs. its surface area facing away, the thermal radiation rate of various materials, and other factors. You could give an aerospace engineer almost any temperature between the CMB and the surface of the sun and they could probably design a (at least theoretical) probe that would reach that temperature eventually* at almost any distance. My guess is that 2500 ºF probably is the equilibrium temperature of the probe at that distance.

* With "eventually" being "assuming a stable state for infinite years" which is of course not how astrophysics actually works.


Eh, not quite yeah?

You’re talking about heat (think ‘amperage’), where temperature is more like voltage.

You can’t get above a specific temperature merely by transferring more heat, or losing less heat, etc.

Upper bounds of temperature is still going to be limited by the temperature/frequency of the input energy, barring energy loss which can reduce it.

The solar atmosphere layers have specific maximum temperatures that limit the maximum temperature of objects exposed to them or the radiation from them.


well, in space (perfect vacuum) you only lose heat to radiation

but you can keep absorbing radiation indefinitely

so the equilibrium temperature will depend on the incoming radiation and ensuing outgoing radiation as dictated by the material makeup of the thingy


Assuming passive systems? It doesn’t work that way.

Once the object has reached the temperature of the source of the radiation (assuming radiative heat transfer), it reaches equilibrium and it will radiate away at the same rate it is absorbing (as a black body). Per the 2nd law of thermodynamics.

It’s why there is a maximum temperature with concentrated solar too - regardless of magnification, you can’t exceed the temperature of the surface of the sun the light was emitted from. Attempted to do so will actually heat the sun (or some other thing) through radiative thermal heat transfer the other direction.

It’s also why radiative heat transfer can’t be used to produce infinitely high temperatures by having a large emitter near a tiny absorber (like a speck of dust) in a vacuum.

If there is some kind of heat pump or laser or the like which you a providing power, then that doesn’t apply of course, but for pure black bodies it does.

If you have some way to let an object absorb radiation, while emitting no radiation even when it is as hot as the source of that radiation, then you have something pretty special going on eh?


Edit window closed, but here is a more in-depth explanation. It’s decidedly non-obvious [https://www.reddit.com/r/AskPhysics/comments/1arh55g/why_can...]

Part of it is due to the ‘Principle of Etendue’ [https://en.m.wikipedia.org/wiki/Etendue#Conservation]

What confuses people I think (practically) is that the actual high temperature (~4500F) is far beyond the limits of a useful highest temperature in 99% of situations we might want in engineering. A spacecraft hitting that temperature is going to be a molten piece of scrap long before it hits that point.

But the limit does actually exist - it won’t somehow hit 10,000F for instance. That is also why we can’t produce infinitely high temperatures with a huge magnifying glass - the highest we can hit, regardless of how big it is, is still ~ 4500F. Higher temperatures need something like an electric arc furnace, or LASER.


Great as an employee approach. Not as good as a founder approach.


You don’t need to chase the shiny to be a successful founder of a successful company.

https://boringtechnology.club


Yeah. I subscribe to the theory of conservation-of-cool. You get to either build something cool with something boring, or something boring with something cool.


I love boring tech! Building boring tech with AI tooling is what I'm after with all this.


Are you founding something in "AI-assisted programming"?

Because if you're not, it sounds like you're distracting yourself with shiny things instead of focusing on your industry, on your investors, on your leads and clients, on your team, etc. While common, that sounds like a terrible founder approach.

AI-assisted programming may be something that your engineers bring into your company because they find it improves their work. But like any other tool one's staff may prefer, your role as a leader doesn't involve "keeping up on the advances". At best, it involves sourcing trusted perspectives when you face a decision point (authorizing a request, perhaps), making the choice, and then moving on to other leadership tasks.


Founder in what? Figure out what your core competency is and keep up to date on that. For everything else, stick with the tried and true.


Not every founder is a sole engineer who codes on their own.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: