3,104 karma · joined June 10, 2021
Basically using it as a way to type faster.
Like, it is not that I hate AI tools, I just hate how most people are using them...
I can't imagine going to punch cards to, well, anything would feel anything but great. But going from assembly to C I can see how a programmer could struggle with their coworkers not checking the outputted CPU instructions for performance problems and compiler optimizations that generate unintelligible assembly.
But even then all those changes were deterministic (at least to the compiler version), unlike AI.
IMO this kinda of dogfooding is a replacement for good QA and good prioritization. Things only get fixed because a developer that is also a user is annoyed is not a recipe for quality.
The software I work on is not even "for developers", it is more consumer-grade software that many within the company happen to use.
I work in a similar product, lots of people in the office actively use our own product. No one in the office uses our SAML integration, or actively does our onboarding user-flows with any frequency, etc, etc.
I imagine even at linear they don't use all the features they built.
The LLMs are so much faster than I can check the output anyway. If I have a long-running task I just work on another one in parallel while I wait on the first one.
I daydream about being fired with severance so I can spend more time with my little dude. But also deadly afraid of not being able to get another job when savings run out.
I have a missing the permanent teeth molar in both sides of my lower-jaw, I wore dentures for those missing teeth from 12 (when the baby molars were removed) until around 22 years old when I got implants (at a separate dentist, since the one I went to didn't do this kind of procedure).
I am pretty sure that was the correct decision from my dentist, but boy was it painful to get those molar implants because my jaw-bone was so weak in that area after so many years of having a gap in there.
If you have had a missing molar for a long time your teeth probably already moved what they were going to move and if that didn't cause a problem in alignment it probably won't happen.
I have been using VSCodium with https://github.com/jeanp413/open-remote-ssh so (most of) the IDE also runs inside the container. I have been trying to get everything inside the container, including the projects I work on, the IDE, the harness, the dependencies, etc. Both for security and for portability so I can have the same setup in both my work and home computers.
One thing I haven't been able to do is limit the blast radius of is git, github ssh keys give blanket access to all repos tied to my profile and ATM I set up the github SSH key inside the container.
Any of those little junctions between features could very well have <10 users even on multi-million users pieces of software. Now every one of those little possible cross-sections in the venn diagram is another possible state the software can be in and that needs to be tested.
In the software I work currently we have one of such case, a combination of 3 different features that almost no users use in conjunction, but if they do it breaks the system. I am aware of it, my manager is aware, the product owner is aware, the fix is not trivial (in fact it would require rewriting large portions of the system).
It just stays there and we have monitoring and customer-support manually handling it. The product is fundamentally not correct (in fact the correct behavior is not even defined), yet it still works for 99.99% of the users.
Practical example? I have ran multiple times in multiple different products (even ones I worked) where if you login with Google/Apple/Whatever that makes your account completely borked to be used with SAML/OIDC if you get invited into one later. You basically need to call support to ask them to remove your user and be invited again. All those software were, by definition, not correct.
So I obviously opted to not enroll my phone, but that came to bite me in the ass one day when I needed to get a train ticket from my company email (it was a business trip) and the policy prevented non-enrolled devices from attaching or downloading attachments...
Felt like a fool grabbing my laptop to let the train attendant scan the QR code.
However ethanol simply can't be used for heavy duty trucks and ships (which, you know, is 95% or more of goods transports in Brazil since there is almost no rail) which defeats much of the point.
At least the general population can shift to ethanol when supply market gets crazy which helps amortize the whole supply chain, but it still ends up affecting everyone just to a slightly lesser degree.
Buy yeah, corn or soy based ethanol is just insane to do at all. Sugar-based only makes sense in an increasingly unstable global order.
Although my main problem was that they were designing these very generic solutions (that were both super complex and very brittle) that can fit every scenario when my _actual_ scenario was very simple. I couldn't get my point across that I didn't want to buy-into their full platform because of risks and complexity on my side, but that I would be open to buy-into small solutions if I saw the need for them in our product.
In any case this company platform team had this mentality that the company should operate like google, trying to build these massive all-in-one solutions that everyone under the company should use. When in practice it would never work because of the sheer amount of people required on their side to pull that kind of initiative off (on top of other considerations like ROI, downtime-risk, etc).
https://github.com/can1357/oh-my-pi
I haven't tried it much though, can't vouch how well it works.
There are many other source of requirements that matter a lot. One heavily underestimated one is employee frustration. A frustrated employee is less productive and is at risk of leaving the org which incurs huge costs.
A few other ones: environmental impact, social impact, security, ethics, data safety/privacy, regulamentory compliance.
You might say that all these eventually end up as a requirement from users, for example "an employee leaving because he is frustrated means it takes longer to deliver features to a customer". But that is a very roundabout way of looking at it.
Suddenly came a mandate to try to integrate our systems together, the first goal was to use their authorization system (which involved, I kid you not, setting up 3 separate EKS clusters that talked to each other and if the main one goes down, all go down) that the core Platform team of the company was setting up.
Worse even, the plan was to use us as "guinea" pigs for their new systems before rolling out to the rest of the company because our team was smaller and therefor wouldn't be as impacted by problems on their side.
I was vehemently opposed to this, all our other experiences with their stuff was just a huge amount of pain. I remember clearly a meeting we had where I said: "Why would I use your stuff that is not well documented and that I don't understand when I can use open source stuff that is documented and that I can understand". Their only argument was that said they would have internal support for us.
I came up with this concept that I tried to push on to them, that their stuff shouldn't be this monolithic tower of babel monster, but instead should be a buffet where I can pick and choose what to use. Our requirements were very different from their stuff and I didn't want to run into problems because of stuff that had 0 benefit to us.
I ended up leaving that job mostly because of this.
https://www.reddit.com/r/FactorioBlueprints/comments/1gl5v50...
It takes a bit of setup for each item you want to make though and doesn't work if the process takes more than one fluid. The default in the blueprint is to make blue circuits.
Unfortunately factorio has this mechanic where if you switch the item an assembler is making it loses progress for productivity bonuses, so this setup is not really practical for many items. Plus it takes a lot of space. But it is fascinating to see it work.
Of course it is not that simple as a large part of how effective LLMs are is due to training data which is hard to get for a new language.
You see this already, LLMs are a lot more reliable in statically typed languages with strong memory guarantees (like typescript or rust) than in weaker languages.
IMO the only way LLM code can avoid most of the pitfalls of human code is if we make new programming languages targeted at being used by LLMs exclusively. Think of languages with very strong methods for formal proofing and stuff like that.
The problem is that even if said language was invented, it would still fail catastrophically when integrated with systems not made in said language. We are very lucky that relational databases already provide a somewhat high level of formal proofing in this regard.
Said language would be impossible to parse by humans, kinda like assembly where you can parse what an isolated piece of assembly code is doing, but if you can't comprehend a somewhat large pure-assembly codebase as a whole.
Eventually I found out what was really happening, thieves somehow got notice of container ships with blank CDs and were breaking into those to steal the CDs. A single container could keep a city fed (and all its modded playstation 1) for years.
It has been doing that for at least 2 years.
Are people really making hundred-pages thesises in Word?
I suppose it is not that bad if you don't have a lot of charts/pictures/formulas, but still...
I suppose it is about being out of reach of cheap drones?
Goes to show how long brand name goes, especially on appliances.