Android SDK (regular)
We are looking for a senior mobile android developer to work on a our dedicated mobile Point Of Sale handheld and tablet devices.
These are standalone locked down devices running a dedicated app. The app communicates with limited hardware, such as printers and credit card terminals.
Build new native Android application written in Kotlin, Java or a mix of both
Work on all aspects of Android development, from the network layer all the way up to the UI.
Help make major architecture decisions and enforce Android best practices
Follow Git best practices, and write clean, readable code, maintaining documentation for other teammates where necessary
Work with a technical Product Manager to help define technical requirements, make estimates, scope tickets and help plan Agile sprints
Collaborate with other developers, and backend engineers on a regular basis
Skills Requirements :
3 years of experience developing native Android applications
Full Android stack : Activities, Fragments, Views, Services, Broadcast Receivers, Content Providers, SQLite, etc.
Experience with commonly used Android libraries and SDKs, both from Google and third parties, for networking; persistence;
multi-threading; messaging; code reduction; and optimization. (OkHttp, Retrofit, Picasso, etc.)
Experience with system integrations such as payment processors, banking systems, customer support, etc.
Experience of commonly-used Android testing libraries for both unit testing and functional testing
Experience with TDD and creating clean, testable code
Experience with reactive architectures, MVVM, MVP, data binding, and other common design patterns which cleanly separate business logic from UI
Experience with Gradle build system
A strong understanding of REST API Design
Strong understanding of Android Material Design
Experience with Android testing frameworks (JUnit, Mockito, etc.)
Experience with Design and User Experience (simple designs, but solid)
Experience with deployment and management of production devices (i.e. MDM)
Optional Skills or Qualifications (Nice to Haves) :
Understanding of the Google Play ecosystem, dashboards, beta and release versioning, and developer tools.
Experience and / or working knowledge of distributed systems
Functional programming knowledge, such as with Haskell, OCaml, ReasonML or similar languages
Experience with setting up continuous integration and delivery pipelines
BS in Computer Science, Math, EE, or other applicable degrees
Experience as a Product Manager.