Profile Overview
*+ years of experience in developing Android apps.
* **** **** ********* ** the Play store.
Developed app using both Java and Kotlin programming languages and Android Studio IDE.
Hands-on with RxJava, RxKotlin, RxAndroid, RxBluetooth, and Kotlin Coroutines.
Applied MVVM, MVP and MVC architectures and SOLID design principles.
Experience in planning, designing, developing, and implementing successful large-scale mobile projects from client requirements to completion.
Implemented customized HTTP clients to consume REST APIs with Retrofit, Volley, OkHTTP, GSON and the native HttpURLConnection.
Experience of using Jetpack components such as ViewModel, LiveData, Room and WorkManager.
Experience of using Git for version control on Android projects.
Experience in working with Media Streaming content, Static content using ExoPlayer, Glide and Picasso.
Experience interacting with RESTful API and data formats like (JSON, XML, etc.) in an Android environment.
Solid relational DBMS skills using MySQL, PostgreSQL, SqLite and Realm.
Fluent in Android SDK/NDK and device driver development.
Ability to ask the right questions, provide feedback to stakeholders, break down the tasks, and create plans to achieve intended results.
Proven working in Agile(iterative) development (XP, SCRUM, etc.) on Android teams.
Set up proper interactions of the front-end design using Adove XD
Extensive experience with source control tools such as CVS, Rational ClearCase, SVN, and Git.
Experienced getting Android app approval on the Google Play Store.
Publish release builds as Apk and App Bundle to Play Store by following updating proccedure.
Use of cloud integration tools like Parse, Firebase, Google Cloud Services, and Amazon Web Services.
Hands-on with Kotlin Coroutines, LiveData, Android Jetpack, ViewModel, RxJava, Retrofit, Glide, ButterKnife., Databiding, Volley, and more.
Technical Skills Table
IDEs: Android Studio, NetBeans, Microsoft Visual Studio, Eclipse,
Incident Report Tracking: Jira, InstaBug, Firebase Crashlytics
Testing Frameworks: Espresso, Mockito, JUnit, MonkeyRunner, Robolectric
Multithreading: WorkManager, ThreadPoolExecutor, RxJava, Kotlin Coroutines, Handler, Looper
Android UI: Animations, CustomViews, CompoundViews. ConstraintLayout, BottomNavigationView, ViewPager, Layout Qualifiers, AnimationDrawable, RecycleView
Notifications: Firebase Cloud Messaging, Airship
Version Control Software: SVN, Git, Bitbucket, Visual Source Safe, SourceTree, GitHub, GitLab
Languages: Android SDK, Java, Kotlin, J2EE, JSP, JavaScript
Libraries: RxJava, Picasso, Glide, Volley, ORMLite, SQLCipher, JUnit, Urban Airship, ViewPagerIndicator, SharedPreferences, SlidingUpPanel, Facebook SDK, LeakCanary, GSON, Moshi, Jackson Retrofit, OkHttp, SimpleContentProvider, Schematic, GCM, Google Location, Google Maps API, Dagger2, Hilt, RSA, AES, Retrofit
Methodologies: Agile, Waterfall, RUP
Databases: SQLite, MySQL, SQL Server, Oracle, Room, Firebase, Realtime
Multimedia: Glide, Picasso, ExoPlayer, TextureVideoView
Continuous Integration Tools: Jenkins, CircleCI, Travis
Web Services: RESTful, SOAP, JSON, XML
Work Experience
Experian
Costa Mesa, CA
11/2022-Present
Senior Android Mobile Application Developer
https://play.google.com/store/apps/details?id=com.experian.android&hl=en_US&gl=US&pli=1
Get your Experian credit report and FICO® Score*—all free, no credit card needed. Instantly raise your FICO Score with Experian Boost™, get notified about changes to your credit with monitoring and alerts, and explore personalized credit card, loan, and auto insurance options to find the best fit for you.
Use Android Studio as the Integrated Development Environment (IDE) for developing the app.
Develop the app using the Model-View-ViewModel (MVVM) architecture, which is a modern architectural pattern that separates the app's logic and presentation.
Utilized APIs such as GET, and POST to update servers and retrieve information for users.
Used Retrofit for API calls, which is a popular and efficient library for network communication in Android development.
Used Mockito with Retrofit for mocking the API call (Mockserver), to help with testing and resolving issues.
Resolved bugs/defects pre-production to ensure the app functions correctly for users.
Integrated dependencies to unlock user subscription content, which can improve the user experience and increase revenue for the app.
Developed program functions/features in Kotlin, which is a modern, concise, and expressive programming language for Android development.
Created a brand-new dependency for an auto module, which involves information for different vehicles under each user, which can enhance the app's functionality.
Migrated the project to AndroidX, which is a major improvement to the original Android Support Library.
Used Kotlin coroutines for most of the asynchronous processes, which is a reactive programming library that makes it easier to manage asynchronous tasks.
Updated UI (User Interface) components so that the UI flows correctly, such as icons and bar charts that contain user information, which can enhance the app's user experience
Implemented Dagger to simplify the code and improve performance.
Used GSON library to deserialize JSON info to help with data management and improve app performance.
Used data binding and live data, which are part of the Android Architecture Components, to simplify the code and make the app more responsive.
Worked on pair programming, which is a collaborative programming technique involving two developers working together on the same codebase.
Aecom
Los Angeles, CA
09/2021 – 10/2022
Senior Android Application Software Developer
https://play.google.com/store/apps/details?id=com.projectp.acmtimespeed&hl=en_CA&gl=US
AECOM TimeSpeed is a time management system designed to make time entry easier as well as provide you with offline and mobile accessibility.
Worked in Android Studio with coding in Kotlin using an MVVM Android app architecture.
Applied Kotlin Coroutines to make the app multithreaded and perform synchronous operations.
Applied Kotlin extension functions to efficiently re-use existing codes and reduce code duplication to its bare minimum.
Practiced pair programming in support of best-practice Agile development practices.
Utilized Espresso for the automated UI testing RecyclerView interactions.
Utilized Mockito with Retrofit for mocking the API call (Mockserver).
Used JetPack components(ViewModel, Livedata, Room, WorkManager) to improve overall project code base and alignment with MVVM
Used RecyclerView extensively to display list data from RESTful web services proficiently.
Used code versioning tool, Git.
Used Leak Canary to manage, trace and fix memory leaks issue within the Android app.
Used APIs such as GET, POST, and PUT to update servers and retrieve information for users.
Handled user interactions such as button clicks and page swipes.
Assisted with code reviews on every PR to ensure quality code and a stable development process.
Worked closely with a present Figma design to bring the developed UI/UX design to life through Android Studio.
Implemented Bluetooth Low Energy (BLE) APIs.
Red Lobster
Orlando, FL
07/2020 – 09/2021
Android Software Developer
https://play.google.com/store/apps/details?id=com.cardfree.android.redlobster&hl=en_CA&gl=US
Use the Red Lobster app to Earn points toward delicious rewards every time you eat at Red Lobster; Take your pick of freebies; Receive notifications about Red Lobster offers and events; Find the closest Red Lobster; and more…
Programmed functions/features in Kotlin.
Programmed Kotlin extensions for commonly used code to reuse it and avoid repeating it everywhere it’s needed, including loading images into ImageViews, requesting permissions, write/reading from shared preferences, among others.
Migrated project to AndroidX to use the newest JetPack libraries.
Used data are binding to reduce code in fragments and LiveData to handle lifecycle data to only update the UI when it is available.
Used Crashlytics to track user behavior and obtain mobile analytics.
Built app on MVVM architecture.
Integrated Mapbox SDK to implement a better-performing maps experience than the old Google Maps implementation.
Worked with Google Analytics with Tag manager to Firebase analytics.
Implemented push notifications features with Firebase’s Cloud Messaging Service.
Provided feedback on the design process for all screens for food ordering and ways to reduce the number of taps needed.
Joined in the planning of the food ordering feature and decided on a direction to go regarding how the mobile apps should communicate.
Implemented complex designs using the InVision prototype to obtain the assets and optimized them for Android.
Implemented Braintree SDK for payment processing.
Migrated database from SqLite to Room.
Yahoo
Sunnyvale, CA
09/2019–07/2020
Android Software Developer
https://play.google.com/store/apps/details?id=com.yahoo.mobile.client.android.weather
Prepare for your day with the most accurate hourly, 5-day, and 10-day forecasts. Stunning Flickr photos match your location, time of day, and current conditions.
Applied OOP design experience.
Performed build work on an MVP architecture base and used Android Studio as IDE
Programmed in Java and Kotlin and began the shift from Java to Kotlin.
Used RxJava for most of the asynchronous processes.
Implemented new custom views to replace old ones from the previous version.
Implemented Flurry and Google for traffic and usage analytics.
Utilized ExoPlayer with a DASH (Dynamic Adaptive Streaming over HTTP) adaptive bit rate streaming technique to show ads and videos of the locations.
Implemented code to interact with the RESTful service server and serialized the returned code into POJOs via the GSON library.
Consumed Restful Web service in JSON strings.
Used reactive frameworks such as RxAndroid, RxBluetooth, andRxKotlin.
Worked with testing libraries and frameworks JUnit, Espresso, Mockito, and Robolectric.
Integrated with some distribution services - HockeyApp/TestFairy.
Developed Java programming language using the Eclipse IDE and the Android Development Tool (ADT).
Used implicit and explicit intents to access content and other resources from the web.
Created the database using SQLite local file and a Firebase implementation.
Integrated early debug builds with a real-time database built with Firebase.
Set up new Jenkins tasks for nightly builds and continuous integration.
Modified the navigation and replaced activities with Fragments.
Implemented the new Material Design capabilities supported in Android Lollipop.
Used Retrofit to handle the API consumption with a Jackson built-in converter.
Landry’s
Houston, TX
08/2018–09/2019
Android Software Developer
https://play.google.com/store/apps/details?id=net.landrysinc.lac&hl=en_CA&gl=US
Download the LSC app to manage your Landry's Select Club account, find Landry's locations near you, make reservations, view menus, purchase gift cards, and more. Find restaurants nearby or search based on city, state, or zip code; view menus, make reservations and get directions; and more.
This app was built on MVP architecture using Java language.
Used APIs from the latest API levels to support backward compatibility.
Implemented best practices for Android mobile development with their main components: Activities, Services, Content Providers, and Broadcast Receivers.
Implemented Push Notifications to notify users when there is a new price update.
Implemented newer features in Kotlin and migrated older features coded in Java to Kotlin.
Ensured backward compatibility by using Android support libraries.
Applied and configured Geo-Fencing capabilities that were built-in with the Google APIs.
Configured multiple analytic tools to get valuable information on a post-install state: Crashlytics, and Mixpanel.
Persisted non-sensitive data with Realm database and ensured that the database was using encryption algorithms when persisting user information.
Secured the database using SQLCipher and Secure Preferences.
Added Flurry for user behavior tracking and quality control over crashes.
Used Android Studio as IDE.
Created unit, integration, and stress test cases with JUnit, Espresso, and monkey-runner.
Configured the continuous integration process with a Jenkins instance hosted on a private server.
Utilized Android and third-party frameworks to use the multithreading capabilities of the physical devices: AsyncTasks, IntentServices, Handlers, Threads, and RXJava instances.
Peel Technologies
MountainView, CA
01/2017–08/2018
Android Developer
https://play.google.com/store/apps/details?id=com.peel.remote.control.universal&hl=en_CA&gl=US
Peel Smart Remote is always good and easy to use a single universal remote-control device to control all your electronic equipment tired using the different remote control for each electronic device. Try the universal Peel Smart Remote to use all remote control from your android mobile. No need to use a different remote control, just use a single app from your phone to handle all your device from one remote control.
Implemented Dagger to address many of the development and performance issues.
Managed quality build process using Jenkins continuous integration, with a Git repository on a private Git server. Git was managed using BitBucket on the existing Android app and we migrated the process to SourceTree.
Created and developed unit testing, instrumentation testing, and automation testing for each new feature implemented using Junit, Mockito, Roboelectric, Powermock, Espresso, and Calabash for Android.
Used Implicit and Explicit Intents.
Developed Custom Views, Compound Views, and various layouts to construct the complex but user-friendly user interface.
Worked on Starva Bluetooth BLE SDK to design a module to pair with Bluetooth devices and transmit large bytes of attributes.
Designed the UI layout with the Balsamiq Mockups wireframe tool for the app's look and feel.
Ensured display and on-screen rotation worked well on all devices and screens, ensuring integrity with the onSaveInstanceState and onRestoreInstanceState methods.
Used GSON library to deserialize JSON information.
Handled Fragment data retention to ensure data integrity in Android on-screen rotation with the onSaveInstanceState and onRestoreInstanceState methods.
Engaged with cross-functional teams to define new product requirements, features, and functionality in the app.
Aqua Mail
San Diego, CA
02/2015-12/2016
Android Programmer
https://play.google.com/store/apps/details?id=org.kman.AquaMail
FAST AND SECURE email app for android
Looking for a reliable email app for android to manage all your emails from one place?
Want this imap mail client to be widely customizable, yet easy to use?
Collaborated with other team members to achieve common goals and contribute to the team's overall success.
Worked with the product owner to convert the product backlog into potentially releasable increments wherein breaking down larger tasks into smaller, manageable ones, and ensuring that each increment provides value to the end user.
Used an Agile working method to deliver across the entire product life cycle – from concept, design, build (code), deploy, test, release, and maintain unit, functional, and performance test automation.
Optimized the user interface (UI) for different android versions and devices using Fragments, which allows for modularization and reuse of UI components.
Used Android's library to include animating rotation, translation, alpha, and scale, which can help enhance the user experience.
Implemented disk-based least recently used (LRU) cache, which specifically targets Android compatibility for accessing the file system. This can help improve app performance and reduce data usage.
Implemented data persistence using SQLite for caching data in the app device, which allows for faster retrieval and access to data.
Parsed JSON data using HTTP client (GET, POST, DELETE, PUT) Volley library and display it in a list view following the view holder pattern to display the latest news and articles.
Upgraded SDK to share articles and videos, which can improve social media integration and user engagement.
Configured and sent notifications around breaking news and important emails using Google Cloud Messaging (GCM), which can help keep users informed and engaged.
Education
Catawaba College