Java Developer
Role details
Job location
Tech stack
Job description
The Java Developer is a technical position responsible for designing, developing, implementing, and maintaining application systems and programs in coordination with the wider technology team. The overall objective of this role is to contribute to application systems analysis and programming activities, ensuring the delivery of high-quality and robust software solutions., * Application Development: Design, code, and debug Java applications. Contribute to the entire software development lifecycle, from conception and design to testing and deployment.
- Technical Contribution: Collaborate with team members to solve technical challenges. Follow best practices for code quality and design principles.
- System Design: Assist in analyzing business requirements and translating them into functional system designs that align with architectural standards.
- Problem Solving: Participate in the process for technical issue escalation and resolution. Utilize knowledge of Java, adjacent technologies, and software engineering principles to help solve problems and troubleshoot issues.
- AI Integration: Actively explore and utilize modern AI-powered development tools and technologies to enhance productivity and code quality. Experience with AI development assistants and agents is desirable.
- Collaboration & Communication: Clearly communicate technical concepts within the development team. Collaborate with cross-functional teams, including product management and quality assurance, to support project execution.
- Risk & Compliance: Adhere to risk and compliance standards in all technical and business decisions, with consideration for the firm's reputation and the security of its assets. Follow policies, apply sound ethical judgment, and help maintain transparency in reporting any control issues.
Requirements
Experience: 3 - 8 years of professional experience in hands-on software development.
Core Java Skills:
- Solid knowledge of Java (Java 11+ preferred) and object-oriented design principles.
- Experience with the Spring Framework, including Spring Boot and Spring MVC.
- Proficiency in data access technologies like JPA/Hibernate or Spring Data.
Java-Adjacent Technologies:
- Microservices: Experience in developing and deploying applications within a microservices architecture.
- Databases: Proficiency with relational (e.g., PostgreSQL, Oracle).
- Messaging Systems: Familiarity with message brokers such as Kafka or RabbitMQ.
- API Development: Experience in developing RESTful APIs.
AI in Development:
- Familiarity with AI-powered tools for coding, debugging, and optimization (e.g., GitHub Copilot, Amazon CodeWhisperer).
- Experience with advanced AI software engineering agents (e.g., Devin) is a plus.
DevOps & CI/CD:
- Familiarity with continuous integration and continuous delivery (CI/CD) concepts and tools (e.g., Jenkins, GitLab CI).
- Familiarity with containerization technologies like Docker and orchestration platforms like Kubernetes or OpenShift.
General Skills:
- Experience contributing to successful software projects.
- Demonstrates ownership and sound judgment in technical tasks.
- Clear written and verbal communication skills.
Education:
- Bachelor's degree/University degree in Computer Science, Engineering, or a related field, or equivalent practical experience.
Benefits & conditions
By joining Citi, you will not only be part of a business casual workplace with a hybrid working model (up to 2 days working at home per week), but also receive a competitive base salary (which is annually reviewed), and enjoy a whole host of additional benefits such as:
- 27 days annual leave (plus bank holidays)
- A discretional annual performance related bonus
- Private Medical Care & Life Insurance
- Employee Assistance Program
- Pension Plan
- Paid Parental Leave
- Special discounts for employees, family, and friends
- Access to an array of learning and development resources