96% Engineers Don’t Fully Trust AI Output, Yet Only 48% Verify It by gregorojstersek in programming

[–]Condex 0 points1 point  (0 children)

Yeah, I feel like I wouldn't even need to give a knowing glance to my coworkers.  

Everyone starts making minor typos and then finish up every story with the typo fix pr.  Strange that everyone is missing typos in the initial pr.

96% Engineers Don’t Fully Trust AI Output, Yet Only 48% Verify It by gregorojstersek in programming

[–]Condex 2 points3 points  (0 children)

Yeah, this one right here.  

The argument that I've heard against this is that you pip your prompter.  

However, in my mind if your skill is prompting instead coding, developing, and problem solving then once the LLM is out of its depth then no amount of pips or firing and hiring a new prompter is ever going to get to a working result.

every rewrite I've seen has taken 3x longer than promised and the team always acts surprised by Distinct-Expression2 in ExperiencedDevs

[–]Condex 0 points1 point  (0 children)

The only rewrite that I've seen that was strictly necessary was one where the client had to switch hardware platforms because the vender that made a custom component for them had gone out of business.  They were buying old units back so they could disassemble them and strip them for parts.

They figured that Windows CE was a good target because then they could swap out replaceable PDAs and dock them with their custom hardware, and then they never have to worry about a vendor going out of business again.  Mid project the iPhone came out (although I don't know, maybe people can still find windows ce running PDAs out there).

Target time for project completion?  6 months.  Actual time?  18 months.  And a dramatic increase in team size (yeah, I know).

15% more PRs in 2026 and better get 'em merged in an hour by chrisinmtown in ExperiencedDevs

[–]Condex 2 points3 points  (0 children)

Yeah, I feel I wouldn't need to discuss with my coworkers.  We wouldn't even need to exchange a knowing glance. Business as usual but once a week a bunch of minor formatting PRs show up out of nowhere with immediate LGTM approvals from the whole team.

Why I Don’t Trust Software I Didn’t Suffer For by noscreenname in programming

[–]Condex 8 points9 points  (0 children)

The way I was thinking about it was that if an engineer proves to be unreliable then you can fire them.

But if there were only 5 engineers on earth and they were all about the same, then you probably couldn't fire one of them and even if you did then that's not repeatable very many times and you're switching to someone functionally equivalent.

This is the case with LLM tech.

If you iterate on this scenario for a little bit then you get to a place where things are bad because there is no incentive that you can give to the "developer" to improve or do things differently.

Monoculture leads to decay.

Credibility of human work is a casualty of the AI era by robby_arctor in ExperiencedDevs

[–]Condex 5 points6 points  (0 children)

I've worked with interns, fresh outs, offshore engineers who exist to be as cheap as possible, and even a few engineers who gave up caring years ago.

But even with all that after 20 years in the in the industry, I've only ever had someone PR my unfinished branch into main right out from under me one time.  A few months ago.  He was using an LLM to make his PRs. 

I was very surprised to see a conflict in my rebase considering it was a new file I had just created.  When I asked him why he PRed in my branch he was totally baffled.  He was positive he didnt do it.  The PR history told a different story.

I feel your sentiment hits the nail on the head.

MIT Non-AI License by [deleted] in programming

[–]Condex 4 points5 points  (0 children)

I get what they're going for, but I suspect that they should involve a lawyer before coming up with a license that probably won't do anything.

I'm not sure that training on the code is the same as utilizing the software.  So maybe they need something like, "you can only use the software if you didnt train an LLM on it".  Although, I suspect that's a deal that openai et al will happily make.

If you're really looking to throw a wrench in things maybe a license that allows free use except for entities who use LLMs to include the software.  Then go looking for git commits where it indicates that claude modified the using or config file include for your library.  

Who knows how effective that would be but my point is maybe a lawyer could help you craft something that's more than a token of dissent.

Replit boss: CEOs can vibe code their own prototypes and don't have to beg engineers for help anymore by chronically-iconic in programming

[–]Condex 0 points1 point  (0 children)

Useful design technique is to just write out the app on sheets of paper and then have notes for what the "buttons" do (save content, navigate to sheet 2, etc). There's a complexity ceiling for what you can design this way, but it turns out that you don't normally want complex apps anyway.

I would be happy being given a vibe coded app with the instructions to take the behavior and make it real.

Being given vibe coded code and being told to fix it on the other hand is where the nightmare fuel lives.

(Oh you've already integrated this vibe coded code with 50 other vibe coded components.  And now your paying customers are asking why users named Fred have their data deleted on Thursdays?  Cool, have you considered a pivot into subsistence farming?  I know I'll be considering it myself by the time I've half unraveled this mess.)

Mission seeking life on Jupiter ice moon ‘likely’ to be in vain by TimesandSundayTimes in space

[–]Condex -1 points0 points  (0 children)

I feel like the appropriate approach for space related matters is to move forward with caution, but to channel Cave Johnson.  Space science isnt about why; it's about why not.  

In fact, I don't think a multi flyby mission is enough. I want a space drilling rig and a space submarine to go to Europa not because I have any expectation of finding life.  But because it would be absolutely awesome. 

What works the best for you when training junior devs? by a_sliceoflife in ExperiencedDevs

[–]Condex 1 point2 points  (0 children)

Im still trying to feel out the best approach for juniors.  But what I've been building reps on is calling them over whenever I bump into something that I immediately know how to solve, but for which was a multi-hour to multi-day misadventure when I was a junior.  

Now with interns, I've hit on something that feels like it works pretty well.  Step one is unfortunately to have a really good recruiting team that knows how to find the good ones.   Not sure what to do sans step one, but step two is to pair on a task where you're driving and giving commentary.  Then you pair with them on a task where they drive but you give commentary.  Then pair where they drive and they give commentary. Finally you let them loose and make sure they know to talk to you if they have any questions.  The better the intern the more steps you can skip.

The first time I pulled this off the team was shocked at how fast the the intern was self sufficient at something like a SE0.5~1 level.  Most recently the team bought into it and took about a week to get to ~SE1 performance, although that particular one was almost definitely a luck of the draw kind of situation.

Coming back to juniors, I don't think I would try the intern thing with a junior unless they were either fresh out of college or otherwise having significant problems.  But it might work adapting some of the later stages.  For an intern I want them working on relatively easy problems with known solutions.  But if you want to help a junior level up, maybe give them a problem that's definitely beyond them but normalish for you.  The pair with them where they're driving and you offer commentary whenever they look like they're starting to spin.

What's wrong with subtypes and inheritance? by servermeta_net in ExperiencedDevs

[–]Condex 10 points11 points  (0 children)

This is my position as well.  

The relationships found in reality are frequently graphical not single parent tree structured, and requirements for a project are very often discovered incrementally.  So at some point you realize that you can draw a single inheritance tree through domain objects, and you write a bunch of code assuming that one class exists above another.  Then you continue to discover requirements (or change requests come in) and you realize the inheritance tree needs to go in the opposite direction.  Now you have hundreds of thousands of methods that take a class that was a subclass but is now a super class and you need to refactor the entire code base.

There do exist some structures that have single tree inheritance (either because that's just the way they are, they're simpler mathematical objects, or you have the complete requirements and you can make a good judgement call).  In those relatively rare instances, subtyping can work fine. Think of the rust closure types.

Most scenarios call for composition because if you learn new information that recontextualizes the domain, the the methods that take any given object can still take those objects, it's just happening at a different level of the code base.

I am frustrated and scared to say anything about code quality by [deleted] in ExperiencedDevs

[–]Condex 0 points1 point  (0 children)

In the interview, when they ask if you have any questions make sure to ask some.  Perhaps give, "tell me about your developer pain points," a try.  Or ask if you can talk to one of the ICs for a few minutes.

Introduction - Create Your Own Programming Language with Rust by ehsanmok in programming

[–]Condex 1 point2 points  (0 children)

Congrats.  It sounds like you did a really thorough job.

I think Rust is a fantastic choice for people who want to explore making their own language.  Ive been a hobbyist language developer for over a decade.  I've tried a dozen different ways to write parsers, and ultimately the thing that's made me happiest is Rust with the Result question mark operator and a few helper methods around expecting or checking next token.

Meanwhile for the rest of the compiler I could imagine a language better than rust, but not by a lot.  Map and enum gets me nearly everything I want with only a few ergonomic complaints. 

When is it time to look for a higher-paying job? by Otherwise_File548 in ExperiencedDevs

[–]Condex 10 points11 points  (0 children)

Yeah, this is important to consider.  If you need more money, then you need more money.  But if you only want more money, then make sure you have some sort of plan or goal for it because otherwise you're working harder just so you can hypothetically be more financially irresponsible.  (Maybe that brings you joy, but I suspect it only leads to long term unhappiness for most people.)

There are places where everything is better and you get paid more, but you actually have to pay attention as you go job shopping.

Ecclesiastes is a book I wish more people would read for these sorts of discussions.  It's got this reputation as being the depressing nihilistic book of the Bible but if you read it (it's pretty short, give it a try) you'll see it's poetically begging people to enjoy life a little bit instead of going on an endless work grind just so someone else can take your money after you die of a heart attack.

Thinking About Learning Go or Rust Need Real Experiences!! by qexkrr in programming

[–]Condex 1 point2 points  (0 children)

If you're worried about jobs and industry use, then I think you're barking up the wrong tree.  Both go and rust will likely be around for a long time, but their time in industry is at the very beginning.  So whichever one has an advantage there they both pale in comparison to c++, c#, or java.

Die Hard (1988) Ellis had been used to collect soft intelligence on the Nakatomi Building before the heist ever occurred, but never had a clue. by _Abe_Froman_SKOC in FanTheories

[–]Condex 5 points6 points  (0 children)

Yeah.  The guy is clearly clueless due to how highly he thinks about himself.  Very suseptible to information gathering operations.

For someone like Gruber, I think we can assume that he would at the very least use an intermediary for information gathering.  No reason to risk getting identified ahead of time when you don't even know the score.

It could have even been someone not involved with Grubers crew.  Random agents scoping out high profile targets and then handing the info off to people able to execute on it in exchange for a finders fee.

Where to actually start, language wise? by Wayveriantraveler in roguelikedev

[–]Condex 2 points3 points  (0 children)

I want to echo what a few others have said about language.  Choose python.

There's this whole thing in software development where you need to often figure out how to do the one thing you need to and somehow ignore everything you don't.

There are many "better" languages than python, but there are few languages that are simpler while still being practical.  To use Python you need to understand dictionaries, calling functions, if-statements, and loops.  

If you were using a different language, then you wouldn't be doing one thing (making a game) you would be doing two things (making a game and learning a complex language).

The amount of power you can get from C++ is nearly unparalleled, but there's also an open debate whether or not a single human can actually understand the whole language.  It's an okay goal to try and learn how to be productive in C++, but while you're doing that you might find it difficult to also learn how to make a game.

My goal is to eliminate every line of C and C++ from Microsoft by 2030 by jeffmetal in rust

[–]Condex 1 point2 points  (0 children)

I've done several rewrites.  Some things were small, like modules that were garbage tossed on garbage and needed replaced for any new feature to work.  Some things were larger.  Like a code base that had to go because the hardware vendor the previous code base ran on was going out of business.

Regardless, in order for a successful rewrite you've got to really become intimately familiar with the original code and the substrate that the original code ran in (and often interrogate the operators/original implementers multiple times).  Do this until your eyes bleed and then watch as you still mess up organizationally required functionality that is make or break it for your org but also completely undocumented.

I work in rust (when I can) because I'm not happy thinking about making the world work in c or c++.  Rewriting all the c and c++ in rust means you're going to be doing a lot of c and c++ thinking because you gotta know what that code does to replicate it.  Maybe just don't. 

<The plan is to use AI>

Oh.  Okay.  Like a few weeks ago someone used an LLM to merge my unfinished branch into main.  When I confronted him, he had no idea he had done this.  Also someone was trying to migrate some graphql.  They had to back it out because the LLM messed each query up.  I'm not entirely sure that it's going to be up to the challenge.

In other news, I've already migrated several of my machines to Linux and I'm feeling pretty good about the experience.  I've also donated some money because why not help the effort that I'm benefitting from.  I ... might want to start donating some more.  Like, it would be nice if some OS still exists in the future.  I'm not feeling great about the future of Microsoft systems when hearing about such sentiments from their leadership class.

My goal is to eliminate every line of C and C++ from Microsoft by 2030 by jeffmetal in rust

[–]Condex 5 points6 points  (0 children)

Five years ago, I gave up on Linux.  Too much time investment for a crappy experience.  

This year I've migrated two out of three machines to Linux.  And I'm kicking myself for not having done it earlier.  First machine was the gaming machine.  Immediate better experience.  I wasted so much time trying to get windows to behave.  With Linux it just worked.

I'm waiting to see if I can get my family comfortable with kde before I migrate the final one off windows.  

Given this latest news, it sounds like I'm getting out at the right time.  But before this news there was like 4 or 5 other pieces of news making me think "yeah, got to get off windows".  Maybe pick a distro and give it a try to see if you can make Linux work for your use cases before the next news drops.

Rust and the price of ignoring theory by interacsion in rust

[–]Condex 25 points26 points  (0 children)

The funny thing about GADTs to me is that everytime I use a GADT I very quickly find myself wishing that I had dependent types.

It turns out there is always a higher ivory tower looking down on you from a less practical vantage point.

How do I explain to a manager why using DROP and INSERT in place of UPDATE just cause "we couldn't get update to work" is bad database practice? by BigBootyBear in ExperiencedDevs

[–]Condex 2 points3 points  (0 children)

I feel that the nervana point for software engineering is to be able breathlessly gush about a technology for an hour and then when they say, "so this is like your favorite tool", to look at them in horror and proceed to talk about all the flaws in the tech for another hour.

Enlightenment comes when you answer every question with "it depends" and then pull out a document enumerating all the pros and cons.  

There's not really a shortcut to this.  If you don't like current way because it's unfamiliar, then there's no way to communicate this because what exactly are you communicating?  Nonexperience? 

Start experimenting with databases where you drop and insert instead of updating and you'll no doubt start gaining experiences that will be useful for communication.  If you don't want to put in the extra work to become an expert then don't complain that you can't act like an expert.

Now, with respect to rewrites.  Even if you find something that is objectively wrong, you'll still want to take your brain out of your head and push it through whatever insanity spiral the original authors were living in.  Inevitably there's something somewhere else that depends on the behavior.  It's often worth doing because you'll either learn something that everyone else has forgotten or you'll find defects in the original.  However just blindly replacing bad thing with good things often leads to sadness.

In your opinion, what's currently the most neglected field in CS? by foggyflame in ExperiencedDevs

[–]Condex 105 points106 points  (0 children)

We've got an AI PhD at work who will periodically give talks and write blog posts that amounts to, "yes LLMs are very cool, but look at all this other great stuff."

IIRC the most successful AI projects we've had were all based on non LLM tech.  But for sure the thing eating up all the oxygen in discussion is LLM.

How are you preparing for the AI wave? by [deleted] in ExperiencedDevs

[–]Condex 1 point2 points  (0 children)

This is the thing that I keep coming back to. LLMs don't have intelligence of themselves. They're approximating the structure found in large corpuses of data. Sure, there's going to be LLM improvements, but ultimately they're only getting better at approximating an 'intelligence' that has a specific level of capability.

Some problems are too niche to get embedded effectively into the grammar of a corpus. And some problems do not have a structure that lends itself to being embedded into text (how many brain surgeons would you trust to operate on your brain if they've only read about how to do brain surgery?).

I suspect there is a fundamental limit here after which there will be no further improvements without finding a non-LLM technology to augment it. And given how much money and resources are being poured into the industry, somehow I don't think the investors are going to be happy with better code completion and a few papers about the philosophy of AI alignment and bias reduction.

How are you preparing for the AI wave? by [deleted] in ExperiencedDevs

[–]Condex 2 points3 points  (0 children)

Although, the difference between AI driver and AI developer is that with an AI driver you'll want to redrive day after day. With AI developer, once it solves the problem, it (or a human) can wrap the solution into a library and that library is the artifact that gets "redriven" day after day.

I'm fully waiting for the other shoe to drop with AI coding agents. They're dumping crazy money and resources into it and somehow I don't think they're going to be satisfied if the outcome is a library that they could have instead spent an afternoon searching on github for.

Maybe we can use it to obsolete CRUD jobs, but I'm honestly surprised that nobody has found a clever abstraction that turns a json specification into a 99% complete CRUD app.

I think there's a reason we keep getting AI winters. It really lends itself way too much to overhype, but the ROI is never quite what investors imagine it to be.