HN user

RevEng

433 karma
Posts0
Comments256
View on HN
No posts found.

It is scary how often I'll mention something in a face-to-have conversation and suddenly it's showing up in ads. It's way too often to be coincidence, especially with how unlikely some of those topics are. They are definitely monitoring everything and feeding it into their ad system.

They said "the" human kind, not "one" human mind. Even with structures, rules, and other tools, we are limited in the amount we can abstract, comprehend, and communicate. As projects get larger, we inevitably see a friction develop where coordination breaks down and we turn to isolation and responding to failures at the boundaries. This is where complexity in design of an individual system ends. Larger ecosystems aren't designed or coordinated - they emerge organically as each tries to adapt to the other. If only we could handle such complexity, we could design efficient systems that don't suffer from the same waste.

This is exactly the lens I use myself. I write AI software and I use it in my development process, but I try to use the AI to do things that don't remove my agency, but extend my capabilities: - Debug things. It knows way more than I do in many areas and it sees things I will miss. If I'm struggling to find the answer, maybe it will succeed. - Review things. It has a wealth of experience I couldn't possibly have. Ask it to critique my work and provide an alternative perspective that I can't provide myself - Implement a design. I have already gone through the thoughtful engineering to decide what to do and how to do it. The rest amounts to translating pseudocode to the programming language. Let it type what I would have typed anyway and save me the hassle of typos, looking up function and parameter names, and other such mechanical details. Let me use that time and mental effort to better consider my design, try more alternatives, or build more things, providing more value overall. - Suggest ideas. Even as a 20 year professional, there are things I don't know or haven't considered. Is there a newer, faster, or more maintainable way of doing this? Is what I wrote clear to anyone other than myself? Before AI, I would ask coworkers, search the web, or reference other sources. Now I can get an immediate suggestion from something with tremendous knowledge at almost no cost. It's full up to be to consider what it suggests, further explore the used and learn about them - I don't take the AI at its word and let it decide what is best for me. But I do use it to gain perspective and explore alternatives.

There are some common traits about the thighs I use AI for. They are this that I either couldn't possibly do myself (because I'm biased, or unfamiliar, or have no access to the expertise) or that I would spend a lot of time while having little agency (mechanical translation). I am not replacing learning, thinking, or deciding. I think this is the key difference.

If this were the only option, sure. It's not - the article points out several other possibilities. Just because one option isn't accessible to all doesn't mean we have to accuse the author of being ableist. We don't take away writing from some people because others can't do it - we provide alternatives.

Because I can't read all content to judge its value.

I used to use other signals to help judge: literacy, reputation of the writer or publisher, the media they used to communicate. Now even governments are distributing notice of official policy through poorly written tweets, yet the Internet is flooded with whole websites of AI slop that looks on the surface to be professionally made. We lost the signals that used to help us filter out the signal from the noise.

The alternative is not to read all content carefully because we don't have anywhere near the bandwidth to do so. This article is about other ways we can provide those signals. Even if the content is crap, the fact that someone has to sacrifice to produce it limits the amount they can produce, requiring them to prioritize what they produce, and signaling that this was important enough to them that it was worth the sacrifice.

They covered that situation with the pen plotter. There are signals of commitment that you can't fake. The article isn't saying anything about accuracy or authorship, only that you actually cared about what you were communicating enough to put in some self sacrifice, and that this is a useful signal to help decide if something is worth listening to.

This isn't about proof that you wrote it - it's about proof that you care. It was important enough that you spent the effort to write it out, or were so dedicated that you committed to wearing it on your body forever. It could be someone else's message, but you are proving it is important to you by showing a personal sacrifice to share the message.

What are some better options? I honestly can't think of any way of proving someone's age other than electronic ID provided by a well trusted institution like a government. The only alternative would be removing anything possibly inappropriate for younger ages, which is historically what people fought for, but that didn't work well either, partly because plenty of adults wanted those things and partly because there's no practical way to enforce it.

Trump agreed to the MoU saying it's allies would stop attacks, including in Lebanon. Israel continues to bomb it. It's up to Trump to put pressure on Israel to stop in order to make good on his deal. It's no surprise this is instantly falling apart - Trump promised something he couldn't deliver. We can only hope that he does eventually put enough pressure on Israel to stop.

Funny how quickly "won't someone think of the children" turns into mandatory government ID for private services, banning necessary and secure (and encrypted) communications systems, and locking children out of access to the de facto communication systems of the modern era.

This is a privacy nightmare on all fronts and a horrible limit on freedom of speech. These kids will be learning how to drive a car, yet unable to contact their extended family over Messenger or follow news on Twitter. For everyone else, it means no anonymity or secrecy which has a chilling effect on free speech at a time when fascism is growing within democratic countries and dissidents are being imprisoned or murdered.

Yes, there are some really big problems with social media, but keeping children away from it doesn't fix the problems - it just leaves them for the rest of us to deal with. Let's fix the root of the problem, starting with the recommendation algorithms that inherently polarize people by building echo chambers around them and pushing divisive content all in the name of "engagement".

Two of my co-workers have the last names Dyck and Cox. I've seen others whose last name is literally Dick. And let's not forget the famous actor Dick Van Dyke who strikes out twice on most filters. I've heard several other names from other ethnicities that were straight up "slurs" by some people's standards. The only thing harder than matching a slur is deciding what words count as slurs.

I quite liked Cursor. I even tried Claude Code and found myself wanting to go back to Cursor. Unfortunately, this completely kills it for me. I will not support Elon Musk or any of his shenanigans. He is already far richer than any person should be, but he also constantly tries to manipulate the government to benefit himself to the detriment of everyone else, whether that's DOGE, or the fast track to begging added to indexes on the stock market, or burying all the investigations into Tesla. I cannot in good conscious pay for a product when I know that he is profiting from it. So long Cursor, it was a good ride while it lasted.

That prospectus didn't make anything clear. It was pictures of rockets and rubbish about "the light of consciousness". The only real information was buried deep in the middle and it showed a company with poor finances and no clear path to success. Certainly not something worth the likes of Amazon.

You pay a 3x markup to rent a server through AWS than managing your own. You pay for convenience. At shall annals that's fine, but for large companies with their own datacenters, you generally do things in house.

I usually agree with Simon but I think he is overlooking an important factor.

There is a lot of AI usage happening not because it shows benefits, but because the business has mandated its ubiquitous use. Companies having dashboards for token usage and rewarding people for using more tokens is a real thing. I just spoke with someone today who works at Microsoft and they are required to use AI for all of their work - they have to make a special request with justification if they decide not to use AI for even a single PR. This kind of demand isn't driven by value from either the company itself or from its workers; it is the kind of artificial demand you get from make-work projects to keep people employed during hard times.

We have to wait for the hype to settle down and people start making business decisions based on results before we can really value these AI products.

I strongly disagree. I'm an engineer - I'm all about the fastest, cheapest thing that meets the requirements. I don't need Opus 4.7, even for my complex programming tasks. It costs over 10x other models available that still give good enough answers. Those smaller models are also a lot faster to output tokens, which saves me time.

Once the model gets good enough, the returns on bigger models diminishes quickly. I don't want to spend 10x the money and wait 5x the time to get answers that are equivalent.

I use composer-2 daily for complex programming tasks. It's a fine tuned Kimi 2.5 - nothing groundbreaking. I've even had reasonable success using Qwen 3.5 on my desktop GPU. Opus might be better, but it's certainly not necessary to get good results.

Every meeting, every memo, and every prototype is output in terms of the employees doing that work. Whether it's directly saleable is irrelevant. The investors base the value of their investment on the expected future value of the company, but the people being to do the work are being paid for the work they are doing regardless of what the future value of the company becomes. That is if they are paid a salary. If they are given shares, then that compensation is entirely dependent on future value.

Cursor with its tab completion. Iterate with the agent part to research, design, and plan. Let it generate boilerplate and scaffolding, perhaps with placeholders for you to fill in. Then fill in as you normally would, but with an auto-complete that uses all of your code and design docs and everything else to inform that completion rather than the limited set of info that shows up in an LSP.

I believe JetBrains IDEs have something similar too, but I don't have as much experience using theirs since my employer hasn't blessed their AI tools yet.

I think we can do both. Ask the AI to summarize it, but to show examples and point out where things happen. Let it make you a Coles Notes. You still need to look at the code yourself and understand it, but an initial outline and explanation can really jump start the process and save a lot of time. Likewise, it's hard to find a bug and come up with a fix, but those same things are often oblivious in hindsight. Once we have an idea of what the bug is, we can often look at the code directly or write tests to confirm in a fraction of the time it took to discover in the first place. Once we have an idea for a fix with code and an explanation for how it fixes the bug, we can often review that explanation, think through any implications, and test the fix in a fraction of the time it takes to come up with it in the first place.

I'm happy to let the AI explore possibilities for me, eliminating the search problem. It's still on me to understand the solution, verify it works, and handle any other considerations I know of that the AI wouldn't. It gives me the insight, but I'm responsible for the final solution.

I'm always hesitant of these claims. Sure, it's possible that AI really did help them achieve the same level of quality at 100x the pace. It's also possible it generated a huge tech debt that only passes the tests but hasn't planned for future maintainability, readability, and extensibility, and a year from now their entire process will grind to a halt.

I have a few people on my team who move 5-10x faster than others in writing code. They also generate 5-10x as many bugs and require that much more rework in the things that were shipped. They move fast and break things. Their code is almost malicious compliance in that it passes the tests or spec as given, while leaving glaring holes in things that weren't fully specified. A more careful developer would have asked questions, considered alternatives, and looked for ways to leverage existing solutions or plan for future work, but that takes time now and its benefits don't show up until later.

So while I don't immediately disbelieve that 10x+ speedups are possible with heavily AI-augmented flows, I am skeptical of any short term success stories until we have time to see the long term effects. We already know that cutting corners can save time in the short term only to cost us several times more in the long term.

Great point! This is along the same lines as a low fidelity prototype. It doesn't have to be production quality - hell, it barely needs to work so long as it's good enough to get feedback. Now I can have higher fidelity prototypes in the same time or more iterations in the same time, either of which tend to give me more insight and get me closer to the solution faster. Even if I never ship a line of AI-generated code, I can use it to write the same throw away code I did before, but much faster.

I treat it like other triage tasks: things could always be better, but how much effort does it take and how much better could it be?

There's a common saying that the enemy of good is perfect. It's easy to get stuck in the loop of endlessly polishing something but never actually releasing it, even without AI. It's on us to decide how good is good enough and when to stop.

Over time I've learned to be rather aggressive about cutting out work. I'll quickly ask myself how serious is the issue (does it give wrong answers? block important flows? look embarrassing? or is it just a minor annoyance?) and how much effort would it take (five minutes? two hours? three weeks?). I should be able to make that call in no more than 30 seconds. I skim through the list of 20 suggestions the AI gives, I make plans to iterate on the 3 that are serious, and I simply accept that the rest are "good enough". It's not easy - both to be willing to let issues stand and to make the decision about what is good enough - but it's an important part of the job when triaging lists of bug reports and feature requests, so it's something we need to get good at anyway.

Huh, good point! When a colleague asks me to review their design or otherwise discuss it, I'm always looking for things they might have missed, assumptions they silently made, or corner cases that could come up. I start from the position that there is likely something missing and I need to find out what. Likewise, when I'm looking at suggestions or code or anything else from an AI, I'm assuming it made some mistakes, made some unstated assumptions, or didn't consider some corner cases, and so I'm having to carefully think through what it says to spot the mistake, rather than casually skimming it and going, "LGTM!" If it were too reliable, I might get lazy and not look too hard knowing that it's probably right anyway so there's no point trying too hard to find something. It's the same thing my juniors will sometimes do to me: don't assume I'm right just because I'm experienced - I still make mistakes too! I want to be questioned on anything that might not make sense, because even if it was intentional, the fact that the reason isn't clear is itself a problem to resolve. And I only know so many things - we all have different experiences and a junior can have just as much they can teach me as a senior.

This is why I don't use agent-first platforms like Claude Code. I want to write software with an AI to assist me, not an AI to write my software for me. I don't want an environment whose main mode of operation is instructing an AI to write code - I want a typical IDE where I can continue writing code myself but with an assistant there to consult whenever I want it.

Even then, it's easy to fall into a trap of giving the AI a simple description and letting it fill in the blanks, but I've learned the discipline not to do that, in the same way I learned to think before I speak and design before I write code.

Planning mode is my entry point for almost all code I would have the AI write. I already have in mind what I think I want. I get it to create a detailed plan, which inevitably fills in things I didn't specify and even ask questions I hadn't considered. I iterate on this first revision spec until I think it's ready. This results in a task list. But just like waterfall doesn't mean make a plan and execute it all without looking back, executing this plan is also a stepwise iterative process. I let the AI execute the first step. I check its work. I run some tests and see if it behaves like I thought it would - the same stuff I would do during normal development. If I find issues, I go back to the plan and change it, then continue implementing the revised plan. If the previous step lead me into a dead end, I revert that one step and try again with my revised plan.

The key thing is this: this was my development methodology before AI entered the picture. Nothing has fundamentally changed. What has changed is that the AI provides input at one or more stages of the flow - offering alternatives, asking questions, running tests, researching and debugging - but in every single step the AI does not decide on the final outcome. Even if the AI wrote all of the code, I still review it and test it. Even if it suggested a design, I compare the options and review the referenced documents and decided for myself. Even if it reviews my code and says it would do a hundred things differently, I decide what suggestions I will act on and how. It's no different than I would do with having a coworker giving me ideas, reviewing my work, or making their own attempt at generating a solution. It's all helpful input and if I'm happy with it I will use it as is, but I'm still responsible for every line of code and I still make all of the decisions about what stays and what goes.

I'm sure this sounds wasteful - why use an AI if you have to review it and correct it anyway? For the same reason I delegate tickets to a team of 20 junior developers and don't do them all myself as a principal engineer - I am but one person and they are an army. Even if I have to discuss plans and options with them and review their work, they can spend the same hours I would brainstorming and researching and prototyping and debugging, and I can go over the results with them to make key decisions and make sure we are on the right track. I make the important decisions, but the leg work of getting everything in place is done by someone else who doesn't need as much knowledge or insight or experience. It is a force multiplier. It is the equivalent of a lawyer with a team of paralegals or a professor with a team of researchers and grad students. I can let the AI do the things it does well so that I don't have to, and instead I can spend my time on the things I do well that it can't do.

This is where I think we are going wrong with AI in many areas, but particularly in software development. An AI is not a replacement for an engineer - it's an engineer's assistant. It isn't a source of truth - it's a source of ideas. It's not responsible for the outcome - I am. A team of helpers can make an expert more productive, but that team isn't a substitute for the expert. Likewise, juniors still need to gain the same experiences and learn the same practices and make the same mistakes, because they still need to become experts, but they can use the AI as a guide along that journey rather than having to rely solely on another expert for mentorship.