Job responsibilities
- Executes creative software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Develops secure high-quality production code, and reviews and debugs code written by others
- Experience with Java/J2EE with a deep understanding of the language and core API's, web services, multi-threaded/concurrent programming, XML, design patterns, Service Oriented Architecture
- Leads evaluation sessions with external vendors, startups, and internal teams to drive outcomes-oriented probing of architectural designs, technical credentials, and applicability for use within existing systems and information architecture
- Experience with REST/JSON/XML Web APIs Development experience.
- Experience with Spring MVC, Spring Data, Spring Security
- Testing frameworks – Cucumber, Selenium, Junit. Must have practical experience with unit testing including deep understanding of Mock Testing Frameworks like EasyMock or Mockito
- Experience in implementation of enterprise systems using DDD, SAGA/CQRS patterns. Working proficiency in using frameworks such as Axon
- Experience in implementing Micro services using Spring Boot and Event Driven architecture.
Required qualifications, capabilities, and skills
- Formal training or certification on Java and related technologies concepts and 5+ years applied experience
- Hands on experience of the technologies like Java 11/17, Spring/Spring Boot, Kafka, Relational/Non-Relational Databases like (Oracle, Cassandra, Dynamo, Postgres)
- Hands-on practical experience delivering system design, application development, testing, and operational stability
- create medium/large sized Java web applications from start to finish on their own. This includes but is not limited to the following: client interaction, validating requirements, system design, frontend/U development, interaction with a Java EE application server, web services, experience with the various Java EE APIs, development builds, application deployments, integration/enterprise testing, and support of applications within a production environment.
- Proficiency in automation and continuous delivery methods
- Proficient in all aspects of the Software Development Life Cycle
- Advanced understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
- Demonstrated proficiency in software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
- In-depth knowledge of the financial services industry and their IT systems
- Practical cloud native experience
Preferred qualifications, capabilities, and skills
- Big data technologies (Kafka, Spark, Storm, Hadoop, HDFS, Solr)
- Familiarity with UI technologies (JQuery, ReactJS, Bootstrap, etc)