This is the new challenge. Every vibecoder is larping as a SWE and rewriting systems left and right when all they need is a new feature or two. 6000 line PRs that could be 60. The challenge in the current era is evolving existing systems to ensure they meet previous requirements in terms of capabilities and performance. This is the new role of the SWE. Same as the old role, but with less typing.
Can't fully enforce that one, but I require only my specific HTTP router / SQL library to be used, and disallow the import of express / pg libraries via eslint. I also disable the use of JSON.parse via eslint. Combined with strong language in the CLAUDE.md, I haven't seen it get around my guard rails.
I've been having good luck with fairly autonomous LLM coding with the following rules:
* TypeScript everywhere with extreme enforcement of the type system.
* No "as" casts, no "any" declarations, all code must understand the shape of its data
* All boundaries validated using a typed validation library. Many use zod, I prefer tjs. I also have strictly typed pg and express wrappers.
* No files longer than 300 lines
* All of these rules are enforced by an eslint configuration that runs in a pre commit hook.
Global state and classes could also be removed via eslint rules, that would be interesting, though I haven't found it to be an issue in practice once the types are strictly enforced.
Saying that becoming an EM is "moving away from tech" is crazy. As an EM you will be steeped in tech, just as you would be as an IC. It just may not be the tech you want to be steeped in. Again, same as an IC. In either case, unless you are working in AI, you will need to "play" with things like OpenClaw in your spare time.
The real reason not to become an EM in 2026 is because AI makes our jobs 10x harder.
Nope! The summary is presented to the user via a link and once the user follows the link and approves, the action is implemented entirely outside of the agent, on a separate server.
I've created my own "claw" running in fly.io with a pattern that seems to work well. I have MCP tools for actions that I want to ensure human-in-the loop - email sending, slack message sending, etc. I call these "activities". The only way for my claw to execute these commands is to create an activity which generates a link with the summary of the acitvity for me to approve.
I built TJS over my holiday as a way to experiment and get better at agentic coding. I was astounded at how quickly software can be built when you have a full test spec like JSON Schema has.
The thing I'm most proud of is the TypeScript type inference. It automatically deduces the types from the JSON Schema. Try it out in the playground to see what I mean! https://sberan.github.io/tjs/#playground
I used similar techniques to build tjs [1] - the worlds fastest and most accurate json schema validator, with magical TypeScript types. I learned a lot about autonomous programming. I found a similar "planner/delegate" pattern to work really well, with the use of git subtrees to fan out work [2].
I think any large piece of software with well established standards and test suites will be able to be quickly rewritten and optimized by coding agents.
Not correct: A share is a contract issued by the corporation entitling its owner to a share of future profits. So you're not buying a corporation, just engaging in a contract with it.
I hate Citizens United as much as the next guy, but this isn't a good argument against it.
I used to think prayer was really dumb too, but then I started practicing Metta meditation created by Buddhists, and I realized it's very similar to Christian prayer. The power of Metta and prayer is actually the change it makes in the one praying. Wishing well for others improves one's whole outlook and posture in the world.
The "official" way to pray outlined in the Lord's prayer isn't selfish (other than asking to have enough food to get through the day), and is asking for redemption / forgiveness rather than specific goodies. This is the right way to do it.
The problem is that TypeScript is terrible at codegen, there are no standard extension points like we have with javac and others. So we are forced to do these crazy hacks at the type level rather than just generating types as you would in other languages.
This is what happened to me in middle school. I wrote a bunch of programs to “help” me with algebra II tests and ended up inadvertently learning an insanely marketable skill in the process.