β Participate in the product life cycle to understand directly from the Product Team the expected
behaviour of the apps and the use cases being implemented.
β Participate in design discussions with heavy focus on modelling entities and interactions,
following architectural patterns like MVP, MVVM, Clean Architecture, etc.
β Collaborate with cross-functional teams - backend teams for finalising APIs, design team for
UI / UX, QA team for testing, etc.
β Participate in iteration planning to give effort estimates.
β Write clean, readable, maintainable and performant code following well established design
principles.
β Write Unit Tests and Integration Tests to ensure correctness.
β Track, debug and fix bugs & crashes escalated.
β Ensure the apps are performant - no memory leaks, no frame drops, battery usage, etc.
β Explore and evaluate new technologies, tools and SDKs as may be necessary to improve the
entire development pipeline.
β Work with cross-platform technologies, like Kotlin Multiplatform, to ensure consistency of
features and code reuse across Android / iOS platforms.
Technologies:
β Languages: Kotlin, Java, SQL, RX Java(Mandatory)
β Frameworks: RIBs, Kotlin Multiplatform, Spek
β Architectures: MVVM, MVP, Clean Architecture, etc
β Libraries: Kotlin Coroutines, RxJava, Dagger2, Ktor, Jetpack, etc
β Integrations: AWS services, Payment Gateways (Razorpay, etc), Google Maps, Firebase, etc
Products & Systems Overview
You will be contributing to products concerning both customers and partner drivers.
β Customer App:
β All orders serviced by Porter are placed from this app making it our primary business
driver.
β To keep the code for this large complex app maintainable, there is a heavy emphasis on
good design and architecture. Currently the RIBs framework is used to break the code
recursively into smaller components.
β To ensure feature parity and consistency across our Android and iOS platforms, we use
Kotlin Multiplatform to re-use business logic code across the two platforms.
β Partner App:
β All orders serviced by Porter are fulfilled by drivers using this app.
β Given that the app is expected to run for long hours on cheaper phones there is a heavy
emphasis on keeping the apps performant - optimising battery consumption and memory
usage.
β The app serves as a medium for onboarding - providing functionality for partners to
upload and verify their documents using Image Processing.
β To train the drivers for every new feature launched, we provide a guided audio-visual
training session - using visual cues like hint to click / swipe with synchronised
pre-configured audio to guide him through the sequence of steps.
β Fleet Owner Apps:
β A multi-platform app for fleet owners to manage their drivers and track their performance
and earnings on our platform.
Qualification Prerequisites
β Experience: >= 3 years in Android development
β Proficiency with Android framework and Kotlin.
β Experience in designing, writing and maintaining a large complex app code base.
β Experience with design patterns like MVP, MVVM, Clean Architecture, etc.
β Experience with reactive & asynchronous programming using RxJava / Coroutines / Flows
Get notifed when new similar jobs are uploaded