- Expert programming in Java and Kotlin to develop Android applications.
- Network calls and background multithreading using RxJava, Retrofit, Volley and AsyncTask.
- Worked in an Agile environment with strong SCRUM and pair programming fundamentals.
- Strong leadership and communication skills in an Agile environment SCRUM.
- Google Maps API, GPS Location data for pinpointing the user location, finding locations nearby the user and displaying maps and directions.
- Creation of unit and integration testing suites developed with Mockito and Espresso for use in Android development.
- Configured and initialized multiple cloud integration services including Parse, Firebase and Google Cloud Messaging for Android projects.
- Ability to coordinate with various team members involved in the project.
- Experience with consuming third - party APIs in Android development projects.
- Experience with multi-threading and memory management specific to mobile devices
- Experienced with MVP, MVVM, MVC, Singleton, Adapter, command, Observer, Builder design patterns.
- Guide decisions on architecture and technical strategy.
- Well versed in the most modern Android third party libraries such as Retrofit, Picasso, Location API, Maps View, Google View, Google Maps, Butter Knife, Dagger, Android Annotations.
- Experience with Push Notifications, Google Maps, and Navigation.
- Fluent in Android SDK/NDK and device driver development.
- Worked with an internal QA team on system, performance, and acceptance testing.
- Android UI Toolkit and Layout Managers. Proficient in Android Application Framework and Android SDK Tools.
- Followed best practices for architecture and programming.
- Implementation of dependency injection with Dagger and Kotlin Koin.
IDE: Android Studio, Eclipse, Visual Studio
Database: SQLite, Room, MySQL, Oracle SQL, SQL Server, Firebase DB, ROOM
Multimedia: Glide, Picasso, ExoPlayer, Videoplayer
Development: Full Stack Development, TDD, JIRA, Continuous Integration, Confluence, Git, GitHub, SVN, SourceTree, BitBucket
Project Methodologies: Agile, Scrum, SOLID, DRY
Threading: Loopers, Loaders, AsyncTask, Intent Service, RxJava, Multithreading
Debugging & Performance: JIRA
DDMS tool: ADB
Leak Canary: Bluetooth Low Energy
Testing: Leak Canary, Event Loaders, Retrofit, Espresso
Dependency Injection: Dagger 1, Dagger 2, Koin
Design Patterns: MVC, MVP, MVVM, Builder, Factory, Façade, proxy, visitor, singleton
Android Dev: Android Jetpack, Google Maps API, Job Scheduler, Recycler View, Google Analytics, Push Notifications, TDD, RoboGuice, Junit, Butterknife, Mockito, Reactive Programming, WorkManager, BLE, Wi-Fi, Socket, Fabric, Fragments, Adapter, Timber, RxKotlin, Okio, Jenkins, Gerrit, Services, Content Providers, Handler, Okhttp, Custom Views, Sonarqube, MVVM, Profilers, Urbanairship, Flow API, Leak Canary, HandlerThread, RESTful web services, Bitbucket, GitHub, Gitlab, Test Automation, Espresso, Dependency Injection, REST, SOAP, JSON, GSON, AJAX
Senior Android Developer
- Used LiveData builder to combine Kotlin coroutines with LiveData Coroutines Asynchronous Flow to implement async sequence, or stream, of values in MVVM architecture
- Integrated Android KTX to migrate code to Java using extension functions, extension properties, lambdas, named parameters and coroutines
- Independently code ‘Record actual driving routes and view them on Google Maps’ user story
- Integrated Kotlin Koin dependency injection to describe dependencies into modules and sub-modules, provide a factory bean definition and resolve a component dependency
- Apply AES substitution - permutation network to encrypt data with a key and perform certificate pinning using TrustManager API
- Encrypt and decrypt the shared preference data with the AndroidX Security Library
- Work with Nearby Messages API and Proximity Beacon API to register beacons in the cloud, associate data with registered beacons as attachments, and maintain beacon registration data
- Parsed backend JSON data from the network with Retrofit library, cache them to the Room database and observe changes through LiveData and load them into a Recyclerview
- Wrote TDD test cases for receipt tracker algorithm and business tax calculator using Mockito and Robolectric for integration tests with 80% code coverage
- Loaded partial data flows from backend or database into the PagedList object on demand to reduce usage of network bandwidth and system resources
- Wrote code to send logs or analytics to backend services and schedule asynchronous one-off or periodic tasks with WorkManager API
- Integrated Firebase In-App Messaging for sending targeted, contextual messages for promotional offers, message to get users to subscribe or watch a video
- Worked on AWS Mobile Hub Cloud Logic mobile backend service feature to add business logic functions in the cloud and communicate with RESTful API from backend
- Hold daily client calls to integrate Intercom SDK for customers retention with targeted messages and lead generation features
- Collaborate with offshore developers based in India (Bangalore City)
- Collaborate with other teams across the business and work with all development teams to create end-to-end products
- Take an active role in the architectural and technical decision making
- Mentor junior engineers through programming sessions, and code, architecture review
Senior Android Developer
- Worked on BlueLink AI based feature SDK to include features like Vehicle Navigation Control, Voice Assist Dialing and Panic Notification
- Coded in Clean Architecture to separate stable business rules (higher-level abstractions) from volatile technical details (lower-level details) with MVP in presentation layer
- Created algorithms to send advertisement packets, scan for advertisements and an communicate with BLE peripheral devices while sending advertisements in peripheral model
- Integrated Sci-Chart library to display real time vehicle statistical data on Heatmap charts, candlestick charts and error bars
- Implemented fingerprint and/or face recognition functionality Biometrics authentication on widgets with Blue Link subscription using Biometric Prompt API for Android P
- Wrote service layer code and algorithms around Bluetooth Adapters, Bluetooth Services, car UUID Characteristics with Broadcast Receivers, EventBus and IBinder interface
- Worked on P2P mode to allow the NFC device to exchange data with other NFC peers
- Coded user stories like View charging status, manage charging schedules using material design, Dagger2, SOILD principles with multithreading
- Worked in Pair Programming from Driver and Navigator across several iterations in the project strategy to reduce the learning curve on the customs process and custom SDK
- Independently integrate Google Calendar API to access and modify private calendars and events, updates
- Increase web traffic 125% by improving navigation, creating dynamic media sections, and adding social media plugins
- Used Firebase Realtime Database for data synchronization—every time data changes; any connected device receives that update within milliseconds
- Unit tested code with a TDD approach and work with QAs to create test suites
- Integrated Kochava SDK to track all post-install activities from location events to purchases, and synchronize data to Mixpanel
- Non-Technical Role:
- Discuss intended technical approaches for upcoming work with the team and involving the team in collaboration sessions
- Actively participating in development meetings
- Working closely with the product and engineering team to craft, refine and implement product features.
- Added security by encrypting static and dynamic keys and sensitive application data with white-box cryptography using Arxan Key & Data Protection SDK
- Integrated Android APK Authentication API to authenticate the users with the payment integrator via an Android Activity and prevent Android from terminating Play in the background during authentication
- Worked on Data Binding Library to support two-way data binding to receive data changes to a property and listen to user updates to that property at the same time
- Implement AESCrypt for securing data using the AES-256-CBC cipher and encode the encrypted data with Base64
- Integrated Mitek MiSnap SDK to capture ID documents like passports, id cardsm enable remote check deposit, verify a customer's identity
- Defined utility classes for easy to test functionality like account details, account authentication and several validations steps
- Created static implementation to overcome limitation on mocking libraries, defined spy objects for better testing implementation
- Refactored AsyncTask with RxJava to use functional transformations over streams of events and remove callbacks and global state management
- Implemented Material Design components along with predictable animations like Swipe to delete and long press animations, making more user-friendly the application
- Converted all the Relative/Linear layouts to Constraint Layouts to flatten the view structure and improve performance
- Implemented features of Automatic session timeout using okhttp and retrofit libraries
- Used Espresso for the automated UI testing Recyclerview interactions and Mockito was used with Retrofit for mocking the API call (Mockserver)
- Introduced the new Android O feature to provide a custom font for the whole application
- Performed migration from using PushWoosh to UrbanAirship library to send push notification relating to latest updates and balance
- Non-Technical Role:
- Work with open-banking team to deliver regulatory feature to grant user permissions for open banking process
- Work with remote project offshore in Sweden, managing various work schedules and time zones
- Continuous Integration through multiple environments to get rapid feedback about your work
- Develop and produce functional solutions in accordance with architecture design standards and code standards.