BlackBerry QNX- Senior Systems Software Developer - Graphics
Blackberry
Worker Sub-Type:
RegularJob Description:
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, 24 of the top 25 EV manufacturers and is running in more than 215 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.
Are you the person we are looking for?
The Product Engineering unit is focused on product opportunities as they relate to our markets and the growth of our product portfolio considering the future technology. In this role, you will be responsible for maintaining and augmenting the graphics subsystem (Window system, Display controllers and GPU drivers) on both native and virtualized systems.
Using your extensive knowledge of embedded systems and deep system knowledge, you will provide the technology leadership in all aspects of the software solutions from architecture, design, infrastructure costs, tech stack, scalability, reliability, availability, and performance to software quality. You will partner with product managers, architecture teams and customers to discover and deliver the solutions for the problems across multiple industries including our high-profile automotive Tier 1 accounts.
You must be someone with ideas and real passion for software delivered to maximize reuse, efficiency, and simplicity. Our customers count on us to convert awesome ideas into great products and services.
We thrive in a culture of innovation, technical depth and breadth, exploration and experimentation and provide great career growth opportunities. In return for your skills, expertise, and passion, we will provide you with an attractive compensation & bonus package with excellent benefits. Join us and you will become part of a team that is already leading the way and has even bigger plans for the future. What we are working on is truly ground-breaking!
You will:
Develop 2D and 3D graphics drivers for a wide range of GPU’s and maintain QNX Graphics subsystem (Display, GPU, Window system, font engine).
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.
Integration of QNX Hypervisor and Android onto embedded hardware platforms.
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.
Coach and mentor team on engineering best practices such as writing clean code, designing scalable, reliable, and performant software solutions, set and ensure compliance to software quality standards, safety standards etc.
You will have:
Bachelor’s degree in Computer Science, Computer Engineering or Engineering related field, or equivalent practical experience with a proven track record in technical roles
Proven and significant driver development experience in C, C++ and assembly language.
A high degree of expertise in 2D and 3D graphics
Expertise in embedded systems on major processor architectures (ARM, x86, PPC, etc.)
A thorough understanding of Operating System concepts (virtual memory, multithreading etc.)
Expertise in troubleshooting and debugging (by instrumentation, trace logging, core-analysis, applying various tools to extract information, code-reviews, JTAG, etc.)
Strong analytical skills, software debugging skills and troubleshooting skills, hands-on experience with the tools and techniques necessary to perform root cause analysis, and ability to come up with win-win solutions in complex business situations.
Excellent communication, interpersonal and collaboration skills to work with a diverse, global set of internal and external stakeholders.
Challenging self and team, open to giving and receiving feedback and welcome diversity.
If you have any of these then that would be great:
Familiarity with OpenGL/OpenGL ES/Vulkan
Working knowledge of development host operating systems (Windows NT/XP/2k, QNX, Linux).
Programming experience in a POSIX environment
Familiarity with the QNX Neutrino RTOS
Work closely with QNX customers and 3rd party HW 2D/3D vendors.
Familiarity with display controllers.
Familiarity with Android and WebGL implementations
Ability to handle ambiguity and collaborate across multiple groups and disciplines.
Imagine what you could do at QNX! Our customers count on us to convert awesome ideas into great products and services. We have some of the brightest minds working on cutting edge platforms at QNX. Join us and you’ll become part of a team that is already leading the way and there is no telling what you could accomplish.
Scheduled Weekly Hours:
40