I like kotlin SpringBoot apps deployed to k8s. Go apps for custom k8s operators/controllers.
I rebase my dev branches on main to get rid of garbage commit messages due to me being lazy.
Squash and merge PRs into main, no merge commits allowed.
I think there are reasonable arguments for allowing rebase and merge to main, but it often doesn’t apply for me.
Merge commits in main will break a lot of out of the box GitOps tools.
I believe in GitHub branch protection rules, you can set required review by a code owner, as well as set an amount of reviews required.
You are also able to structure codeowner files and assign codeowners to certain paths within the repo that they “own”, rather than all or nothing.
You are able to set bypass rules for certain individuals, and as repo admin there is a little checkbox on PRs that will appear by default to allow you to ignore the requirements, although it is generally not recommended, but I won’t harp on the reasons others have already pointed out.
disclaimer: I mainly work on a GHES instance, which may be function slightly different than public GH