Main responsibilities
- Able to lead in terms of technology and conceptualize, propose design and architectural evolution.
- Contributing to development of high quality fully tested source code complying with deadlines, schedule and coding standards.
- Liaise with business analysts for clarification and understanding of requirements.
- Organize and keep up to date detailed technical documentation
- Develop tests strategy in coordination with project manager / Business Analysts
- Provide technical assistance during user acceptance test
- Support applications in production - analyze and resolve issues as they arise as well as propose optimizations for future.
Qualifications and Profile
The successful candidate will definitely have:
- At least 6 years of software development experience
- At least 5 years’ experience working with Java.
- Strong knowledge on various design patterns
- 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
- Experience in cloud native architecture.
An ideal candidate will also have expertise in some or all of the following:
- Jenkins and Ansible with exposure to devops culture
- Jira or a similar issue-tracking system
- The Spring framework and IoC, and particularly Spring Boot and Swagger for restful web services
- Messaging technology such as kafka, MQ
Additionally, knowledge of the following would be helpful although it is not required:
- Web development fundamentals (HTML, Javascript, jQuery, ReactJS, etc)
- Docker/Kubernetes, Microservices
- ElasticSearch
- General knowledge and understanding of investment banking domain, capital market FO/BO environment is an advantage
- Understanding or interest in finance & financial markets, particularly interest rate derivatives in their many forms (Forwards, Futures, Swaps, Swaptions, etc)
Other Professional Skills and Mindset
- Excellent written and verbal communication skills for both team mates and management
- Strong analytical and problem solving skills
- Proficient software development life cycle
- Appetite to follow technology trend and participate to communities
- Passion for sharing expertise and grow team members’s skills
- Interest in mentoring and guiding junior team members on the path of high quality deliverables.
Education Requirements
At least a Bachelor’s degree in any of these faculties:
- Computer Science
- Information Technology
- Programming & Systems Analysis
- Science (Computer Studies)