We are seeking a full-time Software Engineer 2 in our Outdoor division in our Cary, NC location. In this role, you will be responsible for developing low-level embedded software for various Garmin Consumer Outdoor products. You will be developing C/C++ software that interacts with hardware including initial board bring-up, boot strapping the operating system, developing and integrating device drivers and power/thermal management.
Essential Functions
Creates and executes designs for small sets of new functionalities as part of a software project using C, C++, assembly language, or other selected languages
Read and interpret schematics, hardware vendor datasheets and reference manuals when developing and debugging device drivers
Regularly collaborate with hardware engineers and application software engineers to ensure product requirements are met
Work with wireless networking technologies, including ANT, Bluetooth/BLE and Wi-Fi, to allow communication with other outdoor products
Utilizes software engineering tools such as configuration management systems, build processes, and debuggers in the software development process
May perform as a technical leader or Lead Software Engineer for derivative software project
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)
Previous work or internship experience in design, particularly for consumer products
Linux programming experience
Multi-threaded software development
Wireless communication experience (Bluetooth/BLE, WI-FI)
Familiar with hardware communication interfaces (I2C, SPI, UART, USB)
Experience using laboratory equipment (e.g., logic analyzer, digital oscilloscope, In-circuit debuggers)
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