Senior Android Developer

Senior Developer
Location: Irving, TX 75062
Duration: 35 weeks

Key Responsibilities and Duties
•    Ideal candidates will be responsible for the coding and front end development of the proprietary QSR POS application.
•    Coding and testing
•    Working closely with the product owner and technical lead
•    Adhere to guidelines set forth by the technical lead
•    Write well designed, testable, efficient code
•    Ensure designs are in compliance with specifications
•    Support continuous improvement by investigating alternatives and technologies, presenting these for architectural review.

“Must Have” Specific Knowledge and Skills
•    Bachelor's degree in Computer Science or related field
•    6+ years of experience in Mobile app software design & development
•    5+ years of experience developing apps for Android
•    3+ years of experience developing apps using Kotlin/Java
•    Experience with test-driven development and software test automation
•    Excellent debugging, performance and optimization skills
•    Experience working with agile methodologies (e.g. user stories, iterative development, etc.)
•    Experience with distributing mobile applications via public app stores and/or enterprise channels
•    Experience with integrating calls to backend services (REST or GraphQL, using JSON etc.)
•    Excellent hands on skills with Android application development tools, including Android Studio, Android SDK and ADT
•    Working with Code Andriod Services that keeps the services working with offline/online support. 

Additional Skills and Other Requirements
•    Integrating with third party frameworks tools and SDKs, such as Ktor, Retrofit, OkHttp, Moshi and Glide
•    Reactive Programming: RxJava, coroutines / flow
•    Dependency injection (ideally via Dagger and Hilt)
•    Android architecture components (ideally MVVM experience)
•    Java/Kotlin expertise (standard functions, data classes, etc.)
•    Accessibility & offline support of the features 
•    Continuous delivery in mobile, including Test- or Behavior-Driven Design, code review, static analysis, continuous integration, automation and functional testing.
•    Build systems: Gradle / Maven, custom plugins
•    Static and dynamic analyzers: Android lint, ktlnt, Danger. Custom Rules
•    Code generators (annotation processors, compiler plugins)
•    Hands-on experience working with android data persistence technologies like Room API.
•    Hands-on experience working with background threads