● 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