Your browser cookies must be enabled in order to apply for this job. Please contact support@jobscore.com if you need further instruction on how to do that.

Software/Firmware Engineer

Product Development | Burnaby, British Columbia, Canada | Full Time

Job Description

About Us:

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.

Overview:

We are seeking talented Software Engineers to continue shaping and supporting our PCoIP Zero Client and Remote Workstation Card products. Based on our PCoIP SoC, the zero client and remote workstation card products have over 3 million users in a diverse range of markets, including healthcare, military, education, finance and media and entertainment.

You will be enhancing and supporting a wide range of technologies in our embedded firmware products, including USB peripherals, smart cards, network security protocols, VDI, DaaS, and high-end imaging.

Successful candidates will be keen to support real customers, ready to dive into a wide range of technologies and standards, comfortable working within a Scrum team, and have prior embedded firmware development experience as well as a willingness to get dirty with hands-on troubleshooting in the lab. Successful candidates will also realize that development does not exist in a silo and has impacts across the organization and out to customers, and that decisions made in other parts of the organization have an impact on their work. They will work to no only produce great product and code, but find ways to make their work and others' work more efficient and improve communication across the organization.

Responsibilities:

  • Design, implement, maintain and support embedded firmware, kernel drivers, and application software.
  • Work with team members to prototype, design, implement, integrate, and document product features.
  • Write well-documented, high performance, secure, reliable and maintainable code.
  • Troubleshoot and resolve issues that have been escalated by the support team to development.

Requirements:

  • Embedded development experience
  • Minimum of 5 years of C/C++ software development experience
  • Bachelors in Computer Engineering, Computer Science or equivalent
  • Experience delivering high quality, maintainable software into commercial products
  • Comfort in switching between both software and firmware development environments
  • Please advise in your application whether you are eligible to work in Canada

Bonus Points:

  • Knowledge and hands-on experience with kernel and device driver development (Linux and/or Windows).
  • Windows or Linux application development experience.
  • Experience in one or more of the following: IP networking protocols, 802.1x, certificates, SCEP, USB, smart cards, authentication protocols, encryption.
  • Experience with multi-threaded high-performance programming with in-depth knowledge of CPU architectures.
  • Experience developing secure firmware or software in accordance to industry best-practices (e.g.: OWASP, MSDL).
  • Hardware troubleshooting skills.
  • Experience working directly with end customers. 

Values: 

  • 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.

Perks:

  • 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!