We are looking for a Lead Software Engineer to work on a groundbreaking multichannel SaaS digital marketing platform that identifies customer patterns, enables effective customer engagement across channels, and helps marketers achieve a positive return on marketing investment (ROMI). The platform consolidates capabilities typically found in stand-alone services and channel-specific messaging platforms, giving marketers a tightly integrated, easily orchestrated, insights-driven, cross-channel marketing capability.
The primary role of the Lead Software Engineer is to envision, design, and build internet-scale cloud services (preferably AWS) using Java and NodeJS, Scala and ReactJS. Also, Kotlin (optional) will be an added advantage. This role is a full-stack, hands-on role solely focused on technology architecture, design, coding and deployment strategies. This role requires engineering principles followed at CJ Test-driven develop, EMT and a top-down design approach; long-term product thinking, key technology and architecture decisions, and owning DevOps to satisfy both functional and non-functional requirements. The engineer should be passionate about writing scalable code and coaching technical teams by working closely with architects, engineering managers, leads, and developers.
Responsibilities:
- Success in this role will be measured by the ability to deliver reliable cloud-native services, make sound architecture decisions, improve engineering practices, mentor team members, and contribute to predictable delivery of product outcomes.
- Lead the definition, design, architecture and development of software products and new features.
- Collaborate with Product Owner, Engineers and Business Users in conceptualising, estimating, and developing new software applications and enhancements
- Lead the hands-on, top-down design, test-driven development and implementation of enhancements and new products, and research and create proofs of concept for possible solutions.
- Develop repeatable unit and integration test cases, create test metrics when required, and resolve questions about test results.
- Automate deployment, customisation, upgrades, and monitoring through DevOps tools meant for Cloud management.
- Documentation of software's objectives, business requirements, deliverables, and specifications in collaboration with internal users and departments
- Support and modernise legacy applications by driving continuous code improvements, improving maintainability, reducing technical debt, and enabling migration of workloads to Kubernetes-based platforms.
- Performance tuning, monitoring, maintaining fault tolerant/HA infrastructure along with Disaster recovery design, implementation, and maintenance.
- Work with cross-functional teams during crises to address and resolve complex incidents and problems, in addition to assessment, analysis, and resolution of cross-functional issues.
- Responsible for development and maintenance of products with technologies involving Enterprise Java and Distributed technologies on the cloud, DevOps, and a continuous delivery pipeline.
- Mentor and guide the team along with your manager of the Squad.
Requirements:
- Bachelor's degree in Computer Science or a related technical discipline with 12+ years' experience and hands-on development.
- Solid Experience in the following technologies: Core Java and Enterprise Java Technologies (J2EE technologies (Type scripts/Java scripts, JPA and Web/UI technologies, ReactJS, Angular)), Microservices, Cloud: Full understanding of AWS Cloud Infrastructure. Spring IoC, Spring MVC, Spring Hibernate, Spring Boot, web architectural and design patterns. Continuous Integration: Git, CI/CD, AWS CodeDeploy, GoCD, Nexus, etc.
- Configuration and Automation: Ansible, Terraform, CloudFormation, etc. Containers: Kubernetes, Docker, ECS, EKS; Code Security: Veracode, SonarQube, etc. Source Control: GIT, Bitbucket; Build: Maven, Gradle; Scripting/Language: Shell Scripting, Python and Java; Monitoring: CloudWatch, CloudTrail, Kibana, Grafana.
- Experience with profiling, code coverage, logging, common IDEs, and other development tools.
- Good understanding of Agile Methodologies - SCRUM and Strong communication skills (verbal and written).
- Ability to work within tight deadlines and effectively prioritise and execute tasks in a high-pressure environment.
- Solid understanding of software security practices, including user authentication and authorisation, data validation and an understanding of common DOS and SQL injection techniques.
- Ability to suggest usage design patterns and algorithms while following the best practices of software development.
- Connection and Thread pools, memory management and configuration, balancing and scaling systems, tuning for scale and performance, security, and quality.
Additional preferred Qualifications:
- Technical: AWS Solutions Architect, Java Certifications, or others.
- Expertise in designing and handling complex architectures across multiple distributed solutions, with hands-on experience in designing, deploying, and operating cloud-based and/or Kubernetes systems.
- Non-Technical.
- Functional knowledge of Digital marketing or Affiliate marketing.
- Team management skills for 5-6 people: Mentorship in technology, Planning and execution of technical design and architecture, Stakeholder management.

