Senior Software Engineer
CORE PROFILE
We are looking for a senior Android engineer who can own complex product features end-to-end, make sound technical decisions with minimal guidance, and raise the bar for the team through code quality, mentorship, and pragmatic architecture. This engineer should be comfortable operating in ambiguity, partnering closely with product/design, and shipping reliable software to production at scale. Expect to work within a mature mobile engineering group, collaborating with cross-functional teams to deliver robust mobile solutions that align with Maya’s architecture standards, bolster security requirements, and build scalable and maintainable code.
As an engineer in Maya, you will be responsible for developing, designing, and maintaining high-quality applications/features codebase. Moreover, you’ll take ownership in creation of technical documents, make architectural decisions, setting standards and applying best practices on mobile apps for various processes like development and releases, assessment on different tools, maintaining and making sure performance and correctness of the app is met thru various unit tests, monitoring and bench markings, continuous integration initiatives, and collaborate closely with product, design/UX, and backend teams to deliver scalable and performant applications.
NATURE OF WORK
- Develop, maintain, and monitor applications/features/SDKs
- Identify and create reusable components, modules, and SDKs
- Ensure at least 90% unit test coverage
- Ensure 100% free from critical code smells and vulnerabilities
- Ensure at least 99% crash free rate
- Enforce standard security measures
- Technical documentations as needed
- Help in standardizing processes and assessing tools
- Contribute in designing solutions and implementation of Product Engineering standards and processes
- Support other teams with inquiries regarding Mobile App Development in general as member of core Base App team
- Coordination with different teams as needed
- Active and insightful participation on scrum activities
- Familiarization with CI/CD
- Conduct tech sharing to enhance skills
- Various housekeeping activities such as onboarding, fixing of warnings, updating code to new standards, and many more
REQUIRED QUALIFICATIONS
- 5-8+ years of relevant experience
- Strong proficiency in Kotlin Programming Language; comfortable with Java, Gradle, and legacy codebases
- Deep understanding on building different UI Components for both XML and Jetpack Compose; understands state management, recomposition, accessibility
- Experience with clean architecture patterns: MVP, MVVM, MVI, or Clean Architecture; can explain trade-offs, not just name patterns
- Used Jetpack technologies – ViewModel, Navigation, Room, WorkManager, Lifecycle etc
- Understand Async, Threads, and other background processess – RxJava, Coroutines + Flow; understands structured concurrency, cancellation, error handling
- Familiar with different local storage – SQL database, Data Store, Shared Prefs, etc
- Knowledge in doing security and how to protect data and mobile applications – secure storage, certificate pinning/attestation, ProGuard/R8, OWASP awareness
- Adept in Networking tools like REST/GraphQL clients (Retrofit, OkHttp, KTOR etc.)
- Familiarity with feature flags, A/B testing, and analytics instrumentation
- Wide experience with modularization (multi-module Gradle projects) or monolith-to-modular migration
- Enthusiast in writing testable, maintainable, scalable code
- Skilled in doing Unit Test – Unit tests (JUnit, MockK/Mockito), UI/instrumentation tests; knows what to test and why
- Capable of using Gradle, build variants, CI basics; can debug build and dependency issues. Can release an app in different distribution services (Firebase Distribution, Google PlayStore, AppStore, TestFlight, Huawei App Gallery releases)
- Agile / Scrum / GIT experience
Additional Experience
- Fastlane or any CI/CD (continuous integration) experience
- UIAutomation or any automation cross-platform framework experience
- Familiarity with different Firebase tools and its utilizations
- Any experience on Flutter or iOS development