Role
You'll own API test automation from the first line of code to the result on a leader's screen. That means building the framework, writing the tests, creating and running the Azure DevOps pipelines yourself, and making failures easy to diagnose and rerun. You won't wait on a DevOps team; you'll be the person who sets it up.
Responsibilities
Framework and tests
- - Design and build an API test framework in C#/.NET with RestSharp and NUnit, from scratch.
- - Apply design patterns (Builder, Factory, Service Object, Dependency Injection) and SOLID principles so the framework stays clean as it grows.
- - Turn high-value manual regression cases into reliable automated tests, starting with the areas that change most.
- - Handle real-world API behavior properly: OAuth2 and token refresh, pagination, throttling (HTTP 429), retries with backoff, and large data sets.
Pipelines you build and own (Azure DevOps)
- - Write YAML pipelines yourself: multi-stage, templated, with parameters, variable groups and environment-specific config.
- - Set up and manage build agents (Microsoft-hosted and self-hosted), service connections and secrets via Azure Key Vault.
- - Run tests on demand, on schedule or per build. Support running the full suite, a single fixture or a filtered "smart" subset chosen from what changed.
- - Run suites in parallel across agents or containers to keep run times short.
- - Publish results (TRX/JUnit) to Azure DevOps Test Plans and Test Runs, with trends visible per release.
Failures, reruns and reliability
- - Make every failure diagnosable: assertion message, stack trace, request/response logs and environment details captured per test and attached to the run.
- - Build automatic rerun of failed tests, and tell flaky tests from real defects (rerun-to-confirm, flaky-test tagging and quarantine).
- - Track flakiness and failure trends over time and fix root causes in tests, data or environments.
- - Set up notifications (Teams/email) with a clear summary of what failed and why, with no digging required.
Cloud execution
- - Containerize test suites (Docker) and run them on Azure (Container Apps Jobs, AKS or Functions) independently of the product's CI/CD when needed.
- - Manage test data and environments so runs are repeatable and isolated.
AI and reporting
- - Use AI/LLM tools to generate test cases from stories and PRs, summarize failures and produce release reports that product and engineering leaders understand at a glance.
- - Build lightweight integrations between Jira, Azure DevOps and test results for end-to-end reporting.
Preferred candidate profile
- - 5+ years in test automation with strong hands-on C# and .NET (6+).
- - Proven experience building API automation frameworks with RestSharp (or HttpClient) and NUnit/xUnit, not only adding tests to an existing one.
- - *Hands-on Azure DevOps:* you have personally written YAML pipelines, configured agents and service connections, published test results and set up reruns.
- - Clear understanding of how to handle flaky tests, retries, partial failures and reruns in a pipeline.
- - Working knowledge of Azure: Key Vault, Storage, Containers (ACR, Container Apps or AKS), Functions.
- - Strong command of design patterns, SOLID and clean code.
- - Practical use of AI tools in engineering (GitHub Copilot, Claude, OpenAI APIs or similar).
- - Clear written and spoken English; comfortable explaining results to client leadership.
Nice to have
- - Microsoft 365, Exchange, SharePoint or SaaS data-migration testing.
- - Docker and Kubernetes; Terraform or Bicep.
- - Performance testing (k6, NBomber, JMeter).
- - Jira and PractiTest integration.