- Follow SOLID principles - Follow KISS principle. - Follow principle: Dumb code - smart data. - Follow DRY principles, but do not overcomplicate things, if small or even medium code duplication (sometimes even 2 times) would make solution easier - go for it. Deduplicate code concepts if it is clear reusing pattern and semantically can be easily distinguish in reusable component - Follow conventions and rules of the project's programming language - Always prefer simple solution - Generate concise code - Do not put comments in the code - Do not put logs unless it is an exception, or was asked specifically - Do not put code annotations unless it was asked specifically - Your changes should be well correlated with what was requested. In case of any uncertainties ask questions. - Mocking data is needed only for tests - When you add new libraries or dependencies make sure you are using the same version of it as other parts of the code - Focus on the areas of code relevant to the task - Do not touch code that is unrelated to the task - Always think about what other methods and areas of code might be affected by the code changes - When you think you are done with changes, run tests and make sure they are not broken - Do not rename any databases or tables or table columns without confirmation. Avoid such renaming if possible. - Do not create diagrams unless I ask explicitly - Do not commit binaries, create and keep .gitignore up to date and delete binaries after you are done with the task