Garmin Embedded Linux / C Software Engineer - Marine Product Team in Cary, North Carolina
Garmin’s Marine Telematics ngineering team has an exciting opportunity for a full-time Senior Software Engineer who is passionate about on-device wireless technology and IP-based protocols. In this role, you will contribute to Garmin products that utilize networking technologies to transport audio, video, and data over Wi-Fi and LTE to implement peer-to-peer communications services for remote video monitoring, remote instrument sampling, and remote operation of vessels’ integrated systems. Essential fucntions include:\n\n\n\t\n\tServes in a leadership capacity for developing software in C on embedded Linux\n\t\n\tDesign, implement, integrate, debug, and optimize IP-based protocols using embedded Linux on Garmin devices \n\tDevelop Marine embedded network-based applications and services.\n\tVerify network application performance through testing protocols and data analysis.\n\tProvide reliable solutions to a wide range of difficult problems using sound problem solving techniques\n\tOffer technical assessments in areas of expertise regarding new technologies and software designs \n\tParticipate in code reviews, giving and receiving detailed feedback with other engineers; also serve as a mentor to less experienced software engineers\n\t\n\tMay serve as a Lead Software Engineer for a complex software development project Designs and/or reviews architected modules and software systems supporting new technology or improving capability/performance of existing functionality \n\t\n\t\n\tDecomposes functional requirements into well defined tasks \n\t\n\t\n\tResearches fundamental problems and implements algorithm solutions that are appropriate\n\t\n\t\n\tBalances quality, quantity and complexity in work output\n\t\n\t\n\tOffers peer technical assessments in areas of expertise, new technologies and software designs \n\t\n\t\n\tAssist design engineering as needed with component datasheet review and schematic design review\n\t\n\t\n\tMay partner with electrical engineering or process manufacturer to turn on new processors\n\t\n\t\n\tMay work with software vendors to integrate externally developed deliverables into project\n\t\n\t\n\tEvaluates new technologies as they apply to existing functions\n\t\n\t\n\tParticipates in project leadership and/or program planning including providing technical input to product development plans and concept documents\n\t\n\t\n\tMakes substantial contributions toward determination of project goal/objective feasibility\n\t\n\t\n\tMentors and/or supervises to less experienced Software Engineers (1 & 2) \n\t\n\t\n\tContributes to advanced technical research on new technologies \n\t\n\t\n\tIndependently determines general approach and specific solutions to technical problems \n\t\n\t\n\tOffers process improvement suggestions and authors new procedures as appropriate\n\t\n\t\n\tProvides reliable solutions to a wide range of difficult problems using sound problem solving techniques\n\t\n\t\n\tApplies good judgment in setting schedules and risk taking\n\t\n\t\n\tExemplifies Garmin’s Mission Statement and Quality Policy and proactively works to improve Garmin’s image and culture\n\t\n\t\n\tApplies knowledge of production and operations issues as they relate to engineering\n\t\n\n\n \n\nOTHER RESPONSIBILITIES:\n\n\n\t\n\tReview product and/or application information including manuals and brochures for technical accuracy\n\t\n\t\n\tParticipate in product and/or application definition activities including feature analysis and system tradeoffs\n\t\n\t\n\tPerform other duties as necessary\n\t\n\n\n Bachelors of Science Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Math or Physics or another relevanat engineering/technical field AND a minimum of 5 years relevant experience OR an equivalent combination of education and relevant experience:\n\n\n\tMust be proficient in writing C on embedded Linux\n\tExperience developing and maintaining networking software running on an embedded system\n\tExperience with network communications using IP-based protocols\n\tExperience identifying and solving system architecture issues and software security risks\n\tMust excel at collaborative software development in a distributed, multi-team environment\n\tMust excel at managing multiple simultaneous development projects\n\tDemonstrates proficiency with designing well architected software systems and modules that support new technology or improve capability/performance of existing functionality \n\tMust demonstrate competence with researching fundamental problems and implementing appropriate algorithmic solutions \n\tDemonstrated ability to serve as a lead software engineer for a complex software project \n\tMust possess the ability to decompose functional requirements into well-defined tasks while balancing quality, quantity and complexity in work output \n\tDemonstrated capability to offer peer technical assessments in areas of expertise, new technologies and software designs \n\tMust possess relevant education and/or experience in software design, development and maintenance, as required for the successful performance of the essential functions of the position\n\n\n\nDesireable Qualifications:\n\n\n\tStreaming media\n\tRTP, SRTP, RTSP, SIP, WebRTC (ICE, STUN, TURN)\n\tMobile application development\n\tBasic knowledge of C++, Dart, and Golang\n\tKubernetes, and containerized, cloud-based services\n\tIdentity management and subscriber management\n\tCertificate authority integration\n\tIPSec\n\n\n \n\nGarmin 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.