Software Engineer in Test
Unilink Software is a fast-growing, international company and the leading provider of innovative, award-winning software solutions for the criminal justice sector. Our mission is to empower governments and businesses around the world to effectively secure their operating environments, intuitively manage their data, become more efficient, and foster a culture of rehabilitation.
Our purpose is to create technologies that people can rely on so that justice systems work well. We foster a culture of continuous improvement, innovation and excellence. We care about our staff, our customers, the environment and everything we do - principles encompassed in our social purpose statement.
We work with fantastic customers - government and private sector organisations in the UK, Europe and Australia - who use our software solutions to reduce the administrative burden on staff, improve the information flow and security as well as to implement digital solutions to assist in rehabilitation of people in their care.
We are growing quickly, expect that growth to accelerate and are looking for enthusiastic, passionate and driven individuals to join our team. Our offices are located in London, Southampton and Newcastle but our staff are located throughout the UK, in Europe and Australia. We offer flexible working, a good benefits package and competitive salary.
About the Role
We are seeking a hybrid engineer with a passion for testing, quality, and reliable code. This position is well suited to candidates with a strong background in Python and backend systems, who are keen to concentrate on automated testing and, over time, become involved in core software development.
You will lead the automation of critical test flows, utilising Playwright (Python), Django's test framework, and contemporary AI tools to design, generate and evolve our test suite. AI is actively used to assist test authoring and maintenance, making this role ideal for those with curiosity or experience in this area.
This role plays a crucial part in scaling automated testing for complex domains such as payments, messaging, authentication and video, helping to enable smaller, more frequent and confident releases.
Key Responsibilities
- Build and maintain automated tests using Playwright (Python) and Pytest
- Translate manual smoke test cases into automated end-to-end and functional tests
- Increase test coverage in areas including payment processing, messaging and video sessions
- Utilise AI tools (e.g. GitHub Copilot, ChatGPT, Testim or similar) to accelerate test writing and code scaffolding
- Maintain structured, maintainable and well-documented test suites
- Collaborate with developers and testers to triage issues and identify test gaps
- Contribute to backend development in Django, particularly where tests and features overlap
- Help define and track test-related KPIs such as regression coverage and automation ROI
Our Tech Stack
- Python
- Django & Django REST Framework
- Playwright
- Pytest
- PostgreSQL
- GitHub Actions (CI/CD)
- WebSockets, Stripe, HTMX
- AI tools for code and test generation (e.g. GitHub Copilot, Cursor)
What We're Looking For
- Strong Python skills and enthusiasm for clean, testable code
- Experience writing automated tests using tools such as Playwright, Pytest, Selenium or similar
- Comfortable working in a Django or comparable backend framework
- Experience or interest in using AI tools to generate, extend or validate code and tests
- Familiarity with CI/CD pipelines and Git-based workflows
- Pragmatic approach, balancing automation ROI with test coverage objectives
- Willingness to develop into a broader development role, with quality as a central focus
Desirable (but not required)
- Experience automating tests for multiple user types or sites
- Understanding of payment flows, messaging systems or video/websocket integrations
- Familiarity with tools such as ChatGPT, GitHub Copilot, Cursor
- Experience converting legacy manual test suites into structured, automated frameworks
- Exposure to performance, integration or data integrity testing
What Success Looks Like
- Test automation is seamlessly integrated into every release cycle
- Regression coverage is improved and protects essential flows
- Manual testing decreases without compromising quality
- AI-assisted tools are effectively incorporated into the test and development lifecycle
- You are recognised as a valued contributor to both the codebase and overall quality strategy