Software Engineer Controls

  • Location: Kanata, Ontario
  • Type: Contract
  • Job #105631

Job Title: Embedded Software Engineer (Android Automotive)
Location: Ottawa, ON (Hybrid – 4 days/week onsite)
Employment Type: Contract
Pay Range: $37 – $39 per hour

Summary
We are seeking an experienced Embedded Software Engineer to support the development of next-generation digital cockpit and infotainment experiences. This role offers the opportunity to work on cutting-edge automotive software, creating innovative vehicle interfaces and connected experiences using Android Automotive technologies.
As part of a collaborative engineering team, you will develop high-quality software solutions that power graphical user interfaces, middleware, and platform services for advanced in-vehicle systems.

Responsibilities

  • Develop new features and functionality for digital cockpit and infotainment platforms.
  • Design, implement, test, and support software solutions throughout the full product lifecycle.
  • Create robust Android Automotive services, applications, and platform components.
  • Develop software using Java, Kotlin, and C++ within Android Automotive and AOSP environments.
  • Collaborate with software engineers, test engineers, designers, product managers, and technical leads.
  • Contribute to architecture discussions and advocate for best practices in software design and development.
  • Perform unit testing, code reviews, static analysis, and performance optimization.
  • Support post-release activities including troubleshooting, stability improvements, and crash analysis.
  • Deliver high-quality code for complex application ecosystems involving multi-threading, networking, databases, and multi-screen experiences.

Required Qualifications

  • Bachelor’s degree in Computer Science, Software Engineering, or a related field.
  • 5+ years of software development experience.
  • 3+ years of experience with C++ (C++17 or newer).
  • 3+ years of experience with Java and/or Kotlin.
  • At least 1 year of experience developing Android applications.
  • At least 1 year of experience working within the Android Open Source Project (AOSP).

Technical Skills

  • Strong understanding of:
    • Memory management
    • Polymorphism
    • Thread management and synchronization
    • Lambda expressions
  • Experience developing customized Android services, including:
    • Bound Services
    • Foreground Services
    • AIDL
    • Local Binders
    • Messengers
    • WorkManager
  • Experience with AOSP build systems, including:
    • Android.bp
    • Soong
    • Android.mk
  • Proven ownership of features or components through complete release lifecycles from design through production support.
  • Experience with software architecture, design patterns, unit testing, and mocking frameworks such as Mockito or MockK.
  • Familiarity with code quality and analysis tools such as SonarQube, Klocwork, Valgrind, or similar platforms.
  • Experience working in Agile environments.

Preferred Qualifications

  • Automotive software development experience.
  • Knowledge of CAN, ASPICE, FMEA, or related automotive standards and processes.
  • Experience developing Hardware Abstraction Layers (HALs), especially for automotive systems.
  • Experience with Stable AIDL HALs and Android 11 standards.
  • Hands-on experience using Android profiling and debugging tools to investigate memory corruption and race conditions.
  • Experience with QNX or Automotive Grade Linux (AGL).
  • Master’s degree in a related field.

#LI-MS1

Scroll to Top