Sr C/C++/ RTOS Software Engineer - Core Tech Team

About the position

We are seeking a full-time Senior C/C++/RTOS Software Engineer at Garmin's location in Cary, NC or at Garmins U.S. Headquarters location in the Greater Kansas City area. This position is on the Core Platform Technology - Sensor Algorithms Team. As a member of the team, you will help implement cutting edge sensor-based algorithms that help people beat yesterday. This team’s work spans across multiple Garmin products and includes features such as activity monitoring, sports metrics, elevation-based features, and safety features.

Responsibilities

  • Serves in a leadership capacity as an individual contributor for carrying out software development in C and C++
  • May serve as a Lead Software Engineer for complex software development project designs and/or reviews architected modules and software systems supporting new technology or improving capability/performance of existing functionality
  • Designs and deploys embedded software solutions, primarily in C++ and C, to be used throughout Garmin's extensive ecosystem of consumer electronics products, including smartwatches, cycling computers, and more.
  • Researches fundamental problems and implements algorithm solutions that are appropriate
  • Builds hardware-in-the-loop test infrastructure, integration pipelines, and diagnostic tools that reproduce field issues and verify fixes before deployment.
  • Offers peer technical assessments in areas of expertise, new technologies and software designs
  • Evaluates and understands various design tradeoffs including power consumption, cost, system constraints, reliability, and time to market.
  • Participates in project leadership and/or program planning including providing technical input to product development plans and concept documents
  • Makes substantial contributions toward determination of project goal/objective feasibility and applies good judgment in setting schedules/risk taking
  • Mentors and provides guidance to less experienced Software Engineers (1 & 2)
  • 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

Requirements

  • Bachelor’s Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Math, Physics or related field AND a minimum of 5 years relevant experience OR an equivalent combination of education and experience
  • Mastered proficiency in writing software in C, C++ on RTOS
  • Experience with Python for visualization and statistical analysis.
  • Demonstrated proficiency with designing well architectured 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
  • Demonstrated strong and effective verbal, written, and interpersonal communication skills
  • 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

Nice-to-haves

  • Strong quantitative, math, and statistics skills
  • Experience in defining, characterizing, and baselining performance metrics for systems and/or algorithms.
  • Experience with automation and testing software and systems, including hardware-in-the-loop (HIL), regression testing, GoogleTest, unittest. Experience working with CI/CD pipelines, such as Jenkins or Zuul.
  • Experience with data analysis and statistical methods for investigating system behavior and root cause analysis.
  • Experience debugging complex problems on embedded systems.
  • Experience working on multiple simultaneous development projects.
  • Familiarity with sensor fusion, time series analysis, Kalman filtering, or digital signal processing (DSP).
  • Familiarity with inertial sensors, magnetic, and/or barometric pressure sensors.
  • Proficiency or experience with Java for backend/server-side systems.
  • Interest and ability to learn new tools, technologies, and methodologies across embedded systems, testing frameworks, and algorithm development as needed.
  • Excitement to create and deliver algorithms for runners, cyclists, hikers, golfers, athletes, fitness buffs, and any person seeking to beat yesterday.

Benefits

  • This position is eligible for Garmin's benefit program.
Back to blog

Other Jobs To Apply

No other job posts for this day.

Common Interview Questions And Answers

1. HOW DO YOU PLAN YOUR DAY?

This is what this question poses: When do you focus and start working seriously? What are the hours you work optimally? Are you a night owl? A morning bird? Remote teams can be made up of people working on different shifts and around the world, so you won't necessarily be stuck in the 9-5 schedule if it's not for you...

2. HOW DO YOU USE THE DIFFERENT COMMUNICATION TOOLS IN DIFFERENT SITUATIONS?

When you're working on a remote team, there's no way to chat in the hallway between meetings or catch up on the latest project during an office carpool. Therefore, virtual communication will be absolutely essential to get your work done...

3. WHAT IS "WORKING REMOTE" REALLY FOR YOU?

Many people want to work remotely because of the flexibility it allows. You can work anywhere and at any time of the day...

4. WHAT DO YOU NEED IN YOUR PHYSICAL WORKSPACE TO SUCCEED IN YOUR WORK?

With this question, companies are looking to see what equipment they may need to provide you with and to verify how aware you are of what remote working could mean for you physically and logistically...

5. HOW DO YOU PROCESS INFORMATION?

Several years ago, I was working in a team to plan a big event. My supervisor made us all work as a team before the big day. One of our activities has been to find out how each of us processes information...

6. HOW DO YOU MANAGE THE CALENDAR AND THE PROGRAM? WHICH APPLICATIONS / SYSTEM DO YOU USE?

Or you may receive even more specific questions, such as: What's on your calendar? Do you plan blocks of time to do certain types of work? Do you have an open calendar that everyone can see?...

7. HOW DO YOU ORGANIZE FILES, LINKS, AND TABS ON YOUR COMPUTER?

Just like your schedule, how you track files and other information is very important. After all, everything is digital!...

8. HOW TO PRIORITIZE WORK?

The day I watched Marie Forleo's film separating the important from the urgent, my life changed. Not all remote jobs start fast, but most of them are...

9. HOW DO YOU PREPARE FOR A MEETING AND PREPARE A MEETING? WHAT DO YOU SEE HAPPENING DURING THE MEETING?

Just as communication is essential when working remotely, so is organization. Because you won't have those opportunities in the elevator or a casual conversation in the lunchroom, you should take advantage of the little time you have in a video or phone conference...

10. HOW DO YOU USE TECHNOLOGY ON A DAILY BASIS, IN YOUR WORK AND FOR YOUR PLEASURE?

This is a great question because it shows your comfort level with technology, which is very important for a remote worker because you will be working with technology over time...