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 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:
Utilize knowledge of applications development procedures and concepts, and basic knowledge of other technical areas to identify and define necessary system enhancements
Identify and analyze issues, make recommendations, and implement solutions
Utilize knowledge of business processes, system processes, and industry standards to solve complex issues
Analyze information and make evaluative judgements to recommend solutions and improvements
Conduct testing and debugging, utilize script tools, and write basic code for design specifications
Assess applicability of similar experiences and evaluate options under circumstances not covered by procedures
Develop working knowledge of Citi’s information systems, procedures, standards, client server application development, network operations, database administration, systems administration, data center operations, and PC-based applications
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
Requirements:
2-5 years of relevant experience
Strong Java Fundamentals: Solid understanding of Java SE concepts, including object-oriented programming, collections, exception handling, and basic multi-threading
Object-Oriented Design (OOD): Ability to apply OOD principles and common design patterns to write clean, modular, and maintainable code
Problem-Solving with Algorithms & Data Structures: Good grasp of fundamental algorithms and data structures, and the ability to apply them to solve practical programming problems
Frameworks: Solid experience with Java frameworks, primarily Spring Boot, for developing robust and scalable back-end services. Familiarity with Spring MVC, Spring Data JPA, and Spring Security
RESTful APIs: Proven ability to develop and implement RESTful APIs, understanding of HTTP methods, status codes, and basic API design principles. Experience in consuming third-party APIs
Database Technologies: Proficiency in working with relational databases (e.g., PostgreSQL, MySQL, Oracle), including writing SQL queries, understanding database schemas, and using ORM frameworks like Hibernate/JPA
Basic Messaging/Caching: Familiarity with concepts of asynchronous messaging (e.g., Kafka, RabbitMQ) and caching mechanisms (e.g., Redis) to enhance application performance and scalability
Modern JavaScript Frameworks: Good proficiency in at least one modern JavaScript framework/library such as Angular, React, or Vue.js. This includes component development, state management, and interaction with RESTful APIs
HTML5, CSS3, & Responsive Design: Solid understanding of web markup, styling (e.g., Sass, Less), and building responsive user interfaces
Build Tools & Package Managers: Familiarity with front-end build tools (e.g., Webpack) and package managers (npm, Yarn)
CI/CD: Understanding of Continuous Integration/Continuous Deployment principles and ability to work effectively within established CI/CD pipelines
Containerization: Basic understanding of Docker and its role in application deployment
Cloud Platforms: Familiarity with cloud concepts and experience deploying applications to cloud environments (e.g., AWS, Azure, GCP)
Monitoring & Logging: Ability to use logging frameworks and contribute to monitoring application health and performance
Unit & Integration Testing: Strong practice of writing unit tests (e.g., JUnit, Mockito) and integration tests for both front-end and back-end components
Code Quality: Adherence to coding standards, participation in code reviews, and familiarity with static code analysis tools
Effective Problem Solving: Ability to diagnose and resolve technical issues independently or with minimal guidance
Analytical Skills: Strong analytical skills to understand complex requirements and translate them into technical solutions
Team Player: Excellent collaboration skills, working effectively within a development team, sharing knowledge, and actively participating in discussions
Communication: Clear and concise verbal and written communication, capable of articulating technical issues and solutions to team members and other stakeholders
Code Review Participation: Actively participating in code reviews, providing constructive feedback, and incorporating feedback from others
Accountability: Taking ownership of tasks and delivering high-quality work within project timelines
Self-Management: Ability to manage workload, prioritize tasks, and work efficiently in an Agile environment
Continuous Learning: Proactive in learning new technologies, tools, and best practices to stay current in the rapidly evolving tech landscape
Agile Proficiency: Solid understanding and experience working within Agile development methodologies (Scrum, Kanban)
Bachelor’s degree/University degree or equivalent experience