We are seeking a full-time Embedded C++Software Engineer with object oriented programming experience at our Yarmouth, Maine location to support development of our "inReach" satellite communication products and technology. (This is not a remote position). Garmin products equipped with “inReach” technology enable customers to stay in touch globally with two-way text messaging, location sharing, and interactive SOS communication.
We are seeking someone with experience developing in C++ that has knowledge of higher level programming concepts like data structures, algorithms, object-oriented concepts, etc.
Develop moderately complex software and algorithms for embedded systems using C/C++ on bare metal
Utilize configuration management systems, build processes, and debuggers in the software development process
Create and execute designs for small sets of new functionality as part of a software project
Perform as a technical leader or lead software engineer for a derivative software project
Collaborate and add value through participation in peer code reviews
Provide reliable solutions to a variety of problems using sound problem solving techniques
Perform technical root cause analysis and outline corrective action for given problems
Serve as a mentor to less experienced software engineers (Software Engineer 1)
Estimate level of effort, evaluate new options of similar technology, offer suggestions to improve processes, and provide comments on some electrical design aspects
Work collaboratively and professionally with other Garmin associates in cross functional teams to achieve goals
Apply a sense of urgency, commitment and focus on the right priorities in developing solutions in a timely fashion
Bachelor’s Degree OR Master’s Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Math, 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)
Demonstrates proficient knowledge of C++ language features and concepts (data structures, algorithms, and OOP)
Demonstrates proficient knowledge of foundational computer science concepts including data structures, algorithms, and object-oriented design
Demonstrates mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators and logic analyzers)
Must demonstrate proficient ability to capture and document software requirements
Previous experience working in a team environment
Experience developing software for bare metal or real-time embedded operating systems (RTOS)
Experience developing or utilizing data serialization and compression techniques and algorithms
Outstanding academics (cumulative GPA greater than or equal to 3.5)
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.