Software Developer (Test Automation in DevOps)
Product Development | Burnaby, British Columbia, Canada | Full Time
In 2004, Teradici set out to create the best virtual desktop and workstation experience in the world, and along the way we've enabled the most demanding use cases with requirements like top secret security, complex IT infrastructures, and intensive graphics performance. Our PCoIP technology fundamentally simplifies how computing is provisioned, managed and used.
With over 15 million endpoints deployed around the globe, we're no startup. Top government agencies, media conglomerates, production studios, financial firms, and design houses trust Teradici to support their need for secure, high-performance virtual desktops and workstations delivered from private data centers, public clouds, or any combination of both.
You will be joining a team that is building a microservices application run and installed by customers. The team has responsibility for ensuring the end result fits the target customers' use cases and solves their business needs.
We believe in a DevOps culture, in strong communication and supporting what we develop; we do not toss product updates over the fence. You have a passion for automation and a knack for turn use cases, and user expectations into automated test cases. You have a broad knowledge base on common IT systems, and how to exercise the product's interaction with them to verify the end result will meet customer expectations. You have a strong belief in continuous delivery and building a testing pipeline that does not slow down the delivery of value to customers as well as ensuring ongoing security testing.
As a Software Developer who focuses on testing automation and CI/CD to embrace DevOps culture, you are part of the development team in building a quality product and designing automated test that will become part of the CI/CD pipeline of the new product, and enable high iterations and frequent releases with confidence. The automation will cover performance testing, functional testing, and compatibility testing and require the ability deploy different combinations and configurations of IT infrastructure on demand in different environments. Our goal is an always running test system that uses the latest development releases so that we do not have pauses waiting to verify a release is ready. You also believe in taking advantage of existing tools wherever they improve our capabilities and ability to delivery. Therefore, a commitment to collaborative problem solving, elegant and extensible design, and quality product is imperative. You believe in fail fast, detect fast, fix fast and deploy fast.
To be successful candidate, applicants must:
- Demonstrate passion for learning, testing, automation and quality
- Exhibit curiosity and excellent attention to detail
- Be a strong team player, who is not afraid to speak up, ask questions and be heard
- Writing well-documented, high performance, secure, reliable and maintainable code
- Creating proposals for technical solutions, team processes and procedures, and driving them through to adoption and implementation
- Building scalable, cost effective test automation with a focus on product level integration tests and end-to-end test
- Building, enhancing and maintaining an effective CI/CD pipeline
- Integrating automated security scanning and testing into the CI/CD pipeline
- Defining test strategy for the product
- Coaching other developers with regards to functional and performance testing, security, and maintainability
- Collaborating with other developers and influencing the team to gain support with regards to test strategy and test automation
- Reviewing and refining test plans created by team members
- Contribute to the appropriate test coverage in releases through the execution of test cases in a Manual and Automated manner
- Solving complex problems as simply as possible
- Drive to improve – whether it relates to a process, a tool, infrastructure, or general team knowledge – look to assist in making the impossible possible
- Bachelors or Masters in Computer Science, Computer Engineering, Software Engineering or equivalent
- 4+ years of relevant experience developing enterprise grade software
- Strong technical and testing skills including:
- First class analytical, diagnostic and problem solving skills
- Experience or knowledge on cloud native DevOps practices is highly desirable
- Excellent verbal and written communication skills with an ability to collaborate with UX designers, developers, product owners and other team members
- Passion to work in an exciting environment and deliver new technologies and products to the marketplace
- Ability to learn quickly
- Experience creating test automation to cover installation and configuration, functional testing, and performance testing
- Experience working with and configuring Linux systems
- Please advise in your application whether you are eligible to work in Canada
- An intense dislike for manual testing
- Experience using public cloud services (Azure, AWS or GCP)
- Experience in defining infrastructure as code using Terraform, Ansible, or Chef
- Experience with or knowledge of IT technologies such as LDAP, Active Directory, IP networking, DNS, or virtualization of networks or workstations
- Experience with software security and secure development lifecycles
- Experience with Python
- Experience with containers and container orchestration tools (i.e. Kubernetes and Docker)
- Experience with Git
- Knowledge of 12-factor app
- Experience with Azure DevOps
- Experience with Agile development approaches such as Scrum
- Practical knowledge of API security and modern authorization mechanisms, such as OAuth 2.0 and JSON Web Tokens
- Secure products. You understand the importance of a secure SDLC and that this is not an afterthought once all the features are developed.
- Automate everything. You actively automate many manual tasks as possible so that these tasks can be repeated many times and allow us to scale.
- Self-managed teams. You hold yourself accountable for the full end-to-end lifecycle of what you are working on, from ensuring you are building something that will deliver customer value to getting it into customers' hands.
- Customer collaboration. You want feedback from customers to ensure your work is providing value and to enable you to iterate on that work.
- Tech-debt reduction. Software can live longer that you expect; therefore, you need to ensure it stays healthy and manage your technical debt accordingly.
- Collective ownership. You value contribution, wherever it comes from, and believe in peer review, continuous integration, test coverage and customer validation.
- We offer a competitive base salary, Employee Bonus Plan (company performance based) and stock option grants. Our health benefits and retirement savings contributions start right away – no waiting period! We also offer three weeks of vacation for the first year (accrued and increased annually, up to 20 days per year)
- We develop and nurture our employees to be their best and bring their authentic selves to every team interaction. We strive for a dynamic team environment that is transparent and allows everyone to contribute and be heard.
- The health and safety of our employees is our top priority. As a result of COVID-19, we have implemented a Work From Home initiative for all employees and we encourage our teams to stay connected virtually during this time.
- Once our office is open again, we are excited to offer:
- Monthly social events & activities
- Luxury shuttle service to and from the nearest SkyTrain station
- Underground and secured bike "cage"
- Fully equipped onsite gym, Basketball, "Beach" Volleyball court and weekly yoga classes
- Teradici supports remote work flexibility using our own Cloud Access Software!