Senior Android Developer Resume
2.00/5 (Submit Your Rating)
San Francisco, CA
OBJECTIVE:
- A highly dedicated and results - oriented professional with 7+ years of experience developing efficient Android mobile applications, with 6 apps published to the Play Store.
- I am an extremely logical thinker, with a passion for problem solving and a drive for quality.
- I am interested in developing new technologies and I am seeking a new contractor role as an Android Developer.
TECHNICAL SKILLS
- Kotlin
- RXKotlin
- Doze Mode
- JIRA
- Java
- RxJava
- JobScheduler
- Volley
- BrainTree
- SDK
- VideoView
- LeakCanary
- Android Studio
- GitHub
- OkHTTP
- Mixpanel
- NDK
- Circle-CI
- Firebase
- Services
- Hugo
- LoadersMultithreading
- Chromecast
- Urban Airship
- GSON
- Sketch
- Dagger2
- Bluetooth BLE
- MPAndroidChart
- Otto
- LeakCanary
- ExoPlayer
- IntentService
- IoT
- Eclipse
- Robotium
- Retrofit
- Crashlytics
- Analytics
- MVP
- Koin
- Espresso
- Jenkins
- Parceler
- Android P
- JetPack
- Material Dialogs
- Caligraphy
- JUnit
- Scrum
- JetPack
- Room
- Timber
- SpongyCastle
- Firebase
- GitLab
- Handlers
- LeakCanary
- MVVM
- EventBus
- AES/Cipher
- REST
- UrbanAirShip
- Mockito
- Dependency Injection
- GCM
- Espresso
PROFESSIONAL EXPERIENCE
SENIOR ANDROID DEVELOPER
Confidential, SAN FRANCISCO, CA
Responsibilities:
- Serving as the sole Android Developer on the team, I was responsible for communicating and coordinating with the Designer, IOS Developer, Backend teams, Analyst, and Project Manager to make the Android app work to specifications.
- Changing structure of classes from MVP to MVVM for Android guild.
- Implementing native sign-up for users within app instead of having to use web service.
- Implementing HTML strings to display hyperlinks within text views.
- Displaying new terms and conditions page to user in compliance with California law.
- Creating new layouts in accordance with design.
- Navigating between screens using a Nav Graph.
- Configuring navigation by using observers on sealed class objects.
- Passing data between classes using fragment listeners.
- API calls made using composite disposables.
- UAT testing done with Mockito.
- Unit testing done with Junit.
- Source controlled with GitHub.
- Using Analytics to log events for experiments.
SENIOR ANDROID DEVELOPER
Confidential, SCOTTSDALE, AZ
Responsibilities:
- Architected and coded user story from scratch using new Architecture components using LiveData, ViewModel and Room database.
- Created API request to generate the token request from client app and send encrypted user data with RSA/ESA asymmetric algorithm to backend.
- Took advantage of Android's jetpack's Navigation component to abstract much of the navigation logic away from fragments.
- Worked in multiple modules to ensure a separation of concerns between network, domain, and presentational logic.
- Included new Security library, part of Android Jetpack to secure streaming read and write operations using
- Conducted Unit tests utilizing MockK, Junit and InstantTaskExecutorRule to test coroutines.
- Introduced complex sealed classes to simplify a problem of receiving an array of varying responses from API.
- Performed the network operation and raised the level of abstraction around threading for parsing external API to load list of users, payments check and login activities.
- Implemented fingerprint authentication in an intuitive and secure fashion as a supplementary login mechanism.
- Performed integration for Braze SDK base analytics library and Braze SDK user interface library for in-app messages, push, and the news feed.
- Migrated Dagger2 library to Koin dependency injection library for Kotlin.
- Worked in code review first environment to reduce bottlenecks often induced by pull request processes.
- Optimized the performance of Layout hierarchies with ViewStub, mainly for those that contained views that were not used frequently.
SENIOR ANDROID DEVELOPER
Confidential, LOS ANGELES, CA
Responsibilities:
- Orchestrated and implemented complex chain and Lottie animation throughout the application.
- Created a generic custom element class that can render improved shadows on elements when material design’s card view wasn't enough.
- Downloaded and streamed workouts video into Exoplayer media UI using Jobschedulers and DownlaodManager.
- Implemented reusable accessibility extensions to ensure correct screen reader focus order in varying scenarios, such as with dynamic positioning of content on material design’s bottom sheet.
- Created a custom reusable snapping recycler view and adapter to meet acceptance criteria to ensure carousels snap at X amount of items.
- Worked with Google Fit API to upload fitness data to a central repository and authorization scopes to request user permission to work with fitness data.
- Optimized app to use Sensors API to provide access to raw sensor data streams from sensors available on the Android device.
- Used History API to provide access to the fitness history and perform bulk operations such as inserting, deleting, and reading fitness data.
- Integrated MyFitnessPal SDK to allow app access the functionality of MyFitnessPal and track users diets and exercise.
- Created and loaded privacy policy and T&C external content into WebViews.
- Replaced GCM with Urban Airship SDK to include Push Notifications, App-Invites, and In-App Purchase.
NATIVE ANDROID DEVELOPER
Confidential, DIANA BEACH, FL
Responsibilities:
- Rapid development: Responsible for ensuring project remained on schedule through repeated iterations of prototyping and discovery.
- Wrote test cases and worked with QA on a weekly release cycle.
- Built solid relationships with internal and external stakeholders.
- Coded new modules with an MVP approach, setting up all the interfaces and the decoupling of the classes for newer use cases and mock API testing.
- Included Matisse SDK to enable selection of images (including JPEG, PNG, GIF) and videos (including MPEG, MP4) and defined custom filter rules.
- Supported functionality to deploy code behind feature flags, remote configuration, experiment with A/B tests, and roll out or roll back features immediately using Optimizely sdk.
- Integrated PayPal SDK to receive a one-time payment from customer's PayPal account or payment card (scanned with card.io).
- Used gRPC library to support bi-directional streaming and fully integrate pluggable authentication with HTTP/2-based transport.
- Independently worked on the specific paid product flavor which can change or update order anytime.
- Created a chain of nested GSON custom deserializers to manage a tempermental API returning values of more than a single type.
- Involved with addressing internal and external issues raised as well as general bug bashing.
- Implemented Constraint Layouts to improve the layout performance and increase the UI layout readability.
- Removed Retrofit callbacks with asynchronous RxJava to send a Get, Post, Update HTTP request to backend to display 1000 top brands of pet food and supplies in custom ListView.
- Collaborated with the backend team to integrate the AWS framework to increase reliability and responsiveness of real-time transit tracking information.
ANDROID DEVELOPER
Confidential, SANTA MONICA, CA
Responsibilities:
- Worked existing clean code architecture in MVP and created shopping module, add-to-basket module, and customer profile module.
- Worked closely with UI/UX team for doing Material Design and applied custom animations on views and assigned proper spacing for iconography.
- Created multiple services for connecting with company backend to retrieve user account details, billing, and payment.
- Implemented Google Play Billing system and configured BillingClient and override on ConsumeResponse in the MVVM design pattern.
- Included DaggerMock testing library to test Dagger components in Unit test cases in TDD manner for presentation layer.
- Programmed modules, components, scopes to inject view models and network objects using Dagger Creational pattern.
- Replaced Volley library with RxJava, Retrofit library to make asychrous API calls to get user-profile and monthly stats data in custom view.
- Added custom deep links that the user will be sent to if the app is already installed and leveraged the power of Google Services to send invites to friends.
- Enable Google Pay to process payments from users, integrate Payment data cryptography for merchants and use sample tokens to test integration.
- Performed AIDL and defined the programming interface that both the client and service agree upon to communicate with each other using interprocess communication (IPC).
ANDROID DEVELOPER
Confidential
Responsibilities:
- Launched Android app that maintains a 4/5-star rating in the Google Play store with 20K+ downloads.
- Included Android-Job utility library to run jobs delayed in the background by creating JobRequest with the corresponding builder class and scheduled this request with the JobManager.
- Worked on Jsoup Java HTML Parser library to use DOM, CSS, and jQuery-like methods and implemented the WHATWG HTML5 specification, and parsed HTML to the same DOM.
- Utilized advanced functions of the Java software development kit (SDK) to optimize the flexibility of apps to different mobile devices.
- Introduced Observable Custom Elements that took advantage of live data in the codebase.
- Worked in Pair Programming strategy to reduce the learning curve on the customs process and custom SDK.
- Worked on custom markers, updated Google maps v2 to v3 and geo-location-based features to search the nearest match.
- Improved the user experience, Realtime App Analytics, and Conversion Funnels using Appsee SDK.
- Utilized Facebook Stetho, Charles Proxy API, Memory profiler, HierarchyViewer and Android Profiler to identify issues and enhance the performance.
- Created module to code the user-story 'make a quick connection with ladies and guys nearby'.