Senior Software Engineer, Test
- Hamilton, ON, Canada
$100,000 - $130,000 per year · Full-time
Applications open in a new tab.
Job details
- Pay
- $100,000 - $130,000 per year
- Job type
- Full-time
- Experience
- 5+ years of hands-on experience in software quality engineering, test automation, SDET, software engineering, or a closely related role
- Posting language
- English
- Posted
Original job description
Providius is looking for an experienced Senior Software Engineer, Test to help us build stronger, faster, and more reliable ways of validating complex software systems.
This is a hands-on engineering role for someone who enjoys writing code, building automation, debugging difficult problems, and improving how software gets tested across an engineering organization.
Position Overview
This is a hands-on, individual-contributor role. You will spend most of your week writing test code, building test infrastructure, and working directly with engineers, not writing test plans for others to execute.
We are looking for someone to take our test automation and quality engineering practices to the next level. You will build the automated test suites and tooling underneath them, raise the standard for how the engineering team tests its own work, and help ensure our quality practices keep pace with how quickly modern software is now developed.
Software gets written and changed faster than it did even a few years ago. AI-assisted development accelerates that further, but it also changes where defects come from and what traditional reviews and test suites may miss. We want someone who sees that as an engineering problem: building the coverage, tooling, feedback loops, and development practices that allow the team to move quickly without sacrificing reliability.
Our products also increasingly include AI and machine-learning functionality, including LLM-based assistants and integrations with AI clients. These systems introduce a different class of testing problem. Outputs may vary between runs, model or prompt changes can alter behaviour without traditional code changes, and quality may need to be measured across a set of results rather than with a simple pass or fail.
You do not need to be an ML researcher, but you should have experience testing software with AI, ML, LLM, or other non-deterministic components and understand how to build credible evidence that these systems are ready to ship.
You will have meaningful autonomy and responsibility. You will work with engineering leadership to identify our biggest quality risks, establish practical approaches to addressing them, and implement the automation and tooling needed to make those approaches part of everyday development.
Duties and Responsibilities
- Design, write, and maintain automated test suites across unit, integration, API, end-to-end, and regression testing
- Build and improve test infrastructure including fixtures, mocks, reusable test libraries, test data management, and simulation environments
- Build and maintain CI/CD test gates, smoke tests, regression suites, coverage reporting, and automated release-readiness checks
- Keep automated testing fast, reliable, and useful enough that developers trust it and use it regularly
- Build API and contract testing across services and integration boundaries
- Establish performance, load, stress, and soak testing for high-throughput and real-time systems
- Investigate and debug difficult failures across application, service, database, infrastructure, and deployment boundaries
- Work with engineers to determine appropriate test coverage and validation approaches for new features and systems
- Review test code with the same engineering standards applied to production code
- Help developers improve the quality and testability of their own code rather than making testing the responsibility of a separate QA silo
- Build reusable patterns and tooling that make it easier for engineers to write good tests
- Establish practical testing standards and help drive their adoption across engineering
- Identify gaps in existing test coverage and determine where deeper or different forms of validation are required
- Help adapt our testing practices to the increased pace and changing failure modes introduced by AI-assisted software development
- Use modern development and AI tooling to improve the speed and effectiveness of test development while maintaining confidence in the results
- Validate that automated tests actually detect incorrect behaviour rather than simply confirming the current implementation
- Share testing practices, tooling, and lessons across the engineering team
AI and ML Quality
- Build and maintain evaluation approaches for AI, ML, and LLM-based product features
- Test non-deterministic systems using representative datasets, repeated evaluation, appropriate metrics, and acceptance thresholds
- Establish regression testing for model, prompt, retrieval, and AI-system changes
- Test AI integrations end to end, including tool use, schemas, authentication, authorization, error handling, and unexpected responses
- Help determine where automated evaluation is sufficient and where human review remains necessary
- Validate data and pipelines used to support AI and ML functionality
- Incorporate production failures and edge cases back into automated test and evaluation suites
- Help define evidence-based release criteria for AI-enabled product functionality
Tech Stack
Our engineering environment includes:
- Languages: Python, Java, TypeScript
- Test frameworks: pytest, JUnit, Playwright or Cypress
- API and performance testing: Postman, k6 or JMeter
- Data: PostgreSQL, TimescaleDB
- Infrastructure: Linux, Docker
- CI/CD: automated pipelines, test gates, coverage and release validation
- Development tools: JIRA, Bitbucket
- AI and ML systems: Python-based ML and LLM tooling, model and data pipelines, LLM integrations, and Model Context Protocol (MCP)
Experience with every technology listed is not required.
Required Skills / Experience
- 5+ years of hands-on experience in software quality engineering, test automation, SDET, software engineering, or a closely related role
- Strong programming ability and experience building maintainable test automation and engineering tooling
- Hands-on experience designing and implementing automated tests across multiple layers of a software system
- Experience building or substantially improving automated test frameworks or test infrastructure
- Experience integrating automated testing into CI/CD pipelines
- Strong API, service-level, integration, and regression testing experience
- Experience with performance, load, stress, or soak testing
- Strong debugging and troubleshooting skills across complex software systems
- Experience working with test data, fixtures, mocks, simulation, or comparable approaches to creating reliable test environments
- Ability to take incomplete or ambiguous requirements and determine what should be tested, how it should be tested, and what acceptable behaviour looks like
- Experience reviewing test code and helping software engineers improve their own testing practices
- Strong understanding of software engineering practices, not just QA processes
- Experience testing software containing AI, machine learning, LLM, or other non-deterministic functionality
- Understanding of how validating probabilistic systems differs from testing deterministic software
- Experience working in fast-moving software development environments with frequent code changes and automated delivery practices
- Strong communication and collaboration skills
Nice to Haves
- Experience building evaluation suites for LLM or machine-learning based products
- Experience defining representative or golden datasets, scoring rubrics, quality metrics, acceptance thresholds, or automated graders
- Experience with prompt evaluation and regression testing
- Experience evaluating RAG systems, including retrieval quality, grounding, and citation accuracy
- Experience testing agentic workflows, tool calling, MCP servers, or other AI integrations
- Experience with LLM evaluation frameworks such as promptfoo, DeepEval, Ragas, or similar
- Familiarity with LLM tracing and observability tools such as Langfuse or LangSmith
- Experience using LLM-as-judge techniques and understanding their limitations
- Experience validating fine-tuned models or comparing model versions
- Experience testing data pipelines, ML pipelines, or model-serving infrastructure
- Familiarity with PyTorch, Hugging Face, MLflow, Weights & Biases, or related ML tooling
- Experience testing GPU inference systems such as vLLM or Triton
- Experience with security testing for AI systems, including prompt injection, data leakage, and authorization boundaries
- Experience with chaos engineering, fault injection, or resilience testing
- Experience testing high-throughput, real-time, distributed, networking, or data-intensive systems
- Familiarity with networking concepts and protocols
- Experience with Docker, Kubernetes, Linux, and on-premise or hybrid deployments
Pay
$100,000 - $130,000 per year
Benefits
- Dental care
- Extended health care
- On-site parking
- Paid time off
- Vision care
Why Join Providius
- Work on technically challenging software used in complex, real-time environments
- Spend your time building testing systems and automation rather than managing a QA process
- Have direct influence over how quality engineering is done across the company
- Work closely with software, infrastructure, networking, and ML engineers
- Help define practical approaches to testing AI-enabled software as those systems become a larger part of our products
- Work in a small engineering organization where strong individual contributors can have significant impact
- Take ownership of difficult problems without layers of process or bureaucracy
More about this job
Responsibilities
Design, build, and maintain automated test suites and infrastructure to ensure the reliability of complex software systems. Collaborate with engineering teams to implement quality practices and validate AI/ML-based product features.
Requirements
Requires 5+ years of experience in software quality engineering or test automation with strong programming skills. Candidates must have experience building test frameworks and testing non-deterministic systems like AI or LLMs.
Skills
- Test automation
- Python
- Java
- TypeScript
- CI/CD
- API testing
- Performance testing
- Software quality engineering
- Debugging
- Infrastructure as code
- LLM evaluation
- Machine learning
- Regression testing
- Docker
- PostgreSQL
- System architecture
Benefits
- Dental care
- Extended health care
- On-site parking
- Paid time off
- Vision care
Visa sponsorship
Not detected in the job text
Categories
- Software
- Technology
- Engineering
- Data & Analytics
Keywords
- Software Engineering
- Test Automation
- SDET
- Python
- Java
- TypeScript
- Pytest
- JUnit
- Playwright
- Cypress
- Postman
- K6
- JMeter
- PostgreSQL
- TimescaleDB
- Linux
- Docker
- CI/CD
- API Testing
- Performance Testing
- Machine Learning
- LLM
- Regression Testing
- Infrastructure
- Quality Engineering
- Data Pipelines
- Model Context Protocol
- Bitbucket
- JIRA
- Chaos Engineering