The Applications Development Senior 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.
Responsibilities:
Conduct tasks related to feasibility studies, time and cost estimates, IT planning, risk technology, applications development, model development, and establish and implement new or revised applications systems and programs to meet specific business needs or user areas
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 users/clients and other technology groups on issues, recommend advanced programming solutions, and install and assist customer exposure systems
Ensure essential procedures are followed and help define operating standards and processes
Serve as advisor or coach to new or lower level analysts
Has the ability to operate with a limited level of direct supervision.
Can exercise independence of judgement and autonomy.
Acts as SME to senior stakeholders and /or other team members.
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.
Recommended Qualifications:
4+ years of relevant experience
Experience in systems analysis and programming of software applications
Experience in managing and implementing successful projects
Working knowledge of consulting/project management techniques/methods
Ability to work under pressure and manage deadlines or unexpected changes in expectations or requirements
Technical Skills:
ETL & Big Data: Spark (Scala), Ab Initio, Talend,
Scripting & Programming: Unix Shell Scripting, Python, PL/SQL
Data & Messaging: Kafka, Hadoop
Cloud & Containers: OpenShift Container
CI/CD & Integration: LSC and LCE
Additional Skills:
Cluster Management: Deploy, configure, and maintain Apache Spark clusters in standalone or Kubernetes environments.
Manage cluster resources, including capacity planning, resource allocation, and queue management.
Perform version upgrades, patch management, and rolling updates with minimal downtime.
Implement and manage High Availability (HA) for Spark Masters and other critical services.
Performance Tuning and Optimization: Monitor cluster performance and job execution to identify bottlenecks related to CPU, memory, I/O, and network.
Tune Spark configurations and individual job parameters for optimal performance.
Analyze and resolve issues related to data skew, memory management (GC tuning), and shuffle performance.
Advise data engineering teams on writing efficient, scalable Spark code.
Monitoring and Troubleshooting: Set up and manage comprehensive monitoring and alerting using tools like ITRS, Prometheus, Grafana, and the Spark UI. automation using Unix shell scripting, Perl, Python, Abinitio ETL tool/Spark is an advantage.
Proactively identify and resolve cluster issues, job failures, and performance degradation.
Analyze logs from Spark and underlying systems to diagnose complex problems.
Troubleshoot common Spark…