This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
The Applications Development Intermediate Programmer Analyst is an intermediate level position responsible for participation in the establishment and implementation of new or revised application systems and programs in coordination with the Technology team. The overall objective of this role is to contribute to applications systems analysis and programming activities. We are looking for a highly skilled and experienced Senior Java Developer to join our engineering team. The ideal candidate will be responsible for designing, developing, and maintaining high-performance, scalable, and resilient applications using modern Java technologies. This role requires strong technical expertise, a passion for problem-solving, and the ability to contribute significantly to our product development lifecycle, from concept to deployment. The Senior Java Developer will also mentor junior team members and contribute to architectural discussions.
Job Responsibility:
Utilize knowledge of applications development procedures and concepts, and basic knowledge of other technical areas to identify and define necessary system enhancements, including using script tools and analyzing/interpreting code
Consult with users, clients, and other technology groups on issues, and recommend programming solutions, install, and support customer exposure systems
Apply fundamental knowledge of programming languages for design specifications
Analyze applications to identify vulnerabilities and security issues, as well as conduct testing and debugging
Serve as advisor or coach to new or lower level analysts
Identify problems, analyze information, and make evaluative judgements to recommend and implement solutions
Resolve issues by identifying and selecting solutions through the applications of acquired technical experience and guided by precedents
Has the ability to operate with a limited level of direct supervision
Can exercise independence of judgement and autonomy
Acts as SME to senior stakeholders and /or other team members
Appropriately assess risk when business decisions are made, demonstrating particular consideration for the firm's reputation and safeguarding Citigroup, its clients and assets, by driving compliance with applicable laws, rules and regulations, adhering to Policy, applying sound ethical judgment regarding personal behavior, conduct and business practices, and escalating, managing and reporting control issues with transparency
Design, develop, and maintain robust, scalable, and high-performance backend applications and services using Java and the Spring ecosystem (Spring Boot, Spring Framework)
Write clean, efficient, well-documented, and testable code following best practices and design patterns
Collaborate with product owners, architects, and other developers to understand requirements, define technical specifications, and deliver innovative solutions
Participate in all phases of the software development lifecycle, including analysis, design, development, testing, deployment, and support
Optimize application performance, identify bottlenecks, and implement solutions to ensure high availability and responsiveness
Conduct code reviews, provide constructive feedback, and ensure adherence to coding standards and architectural guidelines
Troubleshoot and debug complex issues in development and production environments
Mentor junior developers, share knowledge, and contribute to a culture of continuous learning and improvement
Stay up-to-date with emerging technologies, industry trends, and best practices in Java development and software engineering
Requirements:
5+ years of relevant experience in the Financial Service industry
Intermediate level experience in Applications Development role
Consistently demonstrates clear and concise written and verbal communication
Demonstrated problem-solving and decision-making skills
Ability to work under pressure and manage deadlines or unexpected changes in expectations or requirements
Bachelor’s degree/University degree or equivalent experience
5+ years of professional experience in Java development
Strong expertise in Core Java, including multithreading, data structures, algorithms, and object-oriented design principles
Extensive experience with Spring Framework and Spring Boot for building microservices and RESTful APIs
Hands on ReactJS working experience. Building SPA and Micro front end experience will be a plus
Solid understanding and hands-on experience with relational databases (e.g., PostgreSQL, Oracle, MySQL, SQL Server), including advanced SQL, schema design, and ORM frameworks (e.g., Hibernate, JPA)
Experience with building and consuming RESTful web services
Proficiency with build tools such as Maven or Gradle
Experience with version control systems, particularly Git
Familiarity with Agile development methodologies (Scrum, Kanban)
Strong problem-solving skills, attention to detail, and ability to work independently and as part of a team
Excellent communication skills, both written and verbal
Nice to have:
Experience with NoSQL databases (e.g., MongoDB, Cassandra, Redis)
Familiarity with cloud platforms (e.g., AWS, Azure, GCP) and containerization technologies (e.g., Docker, Kubernetes)
Experience with message brokers (e.g., Kafka, RabbitMQ)
Knowledge of testing frameworks (e.g., JUnit, Mockito) and experience with Test-Driven Development (TDD)
Understanding of CI/CD pipelines and tools (e.g., Jenkins, GitLab CI, GitHub Actions)
Experience with performance tuning and optimization of Java applications
Familiarity with front-end technologies (e.g., JavaScript, React, Angular) is a plus, but not required for this backend-focused role