Software Engineer

MEDA
United States
3 days ago
Apply on www.medagroup.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Experienced
Experience required
3 years minimum
Compensation
$112,320.0 - $116,480.0
Working hours
Regular working hours

Tech stack

Java (Programming Language) Abstraction Layers Application Programming Interfaces (APIs) Agile Methodology Android Software Development Automation of Tests Unit Testing C++ (Programming Language) Static Program Analysis Profiling Code Review Databases
+37 more
Computer Engineering Continuous Delivery Continuous Integration Software Debugging Linux Memory Management Dynamic Program Analysis Middleware Failure Mode Effects Analysis Graphical User Interface Inter-Process Communication Object-Oriented Software Development Performance Tuning Program Analysis Software Architecture Mockito ISO/IEC 15504 Memory Leaks Software Engineering Software Requirements Analysis Software Systems SonarQube Data Streaming Systems Integration Multithreading Performance Testing Test-Driven Development (TDD) Concurrency Kotlin Integration Tests Information Technology Deployment Automation Build Tools Automotive Software Messenger Software Performance Programming Languages

Job description

We are recruiting an experienced Software Engineer to join our team to support our client in the automotive industry., * Designing, developing, testing, integrating, deploying, and maintaining software applications, embedded software components

  • Platform services to meet customer needs
  • Entire software development lifecycle, including requirements analysis, software architecture, implementation, testing, integration, deployment, troubleshooting, and post-release support
  • Support complex automotive software systems, including Android Automotive, infotainment, digital cockpit, embedded platform services, and vehicle-facing applications
  • Collaborate with product owners, designers, architects, software developers, test engineers, and other cross-functional teams to deliver high-quality, reliable, and user-focused vehicle experiences
  • Engage with customers and cross-functional stakeholders to understand use cases, pain points, technical requirements, and user needs, advocating for reliable and user-centric software solutions
  • Solve complex software problems by designing, developing, integrating, testing, and delivering solutions using C++, Java/Kotlin, Android, embedded systems, and other appropriate technologies
  • Develop and integrate software for Android Automotive, infotainment, and digital cockpit systems, including graphical user interfaces, middleware, platform services, and vehicle-facing applications
  • Develop and maintain Android platform services and applications using Java/Kotlin and C++, including customized Android services, Binder-based communication, AIDL interfaces, and system-level components
  • Work within the Android Open Source Project (AOSP) to implement, customize, integrate, debug, and maintain Android platform functionality and system-level components
  • Design, develop, integrate, and troubleshoot automotive Hardware Abstraction Layer (HAL) components and modern Stable AIDL HAL interfaces
  • Assess software requirements and determine appropriate technology stacks, integration approaches, deployment strategies, and architectural solutions for embedded and automotive software systems
  • Create high-level software architecture designs defining system structure, components, interfaces, inter-process communication, data flow, and integration points
  • Own software features or components through the complete development lifecycle, from requirements and architecture through implementation, testing, release, post-release support, crash analysis, stability analysis, and continuous improvement
  • Collaborate with product owners, designers, architects, software developers, test engineers, technical product managers, and other stakeholders to deliver high-quality software throughout multiple release cycles
  • Define and implement software test strategies and quality practices, including unit testing, mock-based testing, integration testing, static analysis, dynamic analysis, and performance validation
  • Continuously improve software performance, reliability, memory usage, concurrency, and system stability. Diagnose and resolve crashes, memory corruption, race conditions, deadlocks, threading issues, and other complex system problems
  • Apply software engineering practices including test-driven development, continuous integration, continuous delivery, code reviews, automated testing, and agile development methodologies
  • Support security practices designed to safeguard customer and vehicle data, including appropriate encryption, access controls, and data protection mechanisms
  • Develop and maintain software interfaces, services, APIs, and system components as required by the product architecture and vehicle ecosystem
  • Evaluate and incorporate emerging technologies and capabilities to improve software functionality, reliability, development efficiency and over all vehicle user experience
  • Close collaboration with software, hardware, product, design, and test engineering teams and may involve development and integration of software components across the Android Automotive and embedded vehicle technology stack

Requirements

  • Bachelor’s Degree in Computer Science, Software Engineering, Electrical/Computer Engineering, or a related field
  • Practitioner-level experience with at least one programming language or framework
  • 4+ years of IT experience
  • 3+ years of software development experience
  • Experience should demonstrate progressively increasing responsibility in software design, development, testing, integration, troubleshooting, and delivery
  • Experience with C++ development is required, with demonstrated understanding of modern C++ development, memory management, multithreading, and software architecture
  • C++ or above, including strong knowledge of memory management, object-oriented programming, polymorphism, multithreading/thread synchronization, concurrency, lambda expressions, debugging, and performance optimization.
  • Automotive Hardware Abstraction Layer (HAL) development, integration, troubleshooting, or implementation.
  • Experience with Android Automotive OS, AOSP, Android platform architecture, or Android system services
  • Experience developing or integrating software within AOSP, including system-level components and platform customization
  • Familiarity with AOSP build systems, including Android.bp/Soong and Android.mk
  • Experience developing software for embedded automotive, infotainment, digital cockpit, or vehicle systems, * Master’s Degree in Computer Science, Software Engineering, Electrical/Computer Engineering, or a related field.
  • Experience owning a software feature or component through multiple release lifecycles, from inception and architecture through delivery and post-release support
  • Experience working within a complex software ecosystem involving multiple applications/services, displays, databases, networking, inter-process communication, and thread synchronization
  • Experience with Android Automotive, infotainment, digital cockpit, or other automotive embedded platforms
  • Experience developing or integrating AOSP platform components
  • Experience with automotive HAL and Stable AIDL implementations
  • Experience performing crash, stability, profiling, and performance analysis on production software
  • Java/Kotlin development for Android applications and platform services
  • Customized Android services development, including Bound Services, Foreground Services, AIDL, Binder/local Binder communication, Messenger, and WorkManager
  • Experience with Android framework integration and inter-process communication.
  • Experience developing Android applications as well as Android platform/system components
  • Experience with automotive development technologies, specifications, and processes such as CAN, ASPICE, FMEA, or equivalent
  • Experience with QNX, Automotive Grade Linux (AGL), or other embedded automotive operating systems
  • Experience with Android-specific profiling and debugging tools
  • Experience diagnosing memory corruption, race conditions, deadlocks, crashes, performance issues, and system stability problems
  • Experience with static and dynamic analysis tools such as SonarQube, Klocwork, Valgrind, or equivalent
  • Experience with unit-testing and mock frameworks such as Mockito, MockK, or equivalent

Benefits & conditions

  • $54.00 - $56.00 / hour (depending on experience)
  • Paid Benefits after 90 days (individual and family) - extended medical, out-of-country coverage, dental etc.
  • Pension eligibility, with employer match, after 1 full year of work

MEDA offers an excellent referral bonus. Great candidates know great candidates.

MEDA Limited is an equal opportunity employer and does not discriminate in employment on the basis of any of the protected reasons as described in the Ontario Human Rights Code. We are committed to providing accommodation for persons with disabilities, as described in the Accessibility for Ontarians with Disabilities Act, 2005, reasonable accommodation requests will be reviewed and granted to those that request assistance during our hiring process.

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.medagroup.com
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

10:40 min

Evaluating automotive software architectures and backend technologies

Georg Kühberger +1 · LIVE

5:46 min

Mocking repository endpoints with Mockito and REST Assured

Eric Deandrea Eric Deandrea · World Congress 2025

3:09 min

Understanding Kotlin Multiplatform and its compiler targets

Petar Marijanović · LIVE

52 sec

Running persistent Linux environments directly on Windows

Ben Breard Ben Breard · World Congress 2025

1:19 min

Advancing autonomous driving capabilities with specialized software talent

Katrin Lehmann Katrin Lehmann +1 · Coffee With Developers

5:31 min

Writing automated tests with Mockito and WireMock

Jakov Semenski · LIVE

Videos

See all

Related articles

See all