Sr Android Developer Resume
Atlanta, GA
SUMMARY:
- 5+ years of commercial experience in Android using Java and Kotlin
- Perfect knowledge of OOP, functional and reactive programming concepts, multithreaded programming, state management, Android OS ins and outs, resource optimization approaches (data usage, battery consumption, etc.);
- Hands - on experience with Java, Kotlin, Gradle (tasks and dependencies), CI/CD, automation tools, performance tools
- Ability to write and maintain unit and integration tests, along with debugging complex code bases
- Passion for new technologies and eagerness to be involved in building IoT solutions;
- Experience of working with Fabric (Answers, Crashlytics, Twitter), Google Analytics, Firebase, Google SDK, Localisations and Push Notifications.
- Experience of working with remote/offshore developers and testers
- Experience developing production code in a business environment
- Knowledge of Architectural design patterns: MVVM, MVP, Clean Code, MVI, Architectural Components, MVC, VIPER
- Knowledge or experience of payment gateways/systems
PROFESSIONAL EXPERIENCE:
SR ANDROID DEVELOPER
Confidential, Atlanta, GA
Responsibilities:
- Add security by encrypting static and dynamic keys and sensitive application data with white-box cryptography by using Arxan Key & Data Protection SDK
- Replace RxJava implementation with Kotlin coroutines and dispatchers to make asynchronous Network requests, JSON parsing, reading or writing from a database
- Refactor background processing tasks, migrate from Android Job library to WorkManager API to adheres to power-saving feature and asynchronous one-off
- Migrate payment module to Kotlin programming language and share code such as business logic, connectivity between mobile platforms with Kotlin Multiplatform
- Integrate Kotlin Koin dependency injection to inject dependencies into modules and sub-modules, provide a factory bean definition and resolve a component dependency
- Simplify delivering optimized APKs, including instant and dynamic delivery using App bundles mechanism
- Code PagedList Paging Library's key component PagedList to load partial data on demand to reduces usage of network bandwidth and system resources
- Write code for ‘Send money’ user story in MVVM architecture using LiveData, ViewModel with built-in coroutine scopes contained in the KTX extensions for Architecture component
- Work with open-banking team to deliver regulatory feature to grant user permissions for open banking process
- Work with remote project off-shore in Sweden, managing various work schedules and time zones
- Manage and own the technical delivery of agreed products for release - taking these from concept, scoping, to build, Quality Assurance testing, and then release
- Collaborate with the wider team to produce acceptance criteria for user stories, providing technical and domain expertise to help drive decision-making
- Mentor junior engineers through programming sessions, and code and architecture review
NATIVE ANDROID PROGRAMMER
Confidential, Atlanta, GA
Responsibilities:
- Implement Threading management and asynchronous operations support (read, write, notifications) for sending, receiving data over bluetooth using RxAndroidBLE Library
- Independently code Connection and operation error handling module to catch, display messages to users during bluetooth communication
- Create algorithms to send advertisement packets, scan for advertisements and an communicate with BLE peripheral devices while sending advertisements in peripheral mode
- Integrate SciChart library to display real time vehicle statistical data on HeatMap charts, candlestick charts and error bars
- Act as the driver to write TDD test cases and switch roles frequently to navigator to review each line of code as it is typed in in Pair Programming environment
- Use PBKDF2WithHmacSHA1 for key derivation and AES in CBC or GCM mode to protect user sensitive data
- Work with SSL on the OkHTTP clients setting up the certificate headers in a custom interceptor
- Introduce the new Android O feature to provide a custom font for the whole application
- Communicate with backend Firebase cloud backend to store car health data for future statistics calculation
- TDD “plan your maintenance budget module” which gives an estimated price on all repairs due to the car using JUnit testing framework
- Create Custom Views and animations as per iOS app prototype and implement Android components to specifications (pre-format and stable)
- Run multiple meetings with several cross-functional teams for getting specific customs SDK definitions
- Maintain and improve the CI/CD pipeline along with the build and distribution tools
- Build reusable Android components and SDKs for approaching different entities and apps
MOBILE APPLICATION DEVELOPER
Confidential, Kent, WA
Responsibilities:
- Use the Java protocol buffer API to write and read messages, serializing structured data
- In charge of the Google map features, work closely with backend to show activities around user's current location, along with adding markers and InfoWindows to the map
- Code to develop features to create a to-do list, upload photos, record a GPS track, and send user exact location to help in case of emergency
- Introduce multithreading by using Loaders API to simplify thread management by providing callback methods when events occurs
- Refactor AsyncTask with RxJava to use functional transformations over streams of events and remove callbacks and global state management
- Organise business logic, workflows, processes, rules in Domain layer and communicate with data/ presentation layer in Uncle Bob 3-tier clean code architecture
- Apply Dagger injections to achieve SIP principle and inject modules, components, scope
- Use Mockito, Espresso test frameworksto test Presenters applied in presentation Layer, test method interactions between domain and data layer and use DaggerMock
- Leverage Google In-App Purchasing API to offer digital content and subscriptions, purchase maps
- Polish the user interface by using RecyclerViews, NestedScrollViews, CardViews, CoordinatorLayouts, constraint layouts with in-house custom views and the new ConstraintLayout
- Integrate cwac-saferoom library and cwac-provider library for making files, resources, and assets available to other apps via a ContentProvider
- Provide support, maintenance and improve the existing applications (code refactoring, unit tests, debugging)
- Work on bug fixing and improving application performance
- Support the Release and Incidents team to quickly find and fix any issues with the production Apps
- Implement and integrate software features as per requirements
ANDROID DEVELOPER
Confidential, Santa Monica, CA
Responsibilities:
- Create asynchronous operations using multiple strategies: AsyncTask, Handlers, Intent Services, and Loaders
- Decrease memory leak by 90% using AsyncTaskLoaders, weakReferences and LeakCanary tool
- Create custom recycler views with infinite scrolling for an effortless browsing experience
- Integrate card.io and PayPal SDK to Subscribe to payment notifications and write algorithms to Refund a payment to a user
- Communicate with Backend RestFul API and replaced “Callback hell” in Retrofit with RxJava 2.0 with observable streams for http requests, multipart image uploads and file
- Code using Apache Commons IO library to perform Input Stream and Reader implementations and for monitoring file system events
- Write unit tests for presenters using method invocations, spy mocks, no interactions in MVP Architecture using Mockito
- Enable the deep linking and deferred deep linking on the app using Go to handle requests from the system or other apps
- In corporate webviews for displaying web pages and integrate Javascript interfaces to handle UI interaction
- Write barcode scanning code algorithm to support multi-format 1D/2D barcode image processing
- Bug fix issues relating to approximate (network-based) location, precise (GPS) location and access extra location provider commands
- Collaborate closely with product, design, and back-end development teams;
- Develop and produce functional solutions in accordance with architecture design standards and code standards
- Ensure projects are delivered on time and to a high standard
- Participate in manual end to end system QA testing
NATIVE ANDROID DEVELOPER
Confidential
Responsibilities:
- Independently develop the feature ‘Create/Edit/Delete expenses and recurring expenses’ with MVP, Dagger, Espresso, okhttp libraries
- Integrate UrbanAirship library and write code to handle push notifications to view Bill reminders
- Use Android content providers for implementing features like sending E-mails, sharing using Facebook, Email, Twitter, SMS, etc., from the app and designed suitable GUI for these applications
- Include AWS Mobile Hub User Sign-in feature before car is booking process is completed
- SetUp Http Communication using Volley networking library and load receipts photo
- Save the recent search using Realm Database library and replace old SQLIte database
- Enhance Runtime Permissions to approve security permissions on a case-by-case basis at run time
- Upgrade to Google Play services SDK to access to range of APIs for building ads, collecting analytics, authenticating users and integrating maps
- Add Facebook Login to the App using the Facebook android SDK
- Include JUnit framework to test the Presenters in MVP design pattern along with check data load and view not null check
- Identify and contribute to the adoption of technologies, tools and industry’s best practices for Mobile Application development
- Facilitate on-time client deliveries as per requirements
- Proactively identifying, suggesting and assisting in the delivery of improvements
- Participate in the drafting of the technical documentation of the project
SKILL:
JetPack, Arxan, ThreadMatrix SDK, Multithreading, Kotlin, Java, Jasmine, Espresso, Mockito, JetPack, Powermock, Google Assistance API, Reactive Programming, OAUTH2, GIT, Jira, Trello, Bitbucket, Github, MVVM, MVP, Content Provider, Gradle, Google Maps, Espresso, JUnit, Unit Testing. Eclipse, Android Studio, SQLite, AsyncTask, Material Design, RecyclerView, Firebase, Google Analytics, Push Notifications, TDD, Agile, Design Patterns, RESTful Web Service, Bluetooth BLE, TDD, Kanban, Pair Programming, FireBase, MVI, GitFlow, Jenkins, GIT, JUnit, Services, Beacons, NFC, IoT, Google Assistance, Google paly Services, Room, Realm, SQLIte, EventBus, Zeplin, BDD