Career Opportunity

Full Stack Software Engineer (Automation & DevOps)

Victoria, BC, Canada - Permanent, Full Time

For information about Rooof, our company culture, and our work values, please read our Team page.

Primary Responsibilities

  • DevOps:
    • Manage and enhance our integration, monitoring, and alerts within SumoLogic and PaperTrail.

    • Assist the Software Engineer (API) with the management of AWS.

    • Lead the implementation, monitoring, and regular usage of Continuous Integration for our Web-App, REST API, Chrome Extension, and Electron Platform.

  • Test Automation:

    • Suggest, implement, maintain, and operate a fully-automated suite of software tests for:

      • REST API (black box test automation)

      • Chrome Extension (e.g. Selenium)

      • Electron Platform (e.g. Spectron)

      • Web Application (e.g. Selenium)

    • Suggest, implement, maintain, and operate a fully-automated system for testing our XPath statements and Regular Expressions against various websites.

      • Does the given XPath statement return the expected results when applied to the given URLs?

      • Does the given Regular Expression return the expected results when applied to the given inputs?

Who you’d be working with

Our main product at the moment is our Chrome Extension and requires your primary attention. 

Our extension has almost entirely been written by Anton.  You’d be working with him to understand the existing code and seeing how we can add testing to the JavaScript/Vue.js codebase.  Catlin also works on our Electron version of the Chrome Extension and the Electron platform that we're building.  In only a few months he’s built up a solid understanding of the extension code and is building our Electron implementation on top of it. You’d be working with him to make sure we have testing in place for its release next year.  In addition to automated testing, we also need continuous integration for faster and more predictable deployment of these various components.

Adam has built the backend for our extension - our internal API.  We are transitioning to a new version of our API built in Python/Django.  You’ll be working with both him and another new software engineer who are working on the rewrite and transition the API while also building a web application against the new API.  We want to make sure that nothing is missed during the transition and that we have solid tests in place for the new version.  The new RESTful API needs automated testing and continuous integration for deployment.

Miranda integrates our software with our customers’ websites.  Integration is done through a somewhat complex process of reading their websites and using that information to create automated classified ads.  You’ll be working with Miranda as she leads the charge to transition us to a better way of doing things.  You’ll be responsible for understanding the process and figuring out how we can test it and monitor it's resilience.

As new product ideas are developed, you’d also be involved with them as well to make sure they are tested from the start.

Everyone on the team ultimately reports to Adam (the other one) and we’re seeking a Software Engineering Manager to help manage just the software engineers.  Matt is our Product Manager and he ensures that all aspects of our core products are running and growing as expected.


What does your day look like?

If you’re self-driven with a QA background, this role will be right up your alley.  We’re looking for someone who wants to take ownership of their role and basically build out their own plan.  As such, the way you go about getting QA in place and how you structure your day will be up to you.

Most likely, the first month or two will be getting up to speed with our different systems and where things are at.  You’ll be talking a lot to our other engineers to understand how things work and asking a lot of questions.

While doing that you’ll probably be developing a plan of what you’d like to tackle first and then figuring out how to implement your plan.

You’ll be writing tests in JavaScript, Python and Selenium (or another framework that can test a browser extension).

We use Sumo Logic for logging, monitoring and alerts.  You’ll write some searches in Sumo that will alert us if something is breaking in production.


Who are you?

  • You have 3+ years of programming experience
  • You have experience planning software development roadmaps
  • You may have experience implementing test automation and/or continuous integration
  • Any prior experience in DevOps, QA, or automation would be beneficial
  • You are self-driven and pro-active.  You’ll be expected to take ownership of all automated testing and deployment processes.
  • You have great attention to detail and you are committed to helping us prevent errors and omissions in our code
  • You look to solve the root problem instead of band-aid solutions
  • You communicate well.  You’ll be our internal champion for quality & reliability and will need to work well with our other engineers to make sure they understand the importance of testing and writing their code in a modular and testable manner.


What success looks like

After you’ve been here for 6 months, there will probably have been some releases that were stopped because it broke something and we only noticed because of the processes and automated testing you had put in place.  You’ll have saved hours of customer support time.

Our release processes will be streamlined.  You’ll have implemented continuous integration so that our code is constantly being pushed through the testing pipeline and being released.  Our engineering team will no longer have to worry about and spend time on releasing manually.

You’ll have contributed a large number of tests to all our different codebases.

Within our logging and alert platforms, you’ll have contributed to setting up dashboards and monitoring so that we’ll know earlier on if something is broken. 



Think you're the perfect fit? Email jobs at rooof dot com with an introduction, resume in PDF format, and anything else you would like us to know about you.  If you don’t have a fancy resume, then just send us a list of your experience and describe why it makes you good for this job.

In your introduction, tell us why you want to work at Rooof.  If you’ve ever done a similar job, tell us in a short story how you did something awesome.

If you want to really impress us, do something a little different...  Like an audio/video clip!

Our positions remain open until filled.