Java Developer
Citi
About the Role
- Support the development and enhancement of applications while ensuring alignment with business and technical requirements.
- Participate in the design, development, testing, and implementation of applications and services, following established architecture and engineering standards.
- Contribute to identifying system enhancements and process improvements that improve application functionality, performance, and maintainability.
- Develop and maintain scalable applications while adhering to secure coding and development best practices.
- Analyze and resolve technical issues, support application stability, and assist in troubleshooting production incidents.
- Participate in all phases of the Software Development Life Cycle (SDLC), including requirements analysis, development, testing, deployment, and post-production support.
- Create and execute unit and integration test cases, support application releases, and ensure appropriate documentation of technical solutions.
- Collaborate with architecture, infrastructure, and business teams to deliver solutions that meet organizational objectives.
- Perform code reviews, share technical knowledge with team members, and contribute to maintaining high standards for application quality, performance, and reliability.
- Utilize AI-assisted development tools, including GitHub Copilot, Devin, and other approved AI platforms, to improve software development productivity, code quality, documentation, testing, and troubleshooting activities.
- Leverage AI tools to generate code scaffolding, automate routine development tasks, create test cases, and assist in root cause analysis while ensuring all outputs meet enterprise coding, security, and quality standards.
Key Responsibilities
- Work closely with technology and business teams.
Requirements & Tech Stack
- Java 11+
- Spring Boot framework
- Object Relational Mapping (ORM) concepts
- JPA
- Hibernate
- Spring Data JPA
- Relational Database Management Systems (RDBMS)
- SQL queries
- Microservices Architecture and related design principles
- Modernizing or migrating monolithic applications to microservices (preferred)
- Apache Kafka concepts and components
- Test-Driven Development (TDD)
- Unit and API testing frameworks such as JUnit and Rest Assured
- Application monitoring and observability tools such as Kibana, Splunk, AppDynamics, or similar platforms
- Debugging and troubleshooting tools such as jstack, jmap, JProfiler, VisualVM, or equivalent technologies
- DevOps concepts and tools, including CI/CD pipelines, Docker, Kubernetes, and cloud platforms
Qualifications
- Strong technical knowledge and hands-on experience with Java 11+ and the Spring Boot framework.
- Good understanding of Object Relational Mapping (ORM) concepts, JPA, and Hibernate, with hands-on experience developing data-access layers using Spring Data JPA.
- Sound knowledge of Relational Database Management Systems (RDBMS) and experience writing medium to complex SQL queries.
- Experience developing applications using Microservices Architecture and related design principles.
- Knowledge of Apache Kafka concepts and components, with hands-on experience producing and consuming messages through Kafka topics.
- Experience with Test-Driven Development (TDD) and strong knowledge of unit and API testing frameworks such as JUnit and Rest Assured.
- Experience using application monitoring and observability tools such as Kibana, Splunk, AppDynamics, or similar platforms.
- Strong debugging and troubleshooting skills with experience using tools such as jstack, jmap, JProfiler, VisualVM, or equivalent technologies.
- Working knowledge of DevOps concepts and tools, including CI/CD pipelines, Docker, Kubernetes, and cloud platforms.
- Strong analytical, problem-solving, and communication skills, with the ability to collaborate effectively within Agile development teams.


