
Senior Embedded Logging Software Developer
Required skills
- Embedded
- Logging
- Software Developer
- C/C++
- Android Java
- Android Automotive
- Linux
- QNX
- Telemetry
- Fleet scale
Nice to have
- Control plane services
- Configuration retrieval
- Arbitration
- Persistence/fallback
- Data plane pipelines
- Streaming
Role summary
General Motors Canada is seeking a Senior Embedded Logging Software Engineer to design and integrate embedded data pipelines for a unified Vehicle Observability Data Architecture. This hybrid role requires 5+ years of embedded software development experience in C/C++ and Android, with expertise across Android, Linux, and QNX. Responsibilities include owning and developing software solutions, leading code reviews, conducting software verification, and mentoring junior members. The role focuses on defining and implementing observability SW, supporting local data access, integrating control and data planes, and ensuring reliability, performance, and security. Preferred qualifications include experience with specific control/data plane services and automotive cybersecurity.
Job Description
Vacancy Status:
This posting is for an existing vacancy within the organization and is open to new applications.
AI Disclosure:
As part of the application process, Artificial Intelligence will be used in the hiring process for this role
Work Arrangement: This role is categorized as hybrid. This means the successful candidate is expected to report to the office three days per week, at minimum
The Role:
The Data Engineering organization at General Motors Canada is developing a unified, scalable Vehicle Observability Data Architecture to enable consistent, secure, and high‑fidelity data from vehicle ECUs to the cloud. We’re seeking a Senior Embedded Logging Software Engineer to design and integrate embedded data pipelines across diverse in‑vehicle platforms, ensuring cohesive interaction between the control plane (configuration, arbitration, lifecycle) and the data plane (streaming telemetry and file‑based transfer).
The ideal candidate brings deep embedded expertise in C/C++ and Android, a track record of delivering solutions across Android Automotive, Linux, and QNX, and hands‑on experience scaling observability data flows from ECU to cloud while meeting strict reliability, performance, and security requirements.
What You'll Do (Responsibilities)
Own and develop software solutions as part of a larger team; leading and participating in feature development, maintenance of existing features, and bug fixes
Lead and participate in code, and test case reviews
Conduct software verification (unit, and integration testing as needed)
Provide clear and complete documentation per the software development process
Collaborate with team members through Scrum/Agile
Take ownership of each project, make design and implementation decisions autonomously, and mentor junior members
Be an integral part of a new and energetic team
Embedded Observability Infrastructure
Define and implement observability SW across Android, Linux, and QNX
Support vehicle‑local data access mechanisms (e.g., USB‑based retrieval) when connectivity is limited
Control Plane Integration
Build/extend Libraries to handle configuration retrieval, validation, arbitration, and persistence/fallback to last‑known‑good
Define API contracts for library integrations
Data Plane Integration
Specify behaviors to ensure dependable delivery under varying connectivity and resource conditions.
Reliability, Performance & Security
Implement runtime controls to enable/disable observability data
Ensure compliance with cybersecurity and data‑protection requirements for local and remote access to observability data
Standards, Documentation & Collaboration
Produce clear design documents, configuration guides, and support operational runbooks
Collaborate closely with embedded platform teams, observability/data engineering, product, and validation to deliver end‑to‑end data flows from ECU to cloud
Your Skills & Abilities (Required Qualifications)
Bachelor’s degree in Computer Science, Engineering, or a related field.
5+ years in embedded software development or systems engineering across Android, Linux, and/or QNX.
Strong coding proficiency in C/C++ and Android Java with experience in platform‑level integrations.
Experience designing metrics/telemetry for operational visibility and remote control at fleet scale.
Clear, concise technical communication; strong cross‑team collaboration and design documentation skills.
What Can Give You a Competitive Advantage (Preferred Qualifications)
Experience integrating with control plane services (configuration retrieval, arbitration, persistence/fallback) and data plane pipelines (streaming and file‑based transfer).
Experience developing SW Observability components
Experience designing driver/HMI‑initiated capture flows (e.g., create/upload data).
Knowledge of automotive cybersecurity controls and data‑protection processes.
Exposure to OpenTelemetry, protobuf/gRPC, or similar observability/data‑plane technologies.
Contributions to or strong affinity for open‑source observability/logging ecosystems.
Automotive domain familiarity: ECU architectures, SoC platforms, diagnostics, failure/crash analysis
Compensation:
The salary range for this role is $115,000 to $164,600. The actual base salary a successful candidate will be offered within this range will vary based on factors relevant to the position.
GM DOES NOT PROVIDE IMMIGRATION-RELATED SPONSORSHIP FOR THIS ROLE. DO NOT APPLY FOR THIS ROLE IF YOU WILL NEED GM IMMIGRATION SPONSORSHIP NOW OR IN THE FUTURE.
Benefits Overview
The goal of the General Motors of Canada total rewards program is to support the health and well-being of you and your family. Our comprehensive compensation plan currently includes the following benefits, in addition to many others:
Paid time off including vacation days, holidays, and supplemental benefits for pregnancy, parental and adoption leave;
Healthcare, dental, and vision benefits;
Life insurance plans to cover you and your family;
Company and matching contributions to a Defined Contribution Pension plan to help you save for retirement;
GM Vehicle Purchase Plan for you and your family.
About GM
Our vision is a world with Zero Crashes, Zero Emissions and Zero Congestion and we embrace the responsibility to lead the change that will make our world better, safer and more equitable for all.
Why Join Us
We believe we all must make a choice every day – individually and collectively – to drive meaningful change through our words, our deeds and our culture. Every day, we want every employee to feel they belong to one General Motors team.
Non-Discrimination and Equal Employment Opportunities
General Motors is committed to being a workplace that is not only free of unlawful discrimination, but one that genuinely fosters inclusion and belonging. We strongly believe that providing an inclusive workplace creates an environment in which our employees can thrive and develop better products for our customers.
We encourage interested candidates to review the key responsibilities and qualifications for each role and apply for any positions that match their skills and capabilities. Applicants in the recruitment process may be required, where applicable, to successfully complete a role-related assessment(s) and/or a pre-employment screening prior to beginning employment. To learn more, visit How we Hire.
Accommodations
General Motors offers opportunities to all job seekers including individuals with disabilities. If you need a reasonable accommodation to assist with your job search or application for employment, email us or call us at 1-800-865-7580. In your email, please include a description of the specific accommodation you are requesting as well as the job title and requisition number of the position for which you are applying.
Sample General Motors interview questions
- 1
Merge a New Interval Merge a new interval into a list of non-overlapping intervals. Input: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8] Output: [[1,2],[3,10],[12,16]] Explanation: The new interval overlaps with [3,5], [6,7], and [8,10], merging them all into the unified block [3,10].
codingmedium - 2
Determine the number of connected components in an undirected graph.
codingmedium - 3
Product of Array Except Self Calculate the product of an array except for self without using division. Input: nums = [-1,1,0,-3,3] Output: [0,0,9,0,0] Explanation: The single zero zeros out all products except at its own index, which cleanly multiplies the remaining elements.
codingmedium - 4
Unique Combinations that Sum to a Target Find all unique combinations in an array that sum to a target. Input: candidates = [2,4,6], target = 6 Output: [[2,2,2], [2,4], [6]] Explanation: Uses backtracking to find all valid combinations that sum to 6, allowing for explicitly repeated elements.
codingmedium - 5
Search for a word in a 2D board of characters.
codingmedium
Get started to unlock a personalized interview prep pack for this role.
Similar roles
Staff Embedded Logging Software DeveloperGeneral Motors · Oshawa, ON · Hybrid- Software Developer 1Zynga · Toronto, ON · Onsite
Software DeveloperJohns Hopkins Applied Physics Laboratory · Laurel, MD · Hybrid- Software Developer, AI PlatformsFedWriters · Remote · Remote
- Remote software developerNaples Jet Center · Remote · Remote
Software DeveloperAmentum · Dahlgren Nswcdd, VA · Onsite
