1,894 karma · joined March 14, 2020
First, the “OMG I’ve always been a builder, I’m having so much fun”. Yeah, building hobby projects. They’re called a hobby for a reason, they are not means to sustain yourself or your loved ones, particularly when the guy next to you can spin up an AI agent and ask “build me this”.
Then the “coding was never the hard part/where I spent most of my time, engineering is still hard”. Yeah, maybe it still is, but for how long? 2 years? 3?
Both strike me as naive and myopic, but I really wish I’m the one who’s wrong.
- just because it doesn’t help 99.9% of the companies today it doesn’t mean it won’t help them tomorrow
- 0.01% of the companies employ a much bigger percentage of people
- 99.9% of companies won’t need to do a project of this magnitude
That’s peanuts, if not the shells of the peanuts, for a project and company of this magnitude
To be honest if you're using JSON at any point in your stack you have the same issue.
zod can't be a dev only dependency, and you have to deal with breaking changes and maybe switching to a completely different library in a few years (joi, with a syntax very similar to zod's, was very popular a while ago too).
So I just define my types and then use typescript-json-schema or similar to build a JSON Schema at build time (i.e. from an npm script) which then I use to validate input using ajv.
The only thing I do on top of that is to use annotations like "@minimum 0" (or, in the email example, "@format email") where the base types are not enough, but those simply go inside comments.
So the compiled package only has ajv as runtime dependency (which you're likely to have anyway, as it's everywhere), you're just defining regular types with some annotations on top and use a dev dependency to build you the JSON Schema. And as popular as zod is, I think JSON Schema is more of a standard and likely to stay with us longer.
I also reference those generated JSON Schemas from my OpenAPI definition, as a bonus.
Even the choice of programming language matters, e.g. Java or Javascript vs some niche one.
From Crichton's book Jurassic Park, which like most of his books is about the perils of technological advancements.
They used the quote in the movie, slightly tweaked.
If you ask it with a prompt that leaves room for criticism it’ll definitely go for it when warranted.
If the client sends the same key but a different payload that’s a 400 or 409 in my eyes.
I wonder if there’s something off the shelf that does this?
E.g. if I have some ElasticSearch cluster, I use a skill to describe the data, and if I ask the LLM to write code that queries ElasticSearch but to test it first it can use a combination of skill + MCP to actually run a query.
I think this model works nicely.