Role: Sr Android Developer
Location Sunnyvale (hybrid 2-3 days onsite)
6-month contract with high possibility of extension
Tech Stack (Must have's) Java, Kotlin, Graph QL
Qualifications
- Well-rounded understanding of Android framework components and their respective lifecycles combined with a solid knowledge of multithreading, networking, offline storage, and performance tuning
- Android SDK along with good working understanding on Geo fencing api to enable location-based features in our app
- Good understanding of Android sandbox and its design systems
- Advanced level in Kotlin programming language, system design and UX design choices
- Comfortable in exploring new ideas and writing ADR documents for peer reviews
- Working knowledge on Android push notifications, In-app-messaging service integrations
- Intermediate to Advanced knowledge on GraphQL / Apollo
- Able to take challenges to dive deep into build tool development, Gradle build performance improvement and its tooling improvements in CI/CD pipeline
- Biased towards greater code coverage choices
- Motivated to contribute to achieving developer productivity across different time zones in building great customer experience with resiliency and stability in mind
- Bachelor's degree in computer science, computer engineering, computer information systems, software engineering, or related area and 2 years' experience in software engineering or related area
Responsibilities
- Build industry defining reusable customer and partner facing services and products to lead differentiated experiences and revenue sources
- Build, and maintain engaging and high-performant apps for our customers at a very high scale
- Produce robust, maintainable, highly tested, reusable code for developing functionality, configuration, improved performance, scalability, availability, security, monitoring and alerting for software test, integration, and production environments
- Plan and implement a series of steps which potentially include reconfiguration, integration, removal, or addition of application components to enhance the application's functionality, resiliency, usability, and security
- Understand the Business/Stakeholder/Technical requirements and assist in analyzing the existing solutions to address the needs
- Assist in creation of simple, modular, extensible functional design for the product/solution in adherence to the requirements
- Assess gaps, updates, and modifications between the customer, business expectations, and the existing product/solutions
- Analyze defects from past projects and solutions to avoid recurrence of similar defects
- Analyze system performance impacting the complete product for non-functional requirements such as reliability, operability, performance efficiency, and security
- Troubleshoot performance and availability bottlenecks within the application
- Develop, maintain, and enhance automated test cases and deployment procedures
- Follow coding and design best practices developed by the teams and contribute towards their continuous improvement
- Static code analysis using lint and custom lint tooling development
- Use App profiling tools to assess and improve our user experience using benchmark reporting, memory profiling, caching improvements, app launch performance improvements
- Comfortable to explore and use our highly scalable data ingestion tools to triage our app