As a
Job responsibilities
- Executes standard software solutions, design, development, and technical troubleshooting
- Writes secure and high-quality code using the Java language with limited guidance
- Embedded within an agile software development scrum team, champions and owns the creation of test automation frameworks for critical financial systems
- Elicit high quality, stable and maintainable test cases from requirements documentation
- Designs, develops, codes, and troubleshoots with consideration of upstream and downstream systems and technical implications
- Applies knowledge of tools within the Software Development Life Cycle toolchain to improve the value realized by automation
- Applies technical troubleshooting to break down solutions and solve technical problems of basic complexity
- Gathers, analyzes, and draws conclusions from large, diverse data sets to identify problems and contribute to decision-making in service of secure, stable application development
- Learns and applies system processes, methodologies, and skills for the development of secure, stable code and systems
- Adds to team culture of diversity, equity, inclusion, and respect
- Participates in peer reviews of code and tests developed by colleagues, providing valuable suggestions and improvements
- Provides out of hours application support and coordination of Production releases
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts or a related discipline and applied experience
- Demonstrable ability to code in one or more object-orientated languages including Java
- Knowledge of system and software quality assurance best practices and methodologies including Behaviour Driven Development (BDD), Regression, Integration, Unit, Contract, Component, End to End and performance testing
- Significant experience with popular Java build tools and test frameworks including JUnit, Maven and Cucumber as well as experience in developing and maintaining test automation frameworks
- Keen interest in latest developments / technologies in the testing domain
- Hands-on practical experience in system design, application development, automated testing, application logging, monitoring and operational stability
- Experience in developing, debugging, and maintaining code in a large corporate environment with one or more modern programming languages and database querying languages
- Experience across the whole Software Development Life Cycle
- Exposure to agile methodologies such as Scrum, CI/CD, Application Resiliency, and Security
- Emerging 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
- Experience with Java 8 and Spring Boot
- Exposure to application performance monitoring tools (e.g. Prometheus, DynaTrace, Datadog )
- Experience in using and configuring BlazeMeter and JMeter performance test tools as well as producing analytical test reports
- Experience and interest in the design and creation of test automation environments
- Exposure to mocking external systems (e.g. Kafka and databases ) and testing asynchronous event driven applications
- Experience of Unix scripting and creating Docker images
- Exposure to containerized cloud technologies (e.g. Kubernetes )
- Experience in setting up and maintaining CI/CD pipelines
- Experience of maintaining software in a restricted Production environment
- Experience of UI and Contract testing frameworks (e.g. Cypress and Pact )
- Certified cloud knowledge (e.g. AWS Cloud Practitioner or CKAD)