BlackBerry QNX Senior Systems Software Developer (Graphics)
City : Ottawa
Category : Software & Systems
Industry : IT
Employer : BlackBerry
BlackBerry® QNX® is a trusted supplier of safe and secure operating systems, hypervisors, frameworks and development tools, and provides expert support and services for building the world’s most critical embedded systems. We are the embedded experts. BlackBerry QNX was born in embedded, and provides time-tested and trusted foundation software, including our deterministic microkernel real-time operating system (RTOS), safety-certified products, middleware and security solutions, all purpose-built for embedded systems.
BlackBerry QNX software is trusted by more than 68% of the Electric Vehicle market by volume, 23 of the top 25 EV manufacturers and is running in more than 175 million vehicles globally. Our foundation products have been pre-certified to ISO 26262 ASIL D and we offer a broad range of board support packages, professional services, AUTOSAR adaptive support and middleware solutions – from acoustic management, to digital cockpits to advanced driving assistance (ADAS) - to accelerate development and help OEMs meet Start of Production (SOP) dates.
To develop low level graphics drivers for existing and new GPU’s, working with both 2D and 3D graphics with an emphasis on the OpenGL ES specification, and Vulkan.
- Develop 2D and 3D graphics drivers for a wide range of GPU’s
- Reading technical register documentation and schematics
- Create and document software specifications and designs that address the needs of QNX customers.
- Unit test and debug implementations on all relevant target architectures for the project (ex. ARM and X86).
- Identify, analyze, and resolve potentially complex problems and inadequacies in software.
- Provide project estimates for requirement, design, implementation, and test efforts.
- Maintain an in-depth understanding of current software department approaches and standards through communication with development team members, technical leads, and management.
Education and Experience:
- Bachelor’s degree in Computer Science, Mathematics, Engineering or equivalent.
- 5+ years of driver development experience in C
- A high degree of expertise in 2D and 3D graphics
- A thorough understanding of Operating System concepts (virtual memory, multithreading etc.)
- Working knowledge of development host operating systems (Windows NT/XP/2k, QNX, Linux)
- Prior experience in developing for embedded systems
- Excellent communication and interpersonal skills
- Understanding of low level programing such as hardware registers, DMAs, ISRs
- Familiarity with display controllers
- Familiarity with OpenGL/OpenGL ES/Vulkan
- Familiarity with the QNX Neutrino RTOS
- Assembly language programming experience on ARM, and x86 platforms
- Programming experience in a POSIX environment
- Familiarity with Android and WebGL implementations
- Understanding of major processor architectures (ARM, x86, etc.) is an asset
Scheduled Weekly Hours:40