We're looking for a Senior Java Software Engineer to architect, construct, and maintain scalable backend services and integrations, occasionally lending support to a modern Angular/TypeScript web front end. The role involves advocating for engineering best practices, assisting with delivery planning, and leveraging AI-assisted engineering through Microsoft Copilot to enhance speed and quality, with foundational AI architecture knowledge to contribute to AI-enabled features and system design decisions. Responsibilities Design, develop, and maintain backend services in Java (8+) using Spring Boot/Spring ecosystem and/or Quarkus Design and evolve RESTful APIs, including contracts, versioning, documentation, performance, and backward compatibility Implement persistence and data access using JPA/Hibernate (or Panache) with Microsoft SQL Server Build and support integration flows using Apache Camel, including routing, transformation, retries, error handling, and monitoring Apply microservices best practices including service boundaries, resiliency patterns, and operational readiness Contribute to CI/CD pipelines and release processes using Git and Azure DevOps Use Microsoft Copilot daily for implementation support, refactoring, test generation, and documentation, validating results through reviews and automated tests Participate in solution design discussions involving AI-enabled capabilities, bringing practical knowledge of LLM integration basics, grounding concepts, and risk considerations Provide occasional UI support in Angular/TypeScript, including small fixes, minor enhancements, and debugging API/UI interactions Support application operation in AWS-based environments, with basic awareness of IAM, logging, and monitoring Troubleshoot production and non-production issues, perform root-cause analysis, and implement sustainable fixes Collaborate with the team on delivery planning, estimation, and progress tracking, actively contributing in Agile ceremonies Mentor team members through code reviews, pairing, and knowledge sharing to improve engineering practices and consistency Requirements 5+ years of professional Java development experience, including prior experience in a similar senior engineer role within the Banking sector Proficient in Java 8+, with strong OOP skills, design patterns, and clean code practices Expert-level knowledge of Spring Boot, Spring MVC, Spring Data and/or Quarkus Skilled in RESTful APIs, JPA/Hibernate (or Panache), and Maven Knowledgeable in SQL and Microsoft SQL Server Experienced with Apache Camel Familiar with Git, Azure DevOps, and microservices architecture Understands CI/CD pipelines and DevOps practices Able to work with Angular and TypeScript fundamentals, including reading, debugging, and implementing small changes Competent in unit testing using JUnit and Mockito Possesses strong problem-solving, analytical, and communication skills, along with a proactive attitude and ability to work independently Has a good command of written and spoken Greek and English Nice to have Familiar with Docker/Kubernetes Knowledgeable in cloud platforms such as Azure, AWS, or GCP Experienced with Elastic Stack (ELK)