
The pre-commit Playbook
One of the core ideas behind DevOps is "shifting left." That means moving critical checks, testing, and feedback earlier in the software development lifecycle. Pre-Commit takes that "shift left" principle and gives it teeth. By running automated checks before code gets committed, it helps teams enforce consistency, spot bugs early, and maintain high standards. Check it out:

A Surprising Secret About Python Linters
It sounds crazy: you run your linter, fix the issues, run it again… and suddenly it finds more issues. Wait, what?
Yes, it’s a real thing. Depending on the complexity of your code and the tools you’re using, sometimes one pass isn’t enough to get a clean bill of health. But don’t worry, there’s a simple fix: run your linters twice!

How to Keep Your Python Code Standard
If you've opened a Python file only to find cryptic code, you already know why “standard Python” matters. But what is standard Python? Who decides what counts as “standard”? And how can you set and enforce engineering standards for your team around standard Python? Let’s talk standards, and why they can help you and your team.

Why Your Team Needs pre-commit
It’s easy to overlook pre-commit when you’re already using GitHub and have a continuous integration pipeline. Why add complexity? In fact, when used well, pre-commit can be the simplest and most effective way to eliminate bugs, style issues, and config drift before they even enter your Git history. pre-commit helps shift quality left, right into your fingertips as you write and commit code.

Why Linters Hate Unused Imports
If you’ve been writing Python code for long, you’ve run into one of the many tools that want to clean up your files. And you’ve probably noticed that they all want to delete unused imports. This might seem a little nitpicky, but there are good reasons to nuke unused imports. And while it starts with clean code, the reasons don’t end there.