C++ Multimedia Software Engineer
About the Job
Garmin's Automotive team that partners with OEMs like BMW, Ford, Mercedes (and many more), is seeking a Senior Software Engineer with C++ experience to work on in-vehicle electronics, entertainment middleware including automotive grade infotainment and telematics systems, navigation software, location-based services and integrated portable navigation systems. If you have experience in multimedia, Set Top Box or TV industries, keep reading!
In addition to software development in C++ on Android (AOSP) and Linux, Auto OEM Software Engineers will design and/or review architected modules and software systems supporting new technology or improving capability/performance of existing functionality.
Software Engineers on the Entertainment team will also:
- Research, prototype, and evaluate new and emerging Entertainment technologies from the global markets
- Test and debug software using debuggers, emulators, simulators or logic analyzers
- Decompose functional requirements into well-defined tasks
- Research fundamental problems and implements algorithm solutions that are appropriate
- Balance quality, quantity and complexity in work output
- Offer peers technical assessments in areas of expertise, new technologies and software designs
- Assist design engineering as needed with component datasheet review and schematic design review
- May partner with electrical engineering and process manufacturer to turn on new processors
- Work with software vendors to integrate externally developed deliverables into project
- Evaluate new technologies as they apply to existing functions
- Participate in project leadership and/or program planning including providing technical input to product development plans and concept documents
- Make substantial contributions toward determination of project goal/objective feasibility
- Mentor and/or supervise less experienced Software Engineers
- Contribute to advanced technical research on new technologies
- Independently determines general approach and specific solutions to technical problems
- Offer process improvement suggestions and author new procedures as appropriate
- Provide reliable solutions to a wide range of difficult problems using sound problem-solving techniques
- Apply good judgment in setting schedules and risk taking
- Exemplify Garmin's Mission Statement and Quality Policy and proactively works to improve Garmin's image and culture
- Apply knowledge of production and operations issues as they relate to engineering
- Other responsibilities include reviewing product and/or application information manuals and brochures for technical accuracy and participating in product definition activities such as feature analysis and system tradeoffs.
Candidates for this role should possess a Bachelor of Science Degree in Computer Science, Electrical Engineering, Computer Engineering, Math or Physics or another relevant engineering/technical field AND a minimum of 5 years relevant experience OR an equivalent combination of education and relevant experience plus a cumulative GPA greater than or equal to 3.0 as a general rule.
Qualified candidates will also demonstrate proficiency with designing architecture software systems and modules that support new technology or improve capability/performance of existing functionality and competence with researching fundamental problems and implementing appropriate algorithmic solutions.
Other requirements for this role include:
- Strong C++ development skills
- Experience developing Linux-based solutions
- Experience with unit testing frameworks and automation
- Demonstrated capability to offer peer technical assessments in areas of expertise, new technologies and software designs
- Familiarity with developing, debugging, and optimizing embedded multi-threaded systems running on Intel or ARM based processors
- Previous experience developing on embedded devices
- Must possess relevant experience and/or training in data structures or object oriented design methodology relevant to Garmin's business needs
- Must possess relevant education and/or experience in software design, development and maintenance, as required for the successful performance of the essential functions of the position.
Preferred skills include Android AOSP (Android Open Source Project), specifically Android OS Media experience, Multimedia, codecs and Digital Rights Management experience.
Relocation assistance available.