Responsibilities
- Design and implement software solutions based on standard design and architecture patterns for user requirements.
- Document the design and implementation steps accurately, review with business analysts, development, and QA teams.
- Collaborate with product, project management, and QA team in requirements analysis, solution design, providing development work estimates and project status.
- Assist in developing and ensure complete functional and non-functional specifications.
- Collaborate with other internal teams to translate business requirements into technical implementation for the automation of existing processes and the development of new applications.
- Understand complex business logic in existing systems and transition it to new technologies and systems.
- Work with system operations, database administration and systems engineering teams in production support and defining system recovery procedures.
- Identify root causes and develop solutions for program failures.
- Plan and execute unit tests to ensure the developed code is free of functional defects.
- Collaborate with business analysts and QA analysts in the design and execution of business feature, regression, and integration testing.
- Work closely with Performance Test team to identify performance hotspots and in providing timely resolution during load tests.
- Work in an agile and continuous integration environment with a command of SDLC tools.
Knowledge and Experience
- Bachelor’s in computer science or software/computer engineering (or equivalent) required
- 5+ years of experience developing low latency, high-performance transactional software systems and components using standard Enterprise Integration Patterns and design principles
- A deep knowledge of:
- Java 8+
- OOD, Design Patterns
- Distributed messaging, JMS
- Spring and its frameworks like Spring Boot, Spring MVC, Spring Data
- Multi-threaded server-side development
- Experience applying continuous improvement tools and agile development methods to enhance and evolve complex systems driven by business needs
- Strong written and verbal communication skills
- Ability to multitask and work independently on multiple projects
- Demonstrable skills in production support and root cause analysis
- Experience with Oracle PL/SQL and Database Technologies (Hibernate, JPA, Spring Data)
Preferred
- Exposure to the financial services technologies domain
- Working knowledge with shell scripts and CLI in Linux
- Experience developing Web UI using Javascript based frameworks like React/JS
- Experience in developing micro-services in container-based Kubernetes platforms (OpenShift, Tanzu)
- Experience developing data processing pipelines using distributed compute principles and open source frameworks