## Working method _Methods I employ to deliver elegant, efficient, readable, understandable and maintainable code that adds value to a company and/or product._ - "Always choose the best tool for the job" - Cloud and application structure using [The Twelve-Factor App](https://12factor.net/) - Software architecture via a simplified version of the principles of [The Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html), [DDD](https://en.wikipedia.org/wiki/Domain-driven_design) and [Layered Architecture](https://en.wikipedia.org/wiki/Multitier_architecture). - Prevention of [technical debt](https://en.wikipedia.org/wiki/Technical_debt), short term and long term - Everything (even [infrastructure as code](https://en.wikipedia.org/wiki/Infrastructure_as_code)) in version control (Git/Perforce) - Project management via SCRUM/Agile principle, without unnecessary meetings - Bringing together Development, Security and Operations through [DevSecOps](https://www.devsecops.org/) and [secure by design](https://en.wikipedia.org/wiki/Secure_by_design). - Test-Driven Development (TDD) of domain logic where it makes sense - Versioning according to [Semantic Versioning](https://semver.org/) - Adhere to the [ACM Code of Ethics](https://www.acm.org/code-of-ethics) - Use of free (open-source) software where possible, contributing when possible