I like to develop clean code, but I also need to deliver on time. So sometimes I'm struggling and the final product is more important than my perfectionism.
However, I do evaluate on myself and if I need to solve the problem again, I make sure to create a snippet or some kind of package, so next time I don't have to write myself out of that problem once again.
No it's impossible to write clean and perfect code all the time if you want to make a business. But as long as it's maintainable and performing, then you are good. You should adapt a habit of coding for refactoring, meaning you only solve your specific issue but you structure allows you to easily refactor it later when new requirements appear.