Core Java Developer
Citi
About the Role
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.
Key Responsibilities
- Experience in writing common services/libraries/toolkits that are used by other applications.
- Expertise in design, development, performance tuning, troubleshooting, and deployment.
Requirements & Tech Stack
- Core Java
- Multithreading
- Data structures
- Algorithms
- Annotations
- Generics
- Dependency Injection using Spring/Google Guice
- AOP
- Data/Java Bean validation
- In-memory Java object caching
- NoSQL DB handling in Java, specifically MongoDB
- XML and document handling in Java
- Messaging JMS
- ORM in Java (Hibernate/ iBatis etc.)
- JSON – Formats and Parsers
- Batch/Scheduling frameworks (Spring Batch, Quartz)
- Unit testing – Junit, jmock/mockito
- Hands-on knowledge of Linux/Unix
- Familiar with standard SDLC and Agile processes
- Familiar with OOAD, UML, TDD, DDD
- Experience in Micro Services
- Experience with Containers such as Dockers
- Experience with Cloud platforms like AWS, Google Cloud
- Ability to prioritize and manage schedules under tight, fixed deadlines.
- Ability to produce professional, technically-sound solutions.
- Strong writing, communication, time-management, decision-making, and basic task organization skills.
Qualifications
- Bachelor’s degree in Computer Science, Information Technology, or related field preferred.


