Job details
The Applications Development Intermediate Programmer Analyst is an intermediate level sr. developer 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.
The ideal candidate possesses strong technical expertise in server-side Java development (Spring Boot, Spring Cloud, Spring JPA, JDBC, Hibernate), functional programming, testing frameworks (JUnit, Mockito), RESTful/GraphQL APIs, messaging (Kafka, IBM MQ), SFTP, microservices architecture (Kubernetes/Docker), CI/CD tools, and SQL/NoSQL databases. Front-end experience (React, JavaScript, HTML, CSS) is a plus. Strong communication, collaboration, and leadership skills are essential for success in this role.
Responsibilities:
Collaborate with cross-functional teams to ensure specifications are converted into flexible, scalable, and maintainable solution designs. Evaluate project deliverables to ensure they meet specifications and architectural standards.
Work as part of development teams to design and build complex solutions, ensuring alignment with the architecture blueprint, standards, target state architecture, and strategies.
Coordinate, execute, and participate in component integration (CIT), system integration testing (SIT), and user acceptance testing (UAT) to identify and resolve application errors and ensure quality software deployment.
Possess a solid grasp of software design patterns and approaches. Understand application-level software architecture and make technical trade-off decisions.
Provide mentoring and guidance to junior engineers, offering feedback and direction on specific engineering tasks.
Maintain application hygiene and address any Risk & Control items.
Work closely with Project Managers, Business Analysts, and Operational users/Product managers to deliver projects.
Work independently on project deliverables, articulate issues/challenges, and proactively communicate risks.
Handle code releases in various environments.
Required Skills/Experience:
5-6 years of hands-on experience in Java backend development, including deep understanding of core Java concepts, object-oriented programming, data structures, algorithms, and design patterns. Experience with Spring Boot, Spring JPA, Spring Cloud, JDBC, Hibernate, REST, and Maven is essential. Demonstrated proficiency in Java 8+ features (lambda expressions, streams, functional interfaces) and functional programming paradigms is required. Python programming experience is a plus.
Extensive experience with microservices architecture and related technologies, including Docker, Kubernetes/OpenShift, and cloud computing platforms (AWS, Azure, GCP). Strong understanding of microservice design patterns, principles, and best practices.
Experience implementing Kafka consumers, producers, and streaming applications. Familiarity with other messaging technologies like TIBCO EMS and IBM MQ is highly desirable.
Solid understanding of both SQL and NoSQL databases. Hands-on experience with MongoDB is preferred, and experience with other NoSQL databases is a plus. Familiarity with relational databases (e.g., Oracle, PostgreSQL) is required.
Experience with Kafka Streams and Apache Flink is a significant advantage.
Experience working in an Agile environment using TDD/BDD best practices. Proficiency with JUnit and Mockito for unit and integration testing is essential.
Good knowledge of DevOps principles and CI/CD practices. Experience with tools like Jenkins, TeamCity, IBM UrbanCode Deploy, and SonarQube is highly desirable.
Experience implementing RESTful and GraphQL APIs, including API design, development, and security best practices. Experience with WebSocket implementations is preferred.
Proficiency with Git/Bitbucket for version control is required.
Strong communication, analytical, problem-solving, and leadership skills are essential. Demonstrated ability to take ownership, collaborate effectively, and communicate technical concepts clearly.
Nice to have skills:
Kafka streaming
Experience in MQ
Education:
Bachelor's degree/University degree or equivalent experience
Master's degree preferred
------------------------------------------------------
Job Family Group:
Technology------------------------------------------------------
Job Family:
Applications Development------------------------------------------------------
Time Type:
Full time------------------------------------------------------
Most Relevant Skills
Please see the requirements listed above.------------------------------------------------------
Other Relevant Skills
For complementary skills, please see above and/or contact the recruiter.------------------------------------------------------
Citi is an equal opportunity employer, and qualified candidates will receive consideration without regard to their race, color, religion, sex, sexual orientation, gender identity, national origin, disability, status as a protected veteran, or any other characteristic protected by law.
If you are a person with a disability and need a reasonable accommodation to use our search tools and/or apply for a career opportunity review Accessibility at Citi.
View Citi’s EEO Policy Statement and the Know Your Rights poster.
Get Weekly Job Offers
Be first to know when jobs open.