Job Description:
- Contribute to migration and modernization initiatives from legacy Big Data components to the target platform.
- Analyze existing data and service flows to preserve key business outcomes while improving architecture quality and maintainability.
- Design, develop, test, and maintain Java services using strong object-oriented principles and clean coding standards.
- Build and support Spring Boot applications on modern Java runtimes.
- Implement architecture patterns including microservices, layered design, and event-driven communication.
- Write and maintain BDD scenarios and automation using Cucumber and Gherkin.
- Collaborate within Agile Scrum teams through sprint planning, delivery, and continuous improvement cycles.
- Containerize and deploy workloads with Docker, Kubernetes, and OpenShift.
- Contribute to delivery pipelines using GitLab CI/CD and GitOps deployment workflows with ArgoCD.
- Partner with product, architecture, and operations teams to ensure secure, scalable, and reliable delivery.
- Contribute to a collaborative engineering culture focused on quality, documentation, and continuous learning.
Requirements:
Education and experience:
- Bachelor's degree or higher in Computer Science, Software Engineering, or a related technical discipline.
- Proven experience as a Java Developer, including significant hands-on experience in enterprise application development.
- Demonstrated experience in senior-level responsibilities such as technical decision-making, cross-team coordination, and mentoring.
Core required skills and experience:
- Solid experience as a Java Developer with strong object-oriented programming fundamentals.
- Experience and comfort with Domain Driven Design, including bounded contexts, aggregates, entities, value objects and domain models.
- Proficiency in Java Design Patterns (for example: Singleton, Factory, Builder, Observer, Strategy).
- Experience in software architecture design (microservices, layered, event-driven architectures).
- Hands-on experience with the latest JDK and Spring Boot framework.
- Familiarity with Agile and Scrum methodologies and sprint-based delivery.
- Experience with containerization and orchestration tools: Docker, Kubernetes, and OpenShift.
- Working knowledge of databases and storage: MongoDB, PostgreSQL, and AWS S3.
- Experience with GitLab CI/CD pipelines and ArgoCD for GitOps-based deployments.
- Experience writing and maintaining BDD (Behavior-Driven Development) tests (for example: Cucumber, Gherkin).
Engineering and delivery expectations:
- Strong ability to translate functional requirements into scalable, maintainable technical solutions.
- Solid understanding of secure coding principles, resiliency patterns, and production-readiness practices.
- Experience performing code reviews, driving coding standards, and improving overall software quality.
- Ability to diagnose and resolve complex issues across development, integration, and production environments.
- Practical experience balancing delivery speed, technical debt, and long-term maintainability.
Domain knowledge (advantageous):
- Experience or exposure to the payments, finance, or banking domain is a strong plus.
Nice to have:
- Familiarity with Big Data technologies (for example: Spark, Kafka, Hadoop, or similar).
- Demonstrated ability to integrate AI tools into daily development workflows improve productivity, code quality, and documentation.