SENIOR BACKEND ENGINEER - JAVA
Our client is a fully independent, global management and technology consultancy. For 20+ years we have combined innovative thinking with deep industry knowledge to deliver business consulting, digital transformation and technology services to Finance and Energy markets. Our collaborative and efficient approach helps clients reduce costs and manage risk and regulatory change while increasing revenues. We are thinkers, innovators, and disruptors. We are small enough to care but large enough to matter.
The Role
We are looking for engineers who want to play a key part in supporting the evolution of the Financial Services industry one project at a time. You will be expected to be a strong team player who prides themselves on delivering modern, first class cloud based platforms through practicing best in class Agile ways of working at all times.
As a Senior Engineer,??you will:
- Demonstrate practical experience of engineering best practices, while being obsessed with continuous improvement.
- Have deep technical knowledge of two or more technologies and is curious to learn other parts of the stack.
- Have experience delivering software/technology projects leveraging Agile methodologies.
- Have personally made valuable contributions to products, solutions and teams and can articulate the value to customers.
- Have played a role in the delivery of critical business applications and ideally customer facing applications.
- Have the ability to communicate complex ideas to non-experts with eloquence and confidence.
- Have an awareness and understanding of new technologies being used in finance and other industries and loves to experiment. Have a passion for being part of the engineering team that is forming the future of finance.
Skills & Expertise
You will have experience working with??the following??Methodologies/Technologies;
Essentials:
- Excellent knowledge of??Java 8+, Spring Boot, Gradle, Maven,??Mockito, Microservice architecture
- Excellent knowledge of Object-oriented programming and familiarity with functional programming languages
- Excellent understanding of collections and concurrency in Java
- Experience in working with restful APIs
- Good understanding of different databases (Relational and NoSQL)
- Expert knowledge in the unit test, static code analysis and??BDD/TDD
- Experience in continuous integration with Git, Jenkins, Nexus
- Practices Agile methodologies
- Able to do code reviews/ mentor and train junior developers
- Write highly available, maintainable and secure code
- Good understanding of Web and Architectural design patterns
- Great understanding of the Solid Principles, OWASP, CAP Theorem and Distributed??Systems Design
- Stakeholder Management and able to communicate well to all the team members
- Experience with container technologies including Docker / Kubernetes
Desirable:
- Knowledge of Terraform and Event-driven architecture
- Golang
- Participated in redesigning a??monolith system??to a set of??microservices
- Knowledge of serverless functions like AWS Lambda/Azure Functions/GCP functions
- Have experience in Messaging systems (Kafka, RabbitMQ etc.)
- Good understanding of Service Security Protocols (OAuth2, SAML etc.)
- Practical experience on at least one cloud
- Experience in integration with 3rd party applications and vendors
- Experience in integration of QA automation tools