Senior Software Engineer - Principal Java Developer
CGI · Chennai, Tamil Nadu, India
CGI · Chennai, Tamil Nadu, India
Position Description Company Profile: - At CGI, we’re a team of builders. We call our employees members because all who join CGI are building their own company - one that has grown to 72,000 professionals located in 40 countries. Founded in 1976, CGI is a leading IT and business process services firm committed to helping clients succeed. We have the global resources, expertise, stability and dedicated professionals needed to achieve. At CGI, we’re a team of builders. We call our employees members because all who join CGI are building their own company - one that has grown to 72,000 professionals located in 40 countries. Founded in 1976, CGI is a leading IT and business process services firm committed to helping clients succeed. We have the global resources, expertise, stability and dedicated professionals needed to achieve results for our clients - and for our members. Come grow with us. Learn more at www.cgi.com. This is a great opportunity to join a winning team. CGI offers a competitive compensation package with opportunities for growth and professional development. Benefits for full-time, permanent members start on the first day of employment and include a paid time-off program and profit participation and stock purchase plans. We wish to thank all applicants for their interest and effort in applying for this position, however, only candidates selected for interviews will be contacted. No unsolicited agency referrals please. Job Title: Senior/Principal Java Developer Position: Senior Software Engineer Experience: 5 years to 12 years the Java & J2EE Category: Software Development/ Engineering Main location: Chennai Position ID: J0426-1009 Employment Type: Full Time Job Description: Responsibilities: - About the Role: We are seeking an experienced Java Principal Engineer to join our team and drive the technical vision, architecture, and design of enterprise-grade applications. You will work in an Agile environment, collaborating with product management and development teams to deliver high-quality, scalable, and secure software solutions. Your future duties and responsibilities - Technical Skills - Expertise in Java & Jakarta EE: - Expert level proficiency in Java SE (minimum Java SE 11, preferred Java SE 17/21) - Deep knowledge of Jakarta EE specifications, including JPA (EclipseLink), CDI, EJB, JAX-RS, and Annotation Processing (Jakarta EE 10). - Experience with Jakarta EE containers (WebSphere Liberty or similar). - Cloud Platforms: - Hands-on experience with cloud providers like AWS, Azure, or Google Cloud. - Understanding of cloud-native development practices, including containers (Docker, Kubernetes) and serverless architectures. - Asynchronous Programming: - Proficiency in asynchronous programming paradigms using technologies like JMS, Kafka, or RabbitMQ. - Familiarity with patterns to deal with asynchronous complexity like SAGA, command-response-pattern, or inbox / outbox. - Domain-Driven Design (DDD): - Experience designing and implementing solutions following DDD principles. - Strong understanding of strategic and tactical DDD, including bounded contexts, aggregates, entities, and repositories. - Ability to translate principles like hexagonal architecture into practical software design. - Distributed Systems: - Knowledge of distributed system patterns like eventual consistency. - Experience designing systems for high availability, scalability, and resilience in a cloud environment. - APIs and Microservices: - Proficiency in designing and developing RESTful APIs. - Knowledge of microservices architecture like self-contained systems and tools like Quarkus or MicroProfile. - Databases: - Strong experience with relational databases (PostgreSQL). - Deep understanding of central data modeling, transaction handling, and concurrency control concepts. - Knowledge of data storage best practices in distributed and asynchronous systems. - Software Development Ecosystem: - Hands-on experience of industry standard dev tools like source code management (Git), CI/CD (Jenkins, ArgoCD), and runtime tools (Docker / Podman). \\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_ - Architecture & Design - Solution Architecture: - Ability to define and oversee the system’s architecture in line with the principles of DDD and cloud-based infrastructure. - Experience in creating high-level and low-level designs, addressing scalability, maintainability, and performance. - Event-Driven Architecture: - Experience designing and building event-driven architectures, ensuring decoupling of services and efficient message passing. - Security: - Knowledge of security best practices and vulnerability prevention strategies in cloud environments. \\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_ - Team Leadership - Mentorship: - Ability to mentor junior and mid-level developers, guiding them through complex design and implementation challenges. - Foster a culture of continuous learning and improvement within the development team. - Collaboration: - Strong collaboration with other teams (DevOps, QA, Product Management) to ensure alignment on technical and business goals. - Experience working in agile development environments (Scrum/Kanban). - Problem-Solving & Innovation - Complex Problem-Solving: - Ability to identify and solve complex technical problems, especially in areas related to system concurrency, data consistency, and distributed processing. - Technical Innovation: - Stay updated with the latest advancements in Jakarta EE, DDD, and cloud technologies, promoting their adoption when appropriate. - Strong track record of driving innovation and introducing best practices. \\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\