QA Engineer

Rooof • Posted August 30th

Location
REMOTE ONLY
Position
Category
Software Development
Rooof logo

QA Engineer

At Rooof, we build the world’s best software for automatically creating classified ads. That said, we’re even more proud of our team. We love working together and we’re very good at what we do – just ask our customers! We’ve been growing and are now looking for a QA Engineer to join our team and take our QA practices to the next level. In summary, you will be responsible for establishing test environments, creating and maintaining automation and regression test suites, monitoring performance per release, analyzing test results, identifying bugs, and looking for opportunities for additional automation within our systems.
 
If you have a passion for testing and automation, and are an effective communicator with excellent problem-solving skills, then we would like to meet you.  As a QA Engineer you will work closely with our development team to create quality builds based on automated frameworks that push our software to its limits.

What you'd be working on:

Test Automation: Rooof has several automated test suites that run periodically, you’ll be getting familiar with what we have and it will be your responsibility to expand on them by maximizing coverage of existing test suites, as well as introducing new systems and processes where required. 

Hands-on Testing: Although the end goal is automation and we are making progress in that regard, there are still some systems that require hands-on testing at this time (like part of the regression suite), and realistically, there will always be a bit of a non-automated, human element at various stages of our product life-cycle, including new feature/improvement testing, and bug reproduction and reporting.
 
Performance Testing: To date, Rooof has not had the opportunity to heavily invest in product performance testing; you will be helping to find effective ways to measure and analyze metrics per release. This testing will assist us in identifying damaging code before it is released and help drive future design.
 
Cross System Testing and Staging:As our products expand there will be an increasing number of interconnected components.  One of your challenges will be creating and maintaining test/staging environments that can effectively be used in automated testing of our internal systems and external integrations.  We utilize AWS to host our servers and you’ll need to understand how the pieces fit together before coming up with an effective strategy to automatically create, populate and test the interconnecting pieces.
 
Monitoring and Alerts: QA is also tasked with monitoring and creating alerts & dashboards. The alerts are triggered based on test results, build statuses and logs from production systems. The dashboards give us a red/green light view of the world as well as several drill-down views of specific statistics and trend analysis . Both alerts and dashboards already exist in some form but maintaining and expanding on them will be part of the role

Requirements:

We need someone who loves technology, is willing to learn, and is comfortable with coding/scripting. An ideal candidate should tick as many of the following boxes as possible: 
  • Hands-on experience with programming languages, including JavaScript and Python.
    Our current products and test suites primarily utilize these two languages.
  • Hands-on experience with simple front-end development (e.g. HTML, JS and CSS)
  • Experience setting up virtual environments
  • Experience creating Selenium test cases
  • Comfortable around databases and creating SQL queries (e.g. PostgreSQL)
  • Comfortable building software using Continuous Integration (e.g. CircleCI)
  • Familiarity with development tools and environments (e.g. GitHub, JIRA)
  • Motivated self-starter with excellent time management skills
  • Excellent problem-solving skills
  • Inquisitive nature
  • Team player with strong written and verbal communication
  • 2+ years of work experience in a QA or Test Engineering role
  • BSc degree in Computer Science
    or degree/diploma in another relevant field
    or comparable real-world testing experience
 

Nice to haves:
  • Hands-on experience with creating and managing cloud-based services (e.g. AWS)
  • Experience with setting up software metrics and performance testing
  • Experience with OpenSearch or Elasticsearch.

Short Summary of Responsibilities:
  • Create and maintain automated test suites
  • Manually complete issue and regression style testing
  • Create performance tests that run per release
  • Create and maintain testing environments
  • Create, monitor, and maintain alerts and dashboards
  • Provide expert opinion on testing, issue investigation and bug reporting.
  • Look for opportunities to automate Rooof software and processes

What does success look like?
  • You are producing automated test suites and frameworks using the latest tools and services that are continually shifting us away from manual processes, saving us time without sacrificing, and ideally increasing, quality and robustness.
  • You have a high rate of identifying development issues and bugs before they get released to our production systems - Phew!
  • Everyone appreciates your efforts in monitoring dashboards and contacting appropriate teams when alerts are triggered, the world feels like a safer place under your watchful eye!