5+ years of programming experience
2. Proven Credit Risk background
3. A track record of using object-oriented programming techniques
4. An applied understanding of the full software development lifecycle
5. Solid experience in Java development
6. Hands-on experience with Java 8+
7. Expertise in concurrency and multithreading
8. A strong knowledge of Spring and multi-tier architecture
9. A solid understanding of standard change control policies and procedures and experience working in an IT environment with rigorous change control procedures
10. Excellent organizational, problem-solving, and written/verbal communication skills
11. Fluent English both written and spoken
Nice-to-Have Skills:
Clean Code and design principles (Patterns, Cohesion, Coupling, DDD, CQS/CQRS, SOLID)
2. Writing efficient unit, contract, and integration tests, BDD
3. Optimization techniques (caching mechanisms, multithreading, writing efficient JPQL/native queries, understanding indices: clustered vs non-clustered)
4. Experience developing and working with RESTful APIs (using correct HTTP request methods & status codes, Swagger, versioning, HATEOAS)
5. Experience developing microservices (resiliency, eventual consistency, synchronous/asynchronous communication, monitoring)
6. Experience with all phases of the systems development lifecycle
7. Understanding business/application logic
8. Good communication skills
9. Knowledge of agile techniques
10. TeamCity or other CI server
11. Unix/Linux shell basics
12. Security (SHA-2 certificates, HTTPS/SSL)