Come on board with Garmin Marine engineering! Our team is looking for self-motivated, confident and passionate engineers to create high-quality, state-of-the-art products that give our consumers an unwavering level of confidence when on the water. Our Marine segment leads the industry with innovative technology that integrates performance, safety, quality, value, innovation and ease of use into our products - to help our consumers make the most of their time on the water. The Marine product development team in Cary, North Carolina
is hiring a full-time Embedded C/C++ Software Engineer
This key role allows engineers to apply their C and C++ development skills in both middle, high and UI layers. We are seeking engineers who enjoy developing embedded software for products, including chartplotters; this team creates the software that custoemrs use to improve their adventures on the water. This team is involved in creating system-wide features for chartplotters in exciting areas, including video/camera integration, media/stereo integration, weather, inReach/satellite communication and Telematics.
Embedded Software Engineer job responsibilities include:
- Develop moderately complex high and mid-level software in C++ and C, Python, or other selected languages for Garmin products and/or applications
- Consistently follow Garmin's software development methodology and coding standards
- Work collaboratively and professionally with other Garmin associates in cross-functional teams to bring new technologies into marine products
- Develop ownership of key technologies, features or software modules, contributing to their adoption in multiple marine products
- Utilize software engineering tools such as 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
- Collaborate and add value through participation in peer code reviews, providing comments and suggestions
- Provide reliable solutions to a variety of problems using sound problem-solving techniques
- Perform technical root cause analysis and outlines 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
- Apply Garmin's Mission Statement and Quality Policy and enthusiastically exhibit a desire to see Garmin succeed
- Apply a sense of urgency, commitment and focus on the right priorities in developing solutions in a timely fashion
- Passion to learn and grow in a team-based development environment
- Other responsibilities include reviewing product and/or application information manuals and brochures for technical accuracy and participating in product definition activities such as feature analysis and system tradeoffs.
Candidates for this role should 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 work experience (in addition to internship experience) OR an equivalent combination of education and relevant experience plus a cumulative GPA greater than or equal to 3.0 as a general rule.
Qualified candidates will also demonstrate proficient knowledge and utilization of engineering tools necessary for successful performance of the essential functions of this job description including experience necessary to develop moderately complex software in C++ and C language. Demonstrated mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators logic analyzers) and demonstrate proficient ability to capture and document software requirements.
Bonus points if you have:
- Experience in developing embedded systems in Linux
- Familiarity or experience with user interface design and development
- Ability to develop, debug and maintain embedded multi-threaded software
- Experience or expertise in evaluating and improving embedded software performance
- Experience working with TCP/IP
- Interest in fishing, boating, and/or sailing activities