The AI stuff is cool, but the unlock for consistently improved developer experience and productivity has been the consistent use of linters, formatters, type checking, strict commit messages, and automated releases, and change logs.<p>Having all that in place really changes my attitude from "playground on my machine" to "put my name on it and ship it." -- it makes me proud.<p>I'm heavy on python, so there are a few "aftermarket" bolt-ons:<p>- ruff for linting and formatting
- flit for package management (will experiment with uv in the coming days)
- commitizen for commit formatting
- pyright for type checking (but not for Django projects)
- pycharm is where all the magic happens
- pre-commit for commit hooks and final checks before it get shared to the repo<p>I don't mention all the CI/CD stuff here because that is a separate thing.<p>Building up this stack took a while to onboard into. Taking it on all at once would be overwhelming and leave me bewildered.<p>It is nice to have claude or chatGPT around to have around for going into the weeds. However, "trust but verify" -- these LLMs will hallucinate, so you should check the original documentation.<p>The overall impact has been that I now use template repos where I can spin up a production-ready codebase with all the fixins. Not only that -- it is also ready for others to consume in a predicable fashion.<p>I still need to write docs, use cases, and things like that. But having this in place give me the opportunity to run faster, ship faster, and revisit old work with a confidence that was not there before.