Job Description:OverviewWe are seeking a full-time Embedded GUI Software Engineer in our Cary, NC location on our Marine Media team. We’re seeking someone who is passionate about creating great media and entertainment experiences using C++ on the GUI layer of the embedded Linux stack. You will be involved in building software applications that deliver high-quality audio, video and other forms of media and entertainment, along with applications that represent weather, fishing recommendations and other visual content, for recreational boaters. These software applications integrate marine chartplotters, stereos, cameras and other video sources, and other devices.Essential Functions
Creates and executes designs for small sets of new functionalities as part of a software project using C and C++ on the GUI layer on Linux
Collaborates effectively with UX, Quality and other engineering teams
Utilizes software engineering tools such as configuration management systems, build processes, and debuggers in the software development process
Collaborates and adds value through participation in peer code reviews, providing comments and suggestions
Provides reliable solutions to a variety of problems using sound problem solving techniques
Performs technical root cause analysis and outlines corrective action for given problems
Contributes to technical research on new technologies
Estimates level of effort, evaluates new options of similar technology, offers suggestions to improve processes, and provides feedback on some electrical design aspects
Serves as a mentor to less experienced software engineers (Software Engineer 1)
Basic Qualifications
Bachelor’s Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Aerospace Engineering, Math, Physics or related field AND a minimum of 1 year relevant experience OR an equivalent combination of education and experience
Excellent academics (cumulative GPA greater than or equal to 3.0 as a general rule)
Demonstrated proficiency and experience necessary to develop moderately complex software in C, C++, C#, Java, assembly language, or other selected languages
Proficient knowledge, utilization and mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators and logic analyzers)
Desired Qualifications
Outstanding academics (cumulative GPA greater than or equal to 3.5)
Linux development experience
RTOS experience
Passion for boating or other on-the-water activities
Passion for audio, video or other entertainment technologies
Familiarity with design, development and testing of high-level application code, including user interface
Familiarity and/or proficiency with mid-level protocol development and debugging, as needed for device-to-device communication
Experience with git, Gerrit, JIRA and Microsoft Azure ADO
Familiarity with UX design is a plus
Familiarity with audio or video encoding, or weather data representations such as GRIB, is a plus
Familiarity with networking protocols and standards, including TCP/IP, Wi−Fi, Controller Area Network (CAN)/NMEA, Bluetooth/BLE and ANT, and experience implementing and debugging network applications, are a plus
Garmin International is an equal opportunity employer. Qualified applicants will receive consideration for employment without regard to race, religion, color, national origin, citizenship, sex, sexual orientation, gender identity, veteran’s status, age or disability.This position is eligible for Garmin's benefit program. Details can be found here: