
at Citi
Bulge Bracket Investment BanksPosted 7 days ago
No clicks
**Senior Software Engineer - Core Java & Apache Spark** Design and scale core data pipelines using Java, Spring Framework, and Apache Spark. Master JVM internals, Spark tuning, and containerization (Docker, Kubernetes). Lead architectural design, performance engineering, and mentored junior engineers. Key responsibilities include system architecture, Spark job optimization, and enhancing CI/CD pipelines.
- Compensation
- Not specified
- City
- Chennai
- Country
- India
Currency: Not specified
Full Job Description
Senior Software Engineer - Core Java & Apache Spark
Discover your future at Citi
Working at Citi is far more than just a job. A career with us means joining a team of more than 230,000 dedicated people from around the globe. At Citi, youll have the opportunity to grow your career, give back to your community and make a real impact.
Job Overview
Senior Software Engineer - Core Java & Apache Spark
We are hiring an elite Senior Software Engineer to build and scale our core data processing and application infrastructure. This role demands deep, hands-on expertise in the Java ecosystem and distributed computing with Apache Spark. You will be responsible for the architecture, design, and implementation of mission-critical systems that process massive datasets, requiring a mastery of concurrency, JVM internals, and modern cloud-native patterns.
Core Tech Stack:
- Languages & Runtimes: Java (8+), SQL, JVM
- Frameworks & Libraries: Spring (Boot, Data, Security, Batch, Integration), Apache Spark (RDD, Spark SQL, DataFrames/DataSets)
- Big Data Ecosystem: Hadoop, Hive, Impala, Spark Tuning & Optimization
- Databases: Relational (e.g., PostgreSQL, Oracle), NoSQL (MongoDB, Graph DB)
- Messaging & Middleware: JMS, Solace
- Containerization & Orchestration: Docker, Kubernetes, OpenShift
- Build & CI/CD: Maven, Gradle, Jenkins, Git
- Code Quality & Security: SonarQube, TDD (JUnit/Mockito), Secure Coding Practices
Key Responsibilities:
- Architect & Build: Design and construct high-throughput, low-latency data processing pipelines using Apache Spark and the Spring ecosystem.
- Performance Engineering: Dive deep into JVM internals, garbage collection tuning, and Spark job optimization to maximize performance and resource efficiency.
- Distributed Systems Design: Implement scalable, resilient, and transactional architectures leveraging container orchestration (Kubernetes/OpenShift) and distributed data stores.
- Code & Design Excellence: Champion and enforce best practices in software engineering, including SOLID principles, advanced design patterns, Domain-Driven Design (DDD), and Test-Driven Development (TDD).
- Database Mastery: Engineer and optimize data models for both relational and NoSQL databases, ensuring data integrity, performance, and scalability.
- CI/CD Automation: Own and enhance CI/CD pipelines for automated build, test, and deployment of Java applications and Spark jobs in a containerized environment.
- Technical Leadership: Lead design and code reviews, mentor junior engineers, and drive the adoption of new technologies and architectural patterns across the team.
Required Technical Qualifications:
- Core Java & JVM: Expert-level proficiency in Java, including the Collections Framework, Lambdas, and the Java Concurrency API. Demonstrable experience tuning the JVM and troubleshooting memory/GC issues.
- Apache Spark: Proven, hands-on experience developing, deploying, and tuning complex Spark applications for large-scale data transformation and analysis.
- Spring Ecosystem: Extensive, practical experience with the Spring Framework, particularly Spring Boot, Spring Data, and Spring Batch in a production environment.
- Data Structures & Algorithms: Deep understanding of fundamental data structures and algorithms, with a focus on their application in distributed computing and performance-critical systems.
- Containerization & Cloud-Native: Hands-on experience with Docker for building images and Kubernetes/OpenShift for deploying and managing distributed applications.
- Database Engineering: Strong command of SQL and relational database design, including transaction management and indexing. Experience with at least one production NoSQL database (MongoDB, Graph DB, etc.).
- Architectural Design: Practical application of OOP, SOLID, and DDD principles to build maintainable and scalable systems. You write tests first (TDD) and believe in robust, automated testing.
------------------------------------------------------
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 (opens in new window).
View Citis EEO Policy Statement (opens in new window) and the Know Your Rights (opens in new window) poster.



