You feel like a shitty coder when your program is a complete mess, but it does its job!
You feel like a shitty coder when you spend an entire day provisioning your ec2 instance
and you realize "its all about security groups"
You feel like a shitty coder when you say "I have never touched this code"
but git blame states the opposite
You feel like a shitty coder when somebody pushes a ton of commits
and you need git bisect to figure out where things break
You feel like a shitty coder when you say: "it worked on my machine"
You feel like a shitty coder when you mess up a git rebase,
force push to master and apologize to your colleagues
You feel like a shitty coder when you push changes before leaving the office
and you break the continuous integration
You feel like a shitty coder when your manager
tells you to do your work "quick and dirty"
You feel like a shitty coder when you do a huge refactoring
and one of your colleagues destroys everything the very day after
You feel like a shitty coder when you don't refactor a chain of ifs
because you know nobody will appreciate it
You feel like a shitty coder when you git pull --rebase
instead of git rebase
You feel like a shitty coder when somebody breaks an interface
and you say: "I won't touch this shit"
You feel like a shitty coder when spend a whole day writing a
failing UI test
You feel like a shitty coder when you approve a pull request
even when the CI fails
You feel like a shitty coder when you spent the last two days on a bug
due to duplicated code not consistently changed