We are seeking a full-time Embedded Software Engineer 2 on our Marine embedded software development team in our Cary, NC location. We are seeking someone who is passionate about developing GUI software and is excited about creating an amazing integrated messaging platform for boaters. You will be involved in building messaging applications, safety systems and device-to-device communication capabilities using radio, cellular, satellite and other communications technologies for marine displays and devices.
Essential Functions
Performs software engineering tasks at all phases of the SDLC including developing requirements, code, tests, and documentation for complex embedded display user interface software
Creates and executes designs for small sets of new functionalities as part of a software project using C and C++
Utilizes software engineering tools such as configuration management systems, build processes, and debuggers in the software development process
Designs and implements high- quality code that is efficient, maintainable and performant
Collaborates effectively with User Experience, Quality and cross-functional engineering teams
May serve as a technical leader on software development projects
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, Math, Physics or related field AND a minimum of 1 year relevant experience OR an equivalent combination of education and experience
Demonstrated proficiency and experience necessary to develop moderately complex user interface software in C and C++ for embedded systems
Proficient knowledge, utilization and mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators and logic analyzers)
Proficient knowledge of and experience with the C/C++ language for embedded applications including OOP concepts, memory management, data/control coupling, data structures, and pointers
Desired Qualifications
Linux development experience
Experience developing embedded software on a preemptive/multi-threaded RTOS
Passion for boating or other on-the-water activities
Familiarity with design, development and testing of high-level application and user interface code
Familiarity and/or proficiency with mid-level protocol API development and debugging, as needed for device-to-device communication
Experience with git, Gerrit, Microsoft Visual Studio or Visual Studio Code, JIRA and Microsoft Azure ADO
Familiarity with marine communications technologies such as VHF, AIS or satellite communications
Familiarity with UX design
Experience with multi-channel messaging applications
Familiarity with networking protocolsand standards, including TCP/IP, Wi-Fi,Controller Area Network (CAN)/NMEA,Bluetooth/BLE and ANT, and experience implementing and debugging network applications
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: Garmin Benefits