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 Senior 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.
Job Responsibility
Collaborate with Technical lead to design, develop, and maintain software applications using Java, Spring, and Angular
Monitor and control all phases of development process and analysis, design, construction, testing, and implementation as well as provide user and operational support on applications to business users
Recommend and develop security measures in post implementation analysis of business usage to ensure successful system design and functionality
Develop common, reusable components and services, adhering to Citi’s best practices
Design and develop high-performance, low-latency applications within existing Citi frameworks
Ensure the reliability, scalability, and performance of developed components
Adopt an engineering mindset, thoroughly understanding use-cases, estimating volume and compute velocity requirements, and openly discussing implementation challenges and solutions
Actively contribute to system design and architectural decisions
Evaluate new strategic initiatives through Proof-of-Concepts (POCs) and transition successful concepts into robust, industrial-grade solutions
Provide post-release support to business, development, and support teams
Develop applications adhering to best practices, including Test-Driven Development (TDD), high unit test coverage, and Continuous Integration (CI)
Requirements
5-10 years of relevant experience in Requirement, analysis, Software programming, development, and Deployment of software applications
Experience in managing and implementing successful projects
Working knowledge of consulting/project management techniques/methods
Ability to work under pressure and manage deadlines or unexpected changes in expectations or requirements
Modern Java Technologies: Core Java, Java EE, Spring Boot, Spring Microservices
Programming Principles: Strong understanding of OOPS (Object-Oriented Programming), Data Structures, and Algorithms
Solution Design: Extensive experience in designing and developing integrated solutions with non-functional requirements (scalability, availability, consistency)
Coding & Troubleshooting: Expertise in problem-solving and troubleshooting, ability to write "clean code" using Core Java, J2EE, Collections, and Multithreading
API Development: Proficiency in API and Web Services development using REST protocols
Front-end Technologies: Experience in ReactJS or AngularJS and basic front-end technologies: HTML5, CSS3, JavaScript (ES6+)
Messaging Platforms: Experience with High-Speed Messaging platforms, particularly Kafka
Hands-on experience with database technologies, including RDBMS (e.g., Oracle) and NoSQL (e.g., MongoDB)
Testing: Strong experience in Unit testing and ensuring test coverage
Cloud Platforms: Solid understanding of Docker and Kubernetes
API Documentation: Experience using Swagger/OpenAPI to define, document, implement, and test APIs
Design Patterns: Familiarity with Standard and Enterprise Design Patterns
Databases: Advanced knowledge of Relational Databases, SQL, and ORM technologies (JPA2, Hibernate)
Security: Expertise in Authentication, Authorization, and security protocols
CI/CD: Experience with Continuous Integration / Continuous Delivery (CI/CD) tools
Communication: Proven ability to communicate effectively both verbally and in writing
AI/ML/LLMs: Knowledge of AI/ML, LLMs (including Spring AI)
Bachelor’s degree/University degree or equivalent experience