Mobile Software Developer (Android/iOS)
Garmin
- Tucson, AZ
- Permanent
- Full-time
- Architects custom integrations with Garmin mobile SDKs and web services by implementing clean, extensible design patterns
- Utilizes software engineering tools such as configuration management systems, build processes, and debuggers in the software development process
- Collaborates with a multi-discipline team to design, build, test, and debug mobile apps for Android and iOS devices that communicate with Garmin cloud services and hardware
- Creates and manages CI/CD automation for building, testing, and deploying apps to Apple App Store and Google Play Store
- Collaborates 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
- Contributes to technical research on new technologies
- Estimates level of effort, evaluates new options of similar technology, offers suggestions to improve processes, and provides feedback on some electrical design aspects
- Serves as a mentor to less experienced software engineers (Software Engineer 1)
- Supports working hours as part of a rotating schedule to provide on call support of Garmin’s 24/7 operations
- Bachelor’s Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Math, Physics 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)
- Demonstrated proficiency and experience necessary to develop moderately complex software in Java, Kotlin, and/or Swift, or Objective -C
- Proficient knowledge, utilization and mastery of relevant software engineering tools such as configuration management systems, build processes, debuggers, emulators, simulators and test automation
- Multi-discipline proficiency in both Android and iOS is ideal
- Experience in design, particularly for consumer products
- Experience with MVC, MVP or other UI/UX patterns
- Experience with Kotlin, Android- Java, and/or Swift, Objective-C
- Knowledge of GPS and BLE APIs
- Knowledge of Protobuf or other light-weight serialization tools
- Knowledge of RESTful API web services
- Knowledge of application layer protocols
- Experience with push notification services such as Firebase Messaging
- Pipeline development using Bit Bucket, GitLab, or GitHub
- Release management and Beta programs through Firebase and TestFlight
- A background working with multi-discipline teams including mechanical, electrical, firmware, and software