The Applications Development Senior Programmer Analyst is an intermediate level position responsible for participation in the Design, Development 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.
Responsibilities:
- Turn Tech stack and Application design into code on multiple development platforms (Microservices and APIs using Spring Boot, Web applications using Angular).
- Address a variety of responses to problems, questions, or situations by applying established criteria to directly influence development outcomes. In doing so, use the right technology to solve technical challenges required to deliver small scale features and functions and / or supporting aspects of a larger program efforts.
- Responsible for applications systems analysis and programming activities that may include assisting with feasibility studies, time and cost estimates and implementation of new or revised applications systems and programs.
- Accountable for development, design, construction, testing and implementation and write secure, stable, testable and maintainable code.
- Expected to operate with autonomy, while some oversight and direction may be required.
- Monitor and control all phases of development process and analysis, design, construction, testing, and implementation as well as provide user and operational support on applications to business users
- Utilize in-depth specialty knowledge of applications development to analyze complex problems/issues, provide evaluation of business process, system process, and industry standards, and make evaluative judgement
- Recommend and develop security measures in post implementation analysis of business usage to ensure successful system design and functionality
- Consult with product teams and other technology groups on issues, recommend advanced programming solutions, and install and assist customer exposure systems
- Understand the business context and the associated customer use cases.
- Understand the team’s technologies and are able to evaluate system designs and architecture as you participate in solution discussions, development and the creation of application / systems documentation.
- Serve as advisor or coach to new or lower level analysts
- Build and maintain integrated project development schedules that account for internal / external dependencies, differing SDLC approaches, numerous constraints, and adequately factor in contingency for unplanned delays.
- Verbal and written communication is clear and concise by clearly articulating development and timeline dependencies.
- Have good working relationships with team members, manager, and peers.
- Improve team development related processes that accelerate delivery, drive innovation, lower costs, and improve quality.
- Ensure self and peers are actively seeking ways to objectively measure productivity. (i.e., SonarQube , Code Coverage tools like Jacoco , AST tools like Checkmarx , Code and design reviews ). This will include a focus on automating code quality, code performance, unit testing, and build processing in the CI/CD pipeline (Teamcity , Udeploy etc )
- 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.
Qualifications:
- 5-7 years of relevant experience in systems analysis and programming of software applications
- Experience in design , development and implementing successful software projects
- Ability to work under pressure and manage deadlines or unexpected changes in expectations or requirements
- Strong experience in Full-Stack applications development using Java 8+ , Javascript ES6+ and frameworks including Spring Boot 2+ , Angular 7+ , Hibernate 5+ , Spring Data for JPA & Spring data Mongo is required.
- Unit testing experience using JUNIT and knowledge about BDD using cucumber
- Working knowledge in PL SQL, Store procedures, triggers, data modeling for ORACLE. Additional NoSQL / MongoDB experience is desired.
- Working knowledge of Docker containers, Kubernetes is desired.
- Experience in translating requirements with solutions using Detailed Technical documentation using flowcharts , Architecture diagrams and Sequence diagrams
Education:
- Bachelor’s degree/University degree or equivalent experience
This job description provides a high-level review of the types of work performed. Other job-related duties may be assigned as required.