How do you approach writing clean, maintainable code? What is your philosophy on documentation, unit testing, and code reviews?