Software Development Engineer in Test - API & Integrations
Mimecast
- Bangalore, Karnataka
- Permanent
- Full-time
- Contributing to the planning, estimation, and refinement of stories, epics, and design changes as part of an Agile Scrum team
- Building out test plans to cover new areas of functionality, ensuring all necessary testing is performed
- Refining acceptance criteria into testable units and converting those into automated tests that execute efficiently and reliably
- Integrating automated tests with CI/CD pipelines and ensuring successful automation as part of our standard build process
- Occasional manual testing when automation is not an option
- Reporting, reproducing, and helping development resolve defects – emphasis on troubleshooting, root cause analysis, and prevention of similar issues in the future
- Monitoring our results and driving continuous improvement through process changes
- Mentoring and coaching junior engineers
- Contributing to design/code reviews for product and test code
- Advocating test automation and coaching the team on best practices
- Engineering / Computer science degree or equivalent experience
- Extensive experience test planning and breaking down stories/requirements into testable units
- 2+ years of significant test automation work, validating both back-end and front-end interfaces in at least one high-level object-oriented language, including:
- Experience with public-facing and internal APIs using REST and software developed within a Micro-Service architecture
- Extensive experience automating business logic in the services layer (RESTful API, SDK, or CLI, as appropriate)
- Proficiency in validating contract, functionality, correctness, and performance of REST API endpoints
- Experience with multithreading, concurrency, SaaS, and multi-tenant architectures
- Proven ability to integrate with and automate using third party APIs (e.g., Google, Microsoft, Amazon etc)
- Familiarity with BDD tools like Cucumber, Jasmine, or equivalent
- Clear understanding of how to manage risk through negative testing, boundary/limits testing, load/soak testing, and other test aspects as appropriate, including system integration, performance/scale, security, and L10N/I18N
- Solid programming skills and experience automating in Java or similar
- Familiarity in validation of UI-functionality and rendering, End-to-End testing, and UAT scenarios
- Experience with Cypress or knowledge of Protractor/Selenium
- Knowledge of Web Browsers, HTML, CSS, JavaScript, TypeScript, Angular, JSON, XML, integration with APIs, web servers
- Great knowledge of testing design patterns - for example, the Page Object Model
- Experience delivering testing in Agile projects with continuous testing model
- Database familiarity (types, schemas, SQL queries, basic operations) and ability to incorporate database-side validation into automated tests
- Some working knowledge of Microsoft Exchange, Office365, Azure Active Directory, and Windows Server
- Working knowledge of public cloud, especially AWS
- Experience with CI/CD pipeline, working knowledge of Jenkins and pipelines
- Experience testing fault resilient services
- Experience in working with highly scalable and distributed systems
- Experience with Agile Scrum
- Basic understanding of authorization protocols such as OAuth
- Experience in deep diving into logs, code and other elements to understand and solve problems