We are seeking a full-time DevOps Software Engineer 2 in our Olathe, KS location. This DevOps software engineer will help build and maintain the next generation of Garmin's Continuous Integration / Continuous Delivery (CI/CD) system used to build embedded software for Garmin's award-winning products.
Essential Functions
Creates and executes designs for small sets of new functionalities as part of a software project using C, C++, or other selected languages
Utilizes software engineering tools such as configuration management systems, build processes, and debuggers in the software development process
Decomposes functional requirements into well-defined tasks
Researches fundamental problems and implements algorithm solutions that are appropriate
Offers peer technical assessments in areas of expertise, new technologies, and software designs
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
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
Supports working hours as part of a rotating schedule to provide on-call support of Garmin's 24/7 operations
Automates routine tasks whenever possible
Supports software engineering applications installations and upgrades
Collaborates and adds value through participation in peer code reviews, providing comments and suggestions
Evaluates, integrates, administers, and supports new applications
Supports monitoring and testing of software engineering applications
Supports application server capacity planning, backups, and other server-based activities
Performs technical root cause analysis and outlines corrective actions for given problems
Estimates level of effort, evaluates new options of similar technology, offers suggestions to improve processes, and responds to infrastructure outages
Basic Qualifications
Bachelor's Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Aerospace Engineering, Math, Physics or related field AND a minimum of 1 year relevant experience OR an equivalent combination of education and experience
Must possess proficiency in writing software in Python, Bash, C, C++, or other selected languages, and relevant experience and/or training in data structures or object-oriented design methodology
Proficient knowledge, utilization and mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators and logic analyzers)
Desired Qualifications
Administrative experience with Jenkins automation server or Zuul Continuous Integration
User-level experience with container/orchestrator technology like Docker or Kubernetes
User-level experience with static code analysis tools like SonarQube, CppCheck, or Clang
Working knowledge of Git-based source code management
Ability to work and collaborate across geographical and organizational barriers
Experience with embedded software test or development
Experience administering in Windows, Linux, and Mac OS
Experience working with the entire SDLC
Experience with cloud technology like OpenStack
Experience with Kibana, Grafana, or other analytic technology
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.
This position is eligible for Garmin's benefit program. Details can be found here: Garmin Benefits