If you're a good dev, you can totally prompt Claude to not do this and correct itself, that's not an issue. The issue is that bad devs won't even notice this is happening in the first place.
8,477 karma · joined May 25, 2019
If you're a good dev, you can totally prompt Claude to not do this and correct itself, that's not an issue. The issue is that bad devs won't even notice this is happening in the first place.
If you're in a product company and your development backlog is empty, run. That company is about to go out of business.
Now the competent developer can just run agents and do the same review process, except it's ~free (relative to human salaries, even outsourced).
So we've got a bimodal distribution going on where the bottom X% of developers have become essentially worthless while the top Y% of developers are now more valuable than ever.
This is all predicated on true autonomous vehicles though, not the half-baked non-solutions that exist today.
ehhh. In my experience, being able to code is a necessary but not sufficient skill for a software developer. The only exceptions I've seen is having some extremely deep expertise in a niche technical field (and even then I wouldn't call that being able to code well, so much as technical domain knowledge).
When I was hiring at AWS the view for my team (RDS) was that there wasn't much difference in expectations between algorithmic coding ability for juniors and seniors. The primary technical differentiator for seniors was architectural and operational. But even more important than those was the nontechnical stuff; mentorship, being able to communicate ideas clearly and succinctly (no point in being able to architect a system if you can't communicate it in a way people understand), interacting with other teams, demonstrating understanding customer and business value, etc.
> AI consistently advised people to save during their working years, draw down savings in retirement, invest heavily in diversified stock funds, and reduce stock exposure after age 45.
This is analogous to saying to an aspiring software developer, "You should write clean and testable code, have clearly defined API boundaries, and a repeatable build process." All very true, but also so general and basic that it's not helpful.
It only takes Draftkings writing a very large check to Google before it responds to financial questions with solid advice before ending with, "Since you have a few spare hundred dollars laying around, why not try a high-risk investment into same-game parlays?"
1. Don't use a third-party auth provider, if you can't build out an OAuth provider in an afternoon you shouldn't be entrusted with login credentials
2. Don't use Github, if you can't build out an internal Gitlab instance in an afternoon you shouldn't be entrusted with securing source code
3. Don't use Github Actions or CircleCI, if you can't self-host a Jenkins server in an afternoon you shouldn't be entrusted with secure deployments
4. Don't use a lawyer or outsourced HR, if you can't draft legally binding employment agreement in an afternoon you shouldn't be entrusted with hiring people
Intelligence is being able to set up your own postgres database with backups, PITR, retention policies, HA/replicas, and everything else needed to prevent catastrophic data loss. Wisdom is realizing that's a solved problem completely unrelated to your business, so you don't have to.
> Use foreign keys with cascading deletes for low-volume tables, particularly where database consistency and correctness are important. Careful at higher volume.
This might be just me, but I hate cascades, for a very simple reason: at most places, the majority of developers "live" in the Python/Node/Go/whatever application that talks to the database, not the database itself. Cascading deletes (or updates) is basically magic and it can be very hard to understand "why did deleting a row from table A delete something from table B automatically". Especially if someone sets up the cascading wrong! IMO it's better for long-term maintainability to emit explicit delete clauses. Correct use of foreign keys will prevent any issues with database consistency.
> Tricks for large table migrations
The pitfalls and workarounds are all correct, but worth pointing out tooling already exists[0] for managing this for you. Making changes to large tables should be as simple as running a command (and then nervously monitoring for the next 24 hours as the data copies).
Other things to consider,
1. Get used to separating application and database deployments early. It is impossible to transactionally deploy both a schema change and an application change simultaneously, there will always be some delay where the versions of database and application are out of sync, and you will eventually run into a situation where the database change deploys fine but your application change does not. Once your app is in production, get in the habit of only doing backwards compatible schema changes: all new columns are nullable or have a default, no renaming of tables/columns, etc.
2. In the same vein, figure out a schema management strategy early. You really don't want your database deployment process to be "senior dev runs some DDL manually on production from his machine". I'm still partial to liquibase because it's the devil I know, but there's other tooling like Flyway which exists.
How is this even a direct comparison? Most companies I know of which use Kubernetes are using it on a cloud provider. Even if it's kubernetes on EC2 rather than hosted e.g. EKS, those companies are also happy to use lock-in services like RDS and S3.
Optional[T] is now T | None. Means exactly the same thing but doesn't require an import. Support for the older syntax presumably won't be removed for a long while regardless.
It is. It's also why Anthropic and Bun moved off Zig.
Zig is effectively a one-man show, and that one man has been making increasingly erratic decisions.
It's his project so it's well within his rights, of course. But when you're a ~trillion dollar company you don't want to get hit by a supply chain risk like this.
For Anthropic, it's better to nip this in the bud rather than invest more into the Zig ecosystem, where there's a demonstrated risk of the not-so-BDFL going off the rails.
For most of the 90s and 00s, your game engine, specifically idTech in this case, was a competitive advantage. Doom and Quake/2/3 all represented massive technological jumps over their predecessors and were way ahead of their competition in terms of looks. Games like Unreal (Tournament) and Tribes competed using their engines' strengths; those engines didn't look as good but were capable of rendering much larger spaces than idTech, and those games emphasized that, e.g. Tribes' massive multiplayer maps with vehicles, or classic UT maps like Facing Worlds and Lava Giant.
Then in the late 00s to 10s, things started to hit a wall. Probably peaking with Crysis in 2007, which is likely more remembered for its engine, graphics, and system requirements (all of which were truly mind-blowing at the time) than its actual gameplay. After that, games' graphics improved at a much slower rate; it started to be less about the engine's capabilities, which were increasingly homogenized, and more about art direction.
Now in the 2020s, we have UE5 for AAA games with high-fidelity graphics and Unity for everything else... what is the competitive advantage in maintaining your own engine? As you mention, you have to have internal expertise, which is less well-documented than UE5/Unity because you don't have dedicated documentation staff; you have to maintain your own tooling, which is likely worse because you haven't invested as much in it. From a ROI perspective, unless you're planning on investing so you can license out the engine and become a UE5/Unity competitor, it doesn't make sense to maintain your own engine.
And looking ahead, frankly, consumer GPUs are now so expensive that game graphics have likely peaked for at least a decade. There will simply not be better hardware available to gamers for the foreseeable future. Games "looking good" will be more about art style and direction, and you sadly do not need a team of game engine programmers for that.
> So first of all, they are big! Secondly they are not at a loss. They just have a "thin, non-growing margin". So to fix all this they are trimming down, so they can "return to growth" (which I think is ridiculous).
How is that profit margin distributed though? King (Candy Crush etc) and Mojang (Minecraft) are specifically called out as money-makers, it's possible that they're carrying the majority of profits while everything else is a dud:
> We have also learned that we are not the best home for every type of studio; in a typical year, we lost 64 cents for every dollar we invested.
As an example, Double Fine (one of the studios being chopped) has released 2 games since 2021, Keeper (191 peak player count on steam) and Kiln (163 peak players); these would be flops even for a normal indie game, for a studio getting Microsoft salaries those are enormous flops.
IMO -- and apparently the opinion of others -- adding an AI-generated picture every single paragraph in your article in which the primary purpose is to, presumably, discuss a topic rather than show off your AI-generated art, is in extremely poor taste. It's distracting, it makes it hard to focus on the text, and to be perfectly blunt, nobody is impressed by your ability to create pictures by AI.
At the current time I'm writing this, all other top-level comments are engaging with the article as if it were sincere. So, yes.
> Especially since the answer to any loudness problem is to simply for the user to turn up the volume.
This isn't quite true as compression addresses differences in volume. Unless you expect the listener to actively turn up the volume during the quiet parts and down during the loud parts of your song, or be listening in a completely quiet environment with nothing but the music so they can appreciate the dynamics--which is the way a lot of vinyl aficionados do listen to music.
At my peak in the mid-00s I remember counting and finding I had just over 500 CDs in my car, almost all of which were MP3s burnt to playable CD-Rs laying in the passenger seat... the good old days. Nice thing about using CD-Rs is you didn't have to care about them getting scratched, either.
Who is your ideal customer profile (look up buyer personas) -- if you're B2B figure out both the profile of the company who would buy, as well as the person who would actually buy, and the person who would actually use the software: remember that buyer != user in B2B scenarios, and you'll have to figure out if the buyer, user or both is the best path to getting a sale. If you're B2C figure out your buyer personas so you know where to advertise.
Why would people want your product; sounds like you may already have this down but be ready to explain your value proposition concisely.
How will these people hear about your product -- a SaaS that falls in the woods doesn't make a sound, you need people to learn your product exists before they can pay for it. This is the point of figuring out buyer personas, you need to meet your customers where they are, and you can't know where they are unless you know who they are. This is highly dependent on your product/personas, and could range from running LinkedIn ads to SEO to having a Bluesky brand account to going to local meetup groups or conferences and trying to get your first handful of users in-person.
Now explain to me why you are allowed to have the things you like which use a lot of water, while other people are not allowed to have the things they like which use a lot of water.
Here it's the same thing--the people protesting don't give a damn about water waste, electricity usage, or wasted land. If they did, there are tons of other offenders who are way worse. But they don't want to outright say they're protesting against AI because it makes them seem like luddites.