Job responsibilities
- Executes software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems. Design, build, and maintain efficient, reusable, and reliable Scala code. Design, develop, test, and implement Big Data solutions using Apache Spark
- Creates secure and high-quality production code and maintains algorithms that run synchronously with appropriate systems
- Produces architecture and design artifacts for complex applications while being accountable for ensuring design constraints are met by software code development
- Gathers, analyzes, synthesizes, and develops visualizations and reporting from large, diverse data sets in service of continuous improvement of software applications and systems
- Proactively identifies hidden problems and patterns in data and uses these insights to drive improvements to coding hygiene and system architecture
- Contributes to software engineering communities of practice and events that explore new and emerging technologies
- Adds to team culture of diversity, equity, inclusion, and respect
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 3+ years applied experience
- Hands-on programming/application development experience JAVA 8, Spring Boot, REST/API. Proficiency in: SQL/Hibernate, Messaging (MQ & Kafka), application performance testing and tuning, Agile.
- Experience in Spark, Scala, Python writing reusable, testable, and efficient code.
- Experience in atleast working with one search engine [Elastic search, OpenSearch].
- Experience in building applications with microservices patterns and being cloud native. Good knowledge of AWS offerings (S3, EC2, RDS, Terraform etc).
- Good knowledge of Docker, Kubernetes.
- Overall knowledge of the Software Development Life Cycle
- Solid understanding of agile methodologies such as CI/CD, Application Resiliency, and Security
- Demonstrated knowledge of software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
Preferred qualifications, capabilities, and skills
- Knowledge of API protocols and development methodologies.
- Familiarity with Banking core modules.
- Strong knowledge in automated build and testing tools like Jenkins, JMeter, Cucumber, Cypress.
- Experience in engineering solutions for metrics gathering/publishing and event collection/correlation across distributed architectures, automation, monitoring, intelligent alerting, random fault injection (Chaos Engineering), and self-healing.