Senior Software Developer - Linux Client
Product Development | Burnaby, British Columbia, Canada | Full Time
Teradici is the creator of the PCoIP remoting protocol technology and Cloud Access Software, the cutting edge solution for a cloud-ready future. The Company, founded in 2004 and based in Vancouver, Canada is focused on its core mission of seamless delivery of workstations and applications for end-users.
Teradici PCoIP® technology brings the next generation of secure remoting technology to the marketplace, enabling visualization of even the most graphics-intensive applications. Teradici Cloud Access Software, built on PCoIP technology, enables enterprises to securely leverage public cloud GPU instances to confidently lift and shift the most graphics-intensive Windows or Linux applications to the public cloud, avoiding costly rewrites.
The company’s technology is deployed by Fortune 500 enterprises, government agencies and service providers from around the world. Teradici also works closely with leading cloud providers to continue delivering the best user experience and enabling our customers the ability to scale to millions of users.
We are looking for a talented, creative and team orientated Senior Software Developers to participate in the design and development of our PCoIP Cloud Access Software, which is used by many of the big names in the Media & Entertainment industry, offering a secure, full-fidelity user experience - delivering the ultimate in remote access performance. Our Cloud Access Software product spans Linux, and Windows including kernel drivers and application software. In addition the client product suite includes MacOS, iOS and Android clients.
As part of an Agile development team, you will be responsible for the design, development and testing of software for all levels of the product. To be successful in this role, you should have previous experience in application development on Linux.
- Work within a Scrum team to design, implement and maintain application software and kernel drivers.
- Create proposals for technical solutions, team processes and procedures, and driving them through to adoption and implementation.
- Coach other developers with regards to code quality, security, maintainability and solution architecture.
- Write high performance, secure, reliable and maintainable code with solid unit test coverage.
- Troubleshoot issues in the lab, utilizing debugging tools for application software and kernel drivers.
- Bachelors or Masters in Computer Science, Computer Engineering, Software Engineering or equivalent
- Minimum of 10 years of C++ software development experience
- Experience with application frameworks (e.g. electron, Qt, nodejs)
- Excellent software design and programming skills
- Linux application development experience
- First class analytical, diagnostic and problem solving skills
- Excellent verbal and written communication skills with an ability to collaborate with 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
- Please advise in your application whether you are eligible to work in Canada
- Windows, MacOS, iOS, Android cross platform application development experience
- Experience with multi-threaded high performance programming with in-depth knowledge of CPU architectures
- Working knowledge of data compression algorithms
- Knowledge and hands-on experience with hyper-visor/kernel and device driver development (Linux, MacOS and/or Windows)
- Hands on experience with test automation and scripting languages (e.g. Perl and/or Python)
- Experience with 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 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), stock option grants, retirement savings and attractive benefits package. We also offer three weeks of vacation for the first year (accrued and increased annually, up to 20 days per year).
- Monthly social events & activities.
- Luxury shuttle service to and from the nearest SkyTrain station.
- Underground and secured bike "cage".
- Fully equipped (and recently renovated) onsite gym, and Basketball and "Beach" Volleyball courts. Or you can join our yoga classes.