Responsibilities
- Able to lead in terms of technology and propose design and architectural evolutions.
- Contributing to the development of high-quality, fully tested source code that complies with deadlines, schedules, and coding standards.
- Liaise with business analysts for clarification and understanding of requirements.
- Organize and keep up-to-date detailed technical documentation.
- Develop testing strategies in coordination with the project manager / Business Analysts.
- Provide technical assistance during user acceptance testing.
- Support applications in production by analyzing and resolving issues as they arise.
Qualifications and Profile
The successful candidate will have:
- At least 12 years of software development experience.
- At least 8 years’ experience working with Java.
- A strong understanding of recent Java language features, such as lambdas, streams, and futures.
- Good knowledge of algorithms and data structures, with strong fundamentals in complexity analysis.
- Strong ability to analyze code – understand execution flow & debug even without access to a debugger.
- Experience with Maven, Git, writing and maintaining integration tests.
- Strong familiarity with Linux and bash.
- Good knowledge of SQL or an SQL-inspired dialect such as HQL.
Additional expertise that is desirable includes:
- Jenkins and Ansible with exposure to devops culture.
- Jira or similar issue-tracking systems.
- The Spring framework, IoC, Spring Boot, and Swagger for RESTful web services.
- Messaging technologies such as Kafka, MQ.
Knowledge that would be helpful but not required includes:
- Web development fundamentals (HTML, Javascript, jQuery, ReactJS, etc.).
- Docker/Kubernetes, Microservices.
- ElasticSearch.
- Understanding of investment banking domain, capital market FO/BO environment.
- Interest in finance & financial markets, especially interest rate derivatives (Forwards, Futures, Swaps, Swaptions, etc.).