| Job Description Ability to write code that is based on optimal algorithms, with excellent readability, maintainability and extensibility. Good ability to incorporate object-oriented programming best practices along with proper exception handling, logging, unit testing and error checking. Ability to follow and apply common design patterns |