Engineers develop software in C and C++ on Linux and/or Android platforms. They also test software using debuggers, emulators and simulators; perform software releases and software quality assurance activities; write unit and integration tests and work collaboratively and professionally with other Garmin associates.
Other essential functions include:
Creates and executes designs for small sets of new functionality as part of a software projectMay perform as a technical leader or Lead Software Engineer for derivative software projectCollaborates 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 Works in both an agile and waterfall software development environmentsExpertise and passion in trunk based development and good understanding of (SDLC) Software Development LifecycleServe as a mentor to less experienced software engineers Estimate level of effort, evaluate new options of similar technology, offer suggestions to improve processes, and provide comments on some electrical design aspectsApply Garmins Mission Statement and Quality Policy and enthusiastically exhibit a desire to see Garmin succeed
Qualified candidates will possess a Bachelor of Science Degree in Computer Science, Electrical Engineering, Computer Engineering, Math or Physics or a technical field (such as CIS or IT) from a four-year college or university AND a minimum of one-year relevant experience OR an equivalent combination of education and relevant experience with a 3.0 cumulative GPA or higher. Other requirements include:
Must possess a minimum 1 year of work experience programming in C/C++ and Linux. We will teach you the rest!Demonstrates proficient knowledge and utilization of engineering tools necessary for successful performance of the essential functions of this job descriptionMust demonstrate proficiency and possess experience necessary to develop moderately complex software in C, C++,Demonstrates mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators and logic analyzers)