Home > Careers > Why RIM? > Careers > Software Engineering

Software Engineering

Engineered to win

Become a champion for growth by creating compelling and innovative customer solutions. As leaders in their industry, the RIM Software Engineering team tests the limits of your knowledge and will help you learn new skills that will elevate your career. This team is responsible for the design, development and software testing of BlackBerry® device applications as well as BlackBerry software. In Software Development, it is all about the delivery of high quality, reliable, maintainable, scalable, and high performance solutions that provide a useable and compelling visual experience for the customer.

Software Engineering is comprised of a variety of engineering disciplines including:

  • protocol stack development
  • embedded Software Development
  • DSP development
  • device application software
  • infrastructure and network software
  • server software development
  • software testing and integration
  • build and release
  • performance engineering

You will be working on large, mission-critical projects and systems in an extremely fast-paced environment that offers exceptional opportunities for personal and professional growth. You will liaise with other areas of the organization including software, hardware, manufacturing and product management.

Here are some of the positions that you will find within the Software Engineering area:

Embedded Systems Software Developer

The Embedded Systems Software Developer will help develop the kernel, device drivers and the file system for wireless devices. This group also develops the memory management, bootROM, code loader and simulators for these devices. This role includes:

  • assisting with the design and implementation of a real-time embedded OS
  • developing code to manage hardware peripherals within embedded devices
  • creating desktop tools to interface with embedded devices
  • participating in low-level debugging efforts with the ASIC, Circuit board, and Power groups

As well, this role is responsible for coordinating project activities within the group and has ownership of certain design areas.

DSP Firmware Developer

The DSP Firmware Developer will participate in the development of the physical layer and RF drivers for WCDMA wireless networks. The candidate will be programming in C and performing RF/baseband hardware debugging in mobile devices. The emphasis will be on the following areas:

  • Real-time software development for radio subsystems
  • Baseband interfacing including software support, schematic reviews, and debugging
  • RF hardware programming. Good knowledge of the analog/digital hardware design and understanding of main RF radio components is required
  • Low-level driver development for various embedded processor peripherals
  • RF performance analysis. This involves understanding the control loop (AFC, AGC and APC) algorithms and drivers
  • Interfacing to external (PC-side) calibration and configuration tools including HW specific calibration implementation
  • Assistance in mobile RF certification/conformance testing

Software Testing Specialist

The Software Testing Specialist is part of the Software Verification and Validation team for the BlackBerry solution. This person has the opportunity to work on exciting projects, helping ensure the product we release is of the highest possible quality. The software testing specialist is actively involved in setup of test environments, test case execution, reporting of results and some test case development and planning. The software testing specialist also works within the group to generate creative solutions to complex testing problems and is able to participate in ongoing process improvement, as well as conducting functional testing on various server based products.

View all opportunities in Software Engineering