Overview
We are seeking a full-time Embedded C Software Engineer in our Olathe, KS location on our Marine Services team. This role will work at the middle layer of the embedded stack, programming on Linux. We’re seeking someone who is excited to develop systems that connect the devices on a customer’s boat with mobile apps and the cloud. You will develop core technologies for marine products, such as OTA software updates, network file systems, device discovery, and data synchronization.
Essential Functions
• Serves in a leadership capacity as an individual contributor for carrying out software development in Embedded C on the mid level of the embedded stack
• Works effectively across multiple software layers, including UI, application logic, data persistence and network communications
• Works collaboratively with UX teams to design intuitive and concise user interfaces
• 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
• Makes substantial contributions toward determination of project goal/objective feasibility and applies good judgment in setting schedules/risk taking
• 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 1year relevant experience (not including internships) OR an equivalent combination of education and experience
• Proficiency in writing software in embedded C programming on Linux and relevant experience and/or training in data structures or object-oriented design methodology
• Demonstrated proficiency with designing well architected 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
• 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
• Familiarity with application layer protocols like HTTP and JSON
• Mobile application development for iOS or Android
• Passion for boating or other on-the-water activities
• Familiarity with D-Bus, mDNS, and C++14/17
• Experience designing client/server protocols
• 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
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