Software Engineer III- Android Development
$120,000–$130,000 year
On-siteAnn Arbor, Michigan, United States
Job Summary
Develop complex Android subsystems with high-quality, performant code emphasizing stability, security, and long-term supportability. Design entire components and their interactions, produce estimates for tasks, and participate in up-front project planning. Conduct first-line developer support for production systems, troubleshoot issues, and review pull requests to ensure adherence to organizational coding standards. Mentor less experienced developers on design patterns and the larger development ecosystem while answering team members' conceptual and technical questions. Deliver adequately unit-tested code that meets system and integration testing requirements, documenting both internal code and external system documentation.
Required Qualifications
- 7+ years overall development experience using an object-oriented language
- Expert in Kotlin and/or Swift
- Demonstrable expertise with XCode and/or Android Studio
- Demonstrable experience with Java and/or Objective-C
- Demonstrable experience consuming Restful JSON web services
- Demonstrable experience with Agile development and unit testing
- Demonstrable experience with push notifications, location services
- Demonstrable experience with builds tools like Gradle and Fastlane
- Demonstrable experience with analytics frameworks such as Firebase, Adobe, or similar
- Experience with various architecture patterns like MVC, MVVM, VIPER, or similar
- Experience with dependency management tools like Cocoapods, Swift Package Manager, Gradle
- Experience with accessibility frameworks
- Experience with code profiling and debugging tools
- Experience with submitting and publishing applications through app stores
- Proficient with design methods/patterns (e.g., DRY, SOLID, ReST) and their practical application
- Excellent team player with good communication skills with both non-technical & technical co-workers
- Highly motivated and driven by a desire to solve difficult problems, and learn new technology
- Expert in writing quality unit tests
- Expert with build and debug tools
- Proficient with profiling tools
- Experience with continuous integration systems like Jenkins/GitHub
- Experience with international software development (multi-lingual, multi-currency, geographic, and locale awareness)
- Proficient in MacOS, Unix, and Linux
- Understanding of development in a distributed system
- Understanding of core networking concepts like http protocol and its usage
Desired Qualifications
- Experience with Docker, or equivalent container technology, is preferred
- Experience with agile practices and tools preferred (Jira or similar)
Hiring someone like this?
Get your role in front of qualified candidates on Sorce.