Software Developer in Test (Micro-services)
TeradiciBurnaby, British Columbiaa month ago
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.
We are looking for a talented, creative, and team-oriented software developer to join us in building the next evolution in our industry-leading PCoIP Cloud Access Software. Our team is responsible for the development of the Trust Center component of this initiative. The Trust Center is a set of micro-services that are responsible for the management, provisioning and authorization of IoT devices that run high-performant, ultra-secure, and highly-customizable remote access clients.
We believe in self-organizing teams, in strong communication, and supporting what we develop. We believe that the highest quality systems are designed with well designed unit, integration, and load tests, and we are looking for team members who understand the need to deliver highly-available, resilient, self-recovering, secure services to our customers. As part of the Trust Center team, you will help ensure that we are delivering an enterprise-class quality experience to our customers.
- Writing well-documented, reliable, and maintainable test code.
- Designing, developing, and maintaining test automation systems for Golang- and Node.js-based micro-services running in a Kubernetes cluster.
- Troubleshooting and isolating issues, filing reproducible bug reports, and validating bug fixes.
- Coaching other developers with regards to code quality, and test robustness beyond the happy path.
- Bachelors in Computer Science, Computer Engineering, Software Engineering or equivalent .
- 3+ years of experience developing enterprise-grade test automation systems.
- First-class analytical, diagnostic and problem-solving skills .
- Outside-the-box thinking to help isolate and eliminate hard to find flaws and vulnerabilities, ensuring delivery of product that is not only functionally sound but also resilient to failures and highly scalable.
- Excellent verbal and written communication skills with an ability to collaborate with developers, product owners and other team members in a Scrum environment.
- Passion to work in an exciting environment and deliver new technologies and products to the marketplace.
- Ability to learn quickly.
- Solid experience with testing RESTful APIs deployed in a micro-service / Kubernetes environment.
- Practical knowledge of API security and modern authorization mechanisms, such as OAuth 2.0 and JWT.
- Experience with Node.js, Go, Java, and/or Python.
- Experience with Git and CI tools.
- A knack for load testing, benchmarking, and optimization.
- Experience with containers and container orchestration tools (i.e. Kubernetes and Docker).
- Please advise in your application whether you are eligible to work in Canada.
- Message queueing protocols such as AMQP, MQTT.
- NoSQL databases (MongoDB, etc).
- Developing cloud-native applications using the Twelve-Factor methodology.
- Utilizing infrastructure as code using Terraform, Ansible, or Chef.
- Agile development approaches such as Scrum.
- 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 than 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!