We are seeking an experienced and passionate Automation Engineer with a strong background in JavaScript technologies and automation testing. The ideal candidate will have hands-on expertise in developing scalable applications, as well as a deep understanding of testing methodologies for modern web applications and services. This position offers the opportunity to work with cutting-edge technologies and be part of a dynamic and forward-thinking team.
Key Responsibilities
- Automation Testing. Lead the development of robust, end-to-end automation test suites using industry-standard testing frameworks such as Playwright, Selenium, and Appium. The candidate will be expected to employ BDD (Behavior Driven Development) principles to ensure clarity and consistency in automated tests.
- API and Microservices Testing. You will work closely with development teams to ensure the reliability and performance of Restful APIs and Microservices. This will include building and automating tests to cover the full lifecycle of API development, from unit testing through integration testing, leveraging JavaScript technologies.
- End-to-End Automation. Develop automation frameworks and tools to test both frontend and backend components, ensuring a seamless flow through various stages of the application.
- Collaboration & Troubleshooting. Collaborate with cross-functional teams to identify, diagnose, and troubleshoot issues within the distributed services ecosystem, contributing to building resilient and highly available systems.
- CI/CD Pipelines. Leverage your experience with CI/CD principles to streamline development, testing, and deployment processes, ensuring that automation is embedded throughout the entire software lifecycle.
- Microservices and Containerization. Develop a deep understanding of containerized environments. Work with technologies such as Docker and Kubernetes to automate and test microservices within these environments.
- API Gateway & Security. Demonstrate experience with API gateways (e.g., 3Scale) and implement token-based authentication mechanisms such as JWT and OAuth, ensuring secure API communication across platforms.
- Task/Message Queues. Apply your knowledge of task/message queues, particularly those involving services like AWS, Microsoft Azure, Pushpin, and Kafka, ensuring proper testing and optimization of asynchronous communication between services.
- Research & Innovation. Stay ahead of industry trends and continuously benchmark technology against other best-in-class solutions. Evaluate new tools, frameworks, and methodologies to improve automation processes and testing practices.
Qualifications
- Education. A degree or post-graduate qualification in Computer Science or a related field, or equivalent industry experience.
- Experience. A minimum of 5 years of coding and automation testing experience, with hands-on expertise in JavaScript and TypeScript. At least 1 year of practical experience with TypeScript.
Technical Expertise
- Excellent understanding of scalable and highly available RESTful APIs and Microservices using JavaScript technologies.
- Proficient in developing and executing automation test suites using Playwright, Selenium, or similar tools, with a preference for a BDD approach.
- Practical experience with GraphQL and knowledge of how to automate tests for GraphQL APIs.
- Well-versed in CI/CD practices and capable of troubleshooting issues within a distributed services ecosystem.
- Experience with containerization using Docker and Kubernetes, as well as a solid understanding of cloud platforms like AWS and Microsoft Azure.
- Familiarity with API gateway integrations such as 3Scale, and strong understanding of authentication protocols including JWT and OAuth.
- Expertise in working with task/message queues like Kafka, Pushpin, or similar technologies.
Functional Skills
- Strong knowledge of coding best practices, unit testing, and security standards for both development and testing.
- Experience working within an Agile development environment, applying best practices for collaboration and iteration.
- Proven ability to research and evaluate emerging technologies, benchmarking them against current industry standards to recommend improvements and innovations.
Personal Attributes
- Strong problem-solving skills and the ability to troubleshoot complex issues within distributed systems.
- A proactive and collaborative team player who can communicate effectively with both technical and non-technical stakeholders.
- Ability to work independently and take ownership of tasks and projects.
- Detail-oriented with a strong focus on quality and performance.
Why Join Us?
As part of our team, you'll work on cutting-edge technology, face exciting challenges, and contribute to the development of scalable, secure, and reliable software systems. We offer a collaborative and innovative environment where your ideas and contributions are valued. You'll have opportunities for growth, learning, and advancement in your career.