Post Job Free

Resume

Sign in

Senior Android Developer

Location:
Seattle, WA, 98105
Posted:
December 18, 2023

Contact this candidate

Resume:

BLOWORLF MATHURIN.

Phone: 206-***-****

Email: adzxe4@r.postjobfree.com

,

Sr. Android Developer,

Kotlin Jetpack Compose MVVM MVP Java NDK ReLinker MixPanel Google Home Google Assistance API Play Services Keystore Retrofit SQLIte FSM BLE WiFi Protocols ExoPlayer Material Design Zeplin TDD BDD Mockito Espresso Firebase Robolectric AWS JetPack LiveData Bluetooth BLE OAuth AES Encyption Dependency Injection Reactive Programming Agile Scrum Push Notifications Instruments tests RESTful Web Service GIT GitLab SVN Jenkins MVC SOLID MVVM Unit Testing Multithreading Jira OAUTH2 Stripe PayPal Android Studio SonarQube Bitrise Circle CI JetPack Navigation Services ContentProviders Kotlin Flow MonkeyRunner Slack Kotlin Coroutines Trello Google Services API Confluence Node.js Android TV Koin Dagger Hilt MotionLayout MDM Appium Handlers & Loopers Runtime Permissions

Technical Experience

•Senior Android developer with over 10 years of experience in diverse industries such as news, finance, sales, transportation, travel, productivity, and entertainment (4yrs Kotlin, 8 yrs. Java)

•Proficient in OOP design patterns and related frameworks, multi-Threading, and memory management specific to mobile devices, in-depth understanding of caching mechanisms

•Experienced with third-party libraries and APIs like Retrofit, Glide, Picasso, Hilt, Koin and Firebase

•Experienced leading and/or mentoring other developers creating training documentation and 1-1 sessions

•Familiarity with agile/iterative development methodologies (XP, Agile, etc.), expertise with deployment methodologies

•Utilized Bluetooth Low Energy capabilities to transfer information through different services, characteristics, and profiles

•Experience with Android testing frameworks, proficient writing clean unit test cases, TDD and BDD testing techniques

•Exposure to continuous integration and continuous delivery practices, especially in an environment of weekly (or even more frequent) releases to production

•Expertise in UI development with programmatic layouts per design specifications

•Excelent hands on experience utilizing web service protocols (REST, SOAP, API) and consume payloads with respect of UI usability

•Experience with Test-Driven Development (TDD) and Behavior-Driven Development (BDD)

•Experience with Google Play APIs: Maps, Location, and Cloud Messaging and play store deployment

•Constantly self-educating in new trends and updates in the AOSP environment

•Ability to contribute to design, architecture and technical strategy

•Skilled at researching and testing frameworks, tools and technologies to find the best solutions

•Commitment to getting results for time-sensitive launches, promotions, and events

•Adept with Android performance tuning and crash reporting applications

•Ability to manage competing priorities in a complex environment and maintain high productivity

•Reliable and dependable, working well independently or in a team

•Experience interviewing and selecting candidates for hire on development teams

Project Experience

SR ANDROID DEVELOPER

May 22 – Present

Credit One Bank, N.A., Las Vegas, NV

•Team: Fast paced Agile DevOps Planning-Poker scrum estimation 2-weeks sprint cycle large cross functional team 8 Android developers/ 7 Apple developers / 4 Designers / 5 Backend

App link: https://play.google.com/store/apps/details?id=com.creditonebank.mobile

•Incrementally migrate a large codebase to Compose, Kotlin Coroutines, Flows and channels API, Paging, Navigation component, AndroidX and JetPack crypto library

•Architect new features using Jetpack compose to build new responsive and accessible UI, custom drawing, animations for login screen, list screen using lazy column and Navigation Compose API

•Add Accessibility Services like Switch Access, Talkback and add support for additional gestures and use Accessibility Test Framework to test content labels, clickable items, contrast, voice access and perform user testing service

•Work on Apollo Kotlin (formerly Apollo Android) GraphQL client to generate Kotlin and Java models from GraphQL queries, executes queries and mutations against a GraphQL server and return results as query specific Kotlin types in MVVM clean code architecture implementation to implement transfers and digital receipts user stories

•Migrate payment module to Kotlin programming language and share code such as business logic, connectivity between mobile platforms with Kotlin Multiplatform feature in MVVM architecture

•Improve Kotlin login feature using OAuth library for tokenbased authentication and BioMetric API

•Troubleshoot performance issue and analyze crash metrics using AppDynamics SDK

•Work on authentication and authorization, applied cryptography and security vulnerabilities.

•Write clean unit test cases for presenters, AppData Manager and use Test Automation tools (Calabash, Cucumber) and create test utilities to make managing modules and test bindings

•Set up a CryptographyManager class to handle encryption, decryption, and storage of the user token

•Create new feature to Implement coroutines to call OpenBank Verification API

•Code on existing Credit One Bank SDK to communicate with backend to get data relating current balance and user credit score information

•Work on other beta version of the app to integrate Cryptocurrency API in Payment module for users to purchase and trade coins

•Optimize and fix critical bugs relating to check balance, pending transactions, and access past PDF statements with usage of Crashlytics, JIRA

•Conduct code reviews as part of Git Workflow

•Integrate PubNub SDK for in app customer support chat and make PubNub API calls, like publish, subscribe to a channel, listen for messages and status events

MOBILE APP DEVELOPER

Aug 21 – Apr 22

•Discovery Digital, San Francisco, CA

•Team: XP Programming T-Shirt size scrum estimation 3-weeks sprint cycle Continuous Integration TDD Mid-size team

•App link: https://play.google.com/store/apps/details?id=com.discovery.dplay

•Migrate MVP to MVI architecture to handle data streams and Jetpack transformation

•Deliver builds to our customers using Azure hosted DevOps pipeline, add the App Center Distribute task to distribute an application to a group of testers or beta users, or promote the application to Intune and manage the publication of live builds on the Google Play Store Worked on Android TV SDK to build TV app using Leanback Library

•Work on Leanback library to display rectangular card view, ImageCardView, to easily display content Code BrowseSupportFragment to navigate/browse our TV app, DetailsSupportFragment to display detail page, a playback video fragment extending playbackSupportFragment, for errors code ErrorSupportFragment.

•Work with Transmit SDK for managing customer registration process data and orchestrate oAuth authentication and biometric authenticators across multiple channel

•Work on App bundle, product flavors, Hilt dependency and Firebase oAuth process

•Add Unit Tests for every feature developed, isolated the tested class from dependencies using Mockito

•Configured Jenkins CI to add Google publisher API with Fastlane to automate app deployment process

•Perform video streaming improvements and usability enhancements using media codecs and media extractor classes for custom media player

•Integrate Relinker library to resolve intra-library dependencies and recursively load all libraries defined as "needed" by each library

•Develop the feature to view live 1080p HD clips, providing users with real-time monitoring and a clear view of their surroundings.

• Integrate Kotlin Lottie animation library for Loading an Animation, download animations from the network with Dynamic playback speed.

•Add the Google Cast SDK to cast content from a mobile device to a TV and add add the necessary UI components based on the Google Cast Design Checklist

•Implemented PayPal’s Invoicing API to create and send invoices alongwith billing plans and billing agreements to create an agreement for a recurring PayPal or debit card payment

•Work on Stripe with Encryption Library to securely collect payment information from customers and customize checkout experience

NATIVE ANDROID APP CODER

Mar 20 – Jul 21

Doctor On Demand Inc, San Francisco, CA

•Team: Pair Programming joined there was total 4 android in this team and by the end there was 9 in total, 2-week sprints, Agile work culture

App Link: https://play.google.com/store/apps/details?id=com.doctorondemand.android.patient

•Spent most of my time working on the profile feature which involved creating a fragment that showed multiple information about them and then when users hit an edit button the profile would change so information would be editable

•Created custom view widgets for each different section of profile to allow it to be modular as there was a lot of info and used Figma

•Main task were coding create visit acceptance which is where user will receive information about new shifts and either select to accept or decline them. And work on an in app chat, where they can talk to the branch they work for and send pictures and videos.

•Migrate legacy code in MVP to modularized MVVM Architecture using Livedata, Viewmodel, data binding and other Jetpack Components

•Configure Firebase for remote config, cloud messaging, crashlytics and analytics Application Discovery, Time-Series Analytics, In-App User Stats and custom time-series metrics

• Integrate Vonage Video API Android SDK to embed real-time, high-quality interactive video, messaging, screen-sharing, manage user connections, audio-video streams, and user events (such as a new user joining)

•Incorporate Krux SDK to capture people data from all mobile platforms and perform backend data mining

•Incorporate Android YouTube Player library to use IFrame Player API, inside of a WebView and provide Chromecast YouTube player extension, that can be used to cast YouTube videos from an Android app to a Chromecast device

•Perform gRPC authentication including gRPC’s built-in error codes with use of SSL/TLS to authenticate the server and encrypt all the data exchanged between the client and the server

•Migrate RxJava to Kotlin coroutines to handle streams of values, transform data using operators, code exception handling during flow processing and combine multiple data streams

•Worked on Dagger2 dependency injection to add bindings from known components, inject view models, manage modules, and provide test bindings

•Integrated, orchestrated REST calls, JSON parsing and construction, UI implementation from specifications and troubleshoot HTTP traffic using moshi, retrofit, okhttp libraries

•Appetize.io was used to view working app- this help see how iOS have implemented specfic features

•Improved code quality by using tools to detect possible vulnerably such as SonarQube and Fortify SCA, and ensure that no vulnerabilities are present

•Used Bitrise CI for Automatic signing, version numbers, and manage automatic publishing to internal distribution channel

NATIVE ANDROID APP CODER

Mar 18 – Feb 20

Ford Motor Co., Dearborn, MI

•Team: DevOps Environment Daily Scrum 3-weeks sprint cycle Agile TDD small-size team

•Coordinate remotely with India offshore development team in Agile environment

App Link: https://play.google.com/store/apps/details?id=com.ford.fordpasseu

•Worked on Ford’s connected, modem-enabled vehicles

•Optimized the route of journey, self-diagnosing and sending vehicle health alerts

•Displayed a map with the marker and displayed the address below the map view.

•Worked on displaying a list of alert notifications.

•Resolved dependency issue: moved the GuardModeAlertViewModel to the GuardMode module.

•Disabled views for Vehicles in deep sleep and displayed the banner if stolen flag was set.

•Implemented a custom hamburger menu to incorporate into the application to allow users get to the different application sections by swiping at the edge of the screen

•Worked on SecuriAlert part of the app (especially Stolen Vehicle Services, Location Alert and Scheduler) to add new features and fix bugs in existing functionality.

•Incorporate Bluetooth Low Energy (BLE) APIs to discover devices, query for services, and transmit informationWorked on build Ecoaid libray (.aar) to update Ecoscore Android library project, which wraps another C library which contain ecoaid model that for given data car values (as speed, rpm, ect,etc) return drive alerts as gear up, gear down, ease off, idle, etc, to improve the driving behaviour of the user to save fuel

•Program Android App, which connects with a car plugin through BLE to get all car data to show given alerts into the UI

•Code JNI to wrap and expose the functionality of the C library

•Document activities related with Android library, technical and functional one, including a guideline how to install and use this library

•Implement Mather SDK and Ensighten SDK to automatically track app launches, page views, clicks and gain valuable insights

•Refactor modules of the app from MVP to MVVM app architecture using Kotlin coding and eliminating null-point exceptions and refactor test cases

•Work with a functional reactive framework for managing state evolution and side-effects, with add-ons for connecting to Android UIs and RxJava Observables

•Implement AIDL to call an IPC method and create functional modules with Parcelables bundle arguments

•Write BDD test cases using Cucumber and calabash for Create and edit Waypoints user story

•Pair program to integrate Google In-app purchases to purchase Pro features

LOW LEVEL ANDROID DEVELOPER

Jun 17 – Feb 18

CompanyCam, Lincoln, NE

•Team: Worked on the Android development team with 3 Android developers, front-end designer, QA testers, and worked closely with the Product Manager to ensure the product met requirements and vision.

App Link: https://play.google.com/store/apps/details?id=com.agilx.companycam

•Incorporate CameraKit library for Automatic preview scaling, multiple capture method and pinch to zoom features

•Incorporate CameraView library to capture pictures and videos with real-time filters, gestures, frame processing and RAW files

•Work on Camera API for image capture with different resolutions, PEG Image Capture, YUV Image Capture, Camera Change option and exposure properties

•Ensured continuous integration using Subversion as our main repository for seamless workflow and streamlined release processes through automated steps using Google Publisher API and CI optimizations

•Develop connection to server using XML parsing, Async tasks, Http network calls to app

•Add Localization feature to support multiple languages

•Build flexible layouts using fragments and view pager indicator

•Introduced Material Design to the app to provide a more lightweight and standard user interface that complied with the latest technology trends

•Utilized existing patterns such as Fragments and Tabs to ensure that the UI was compliant with the Android design guidelines

•Work on JUnit testing framework for testing network modules and API

ANDROID DEVELOPER

Jan 16 – Jul 17

MapQuest: Get Directions, DENVER, CO

•Team: Large size team of 7 Android, 6 iOS developers, 5 API developer, 4 QA and 4 designers

•App Link: https://play.google.com/store/apps/details?id=com.mapquest.android.ace

•Integrated Google Location API, geofencing API and Maps to retrieve the user’s current location to provide the leagues relevant to user local area

•Work with Volley for consuming RESTful web services to get upcoming fixtures and locate the pitches where those fixtures are to be held

•Implemented Software design and architecture using recognised architectural style MVP

•Integrated Google Maps API for geo-location-based updates, routing, customised map makers and advanced location-based services for Pitches

•Incorporate webviews for displaying web pages and integrate Javascript interfaces to handle UI interaction

•Remove background services implementation code with add foreground services using FCM

•Contribute to production release deployment, certifying release features, monitoring production logs and fixing production issues on demand

• Use technologies and libraries like Java, Groovy, Firebase, Mercurial, Jellyfish, Jenkins, Gitlab, SonarQube, Gradle, Android Studio and C++

•Use Mockito and JUnit to write unit test cases for presenters, underlying algorithms with 80% code coverage for different usecase scenarios received from QA team

ANDROID DEVELOPER

Mar 14 – Dec 15

MyNetDiary.com, Marlton, NJ

•Team: Worked in a fast paced cross-functional Agile team with daily Scrum meetings with Planning poker estimation technique. Team size was around 15

•App Link: https://play.google.com/store/apps/details?id=com.fourtechnologies.mynetdiary.ad

•Enhance Java's type system using Checker Framework and implement Nullness Checker, Regex and Tainting checker

•Implement Bolts framework to make tasks composable to perform branching, parallelism, and complex error handling, without the spaghetti code of having many named callbacks

•Migrate from SQLIte to Sugar ORM to create large complex data model and save/retrieve and iterate over the business objects

•Resolve hardware issues on HTC, LG AND Samsung devices relating to network connections, Wi-Fi connections, pair with Bluetooth devices and network access

•Use nested Fragments to handle the navigation over with using the ChildFragmentManager to improve the modularity and reusability of the UI

•Pair program to integrate Bouncy Castle Crypto package for cryptographic algorithms to protect network data

•Implement certificate pinning with Volley library to parse SOAP responses for Balances and transactions API and display in custom component

•Code account management feature, including create, sign in, password recovery, retrieve, and update account details in MVP architecture using data binding

•Incorporate webviews for displaying login page and integrate Javascript interfaces to handle UI interaction

•Work in TagSoup SAX-compliant parser SDK to parses HTML content to exact relevant data for API parsing activities

•Implement Bolts framework to make tasks composable to perform branching, parallelism, and complex error handling, without the spaghetti code of having many named callbacks

Education/Other

Bachelor of Science (Computer Science) from Ecole Supérieure d'Infotronique d'Haiti (ESIH), Port-au-Prince, Haiti



Contact this candidate