We are seeking a full-time Senior C/C++ Embedded Software Engineer in our Cary, NC location on our Marine embedded software development team. Seeking someone who is passionate about embedded development for wearable and handheld products. These products combine the best of Garmin's outdoor wearable offerings with marine apps and connectivity. You will be involved in developing new products and features for marine wearable and handheld products and corresponding connected features in marine chartplotters.
Essential Functions
Serves in a leadership capacity as an individual contributor for carrying out embedded software development in C and C++
Involved in displaying marine charts on the wearable products and will work with some wireless networking technologies, including ANT, Bluetooth/BLE and Wi-Fi, which connect these wearables to other onboard marine products
Works with, and modifies, ConnectIQ apps running on these portable products
May serve as a Lead Software Engineer for complex software development project designs and/or reviews architected modules and software systems supporting new technology or improving capability/performance of existing functionality
Decomposes functional requirements into well-defined tasks
Researches fundamental problems and implements algorithm solutions that are appropriate
Offers peer technical assessments in areas of expertise, new technologies and software designs
Assists design engineering as needed with component datasheet review and schematic design review
Participates in project leadership and/or program planning including providing technical input to product development plans and concept documents
Makes substantial contributions toward determination of project goal/objective feasibility and applies good judgment in setting schedules/risk taking
Mentors and provides guidance to less experienced Software Engineers (1 & 2)
Contributes to advanced technical research on new technologies
Offers process improvement suggestions and authors new procedures as appropriate
Provides reliable solutions to a wide range of difficult problems using sound problem solving techniques
Basic Qualifications
Bachelor's Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering or related field AND a minimum of 5 years relevant experience OR an equivalent combination of education and experience
Mastered proficiency in writing software in C and C++ on an embedded platform
Demonstrated proficiency with designing well architectured software systems and modules that support new technology or improve capability/performance of existing functionality
Demonstrated competence with researching fundamental problems and implementing appropriate algorithmic solutions
Demonstrated ability to serve as a lead software engineer for a complex software project
Ability to decompose functional requirements into well-defined tasks while balancing quality, quantity, and complexity in work output
Demonstrated capability to offer peer technical assessments in areas of expertise, new technologies and software designs
Demonstrated strong and effective verbal, written, and interpersonal communication skills
Must be positive, detail oriented, organized, team oriented and a driven problem solver, multi-tasker, and self-starter with the ability to prioritize and lead in a fast paced, deadline-driven environment
Desired Qualifications
Linux development experience
RTOS experience
Passion for boating or other on-the-water activities
Experience wtih GIT, Gerrit and JIRA
Familiarity with various networking protocols and standards, including TCP/IP, Wi-Fi, Controller Area Network (CAN)/NMEA, Bluetooth/BLE and ANT
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