Position: Senior Java Developer (Credit Risk), Turkey
Company: Luxoft
Category: C++
Experience required: 5y
English level: upper

**Responsibilities**
• Design and implement new functionalities on the need basis
• Under the guidance of a Development Team Leader, work directly with allocated Project Managers, Business Analysts and external IT and business teams to implement change requests and new features
• Take responsibility for changes that go through multiple tiers from the browser through to the back-end databases by collaborating with other developers
• Utilize standards, architectures, and processes to ensure that all code and development practices conform to company guidelines and industry best practices
• Participate in all aspects of the project lifecycle, following stringent rules and procedures for testing and promoting code in compliance with company change control processes
• Show ability to be an effective team member working closely with colleagues from multiple teams and disciplines, bringing benefit to the team.
• Excellent verbal and written communication.

**Skills
Must have**

1. 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**

1. 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)
13. Knowledge of Docker, Kubernetes, Openshift

**Languages**
English: B2 Upper Intermediate
**
Seniority**
Senior