Post Job Free

Resume

Sign in

Sr. Android Architect

Location:
Irving, TX, 75063
Posted:
October 06, 2023

Contact this candidate

Resume:

John Reyes

Android Developer (Senior Level)

Phone: 469-***-****

adxlba@r.postjobfree.com

PROFILE OVERVIEW

•10+ years in Android development.

•5 apps published on Play Store.

•Demonstrated proficiency in Object-Oriented design and programming with extensive experience building Android apps from scratch and refactoring codebases, including transitioning architecture (MVC, MVP, MVVM) and migrating from Java to Kotlin

•Native Android Development in Android Studio and Eclipse using Java and Kotlin

• Implemented Java design patterns such as Singleton, Facade, Factory, Builder, and Adapter

•Developed user interfaces using Custom Views, ListView, RelativeLayout, LinearLayout, and TableLayout.

•Improved layout rendering by optimizing the view hierarchy and leveraging Android material design tools like CardView, Toolbar, RecyclerView, animations, and support libraries.

•Proficient in Android performance profiling, memory management, power optimization, and implementing optimizations

•Enhanced performance and user experience of modules in the local Content Management System.

•Utilized security measures like Shared Preferences, Cipher, Certificate Pinning, TrustManager, Bouncy Castle, Spongy Castle, SQLCipher, KeyChain, and Key Store

•Experienced in utilizing analytics tools for mobile applications such as Google Analytics, Localytics, Mixpanel, Answers, Flurry, Crashlytics, and NewRelic.

•Proficient in Git for codebase management and version control (GIT, GitHub, GitLab)

•Worked effectively in Agile development teams using Scrum processes

•Utilized Android frameworks and APIs, such as Loaders, AsyncTaskLoader, and SyncAdapters, for efficient data loading and database updates

•Well-versed in various Android third-party libraries including Volley, Retrofit, Picasso, YouTube, Location API, Maps View, Google View, Google Maps, PayPal, Stripe, Android Pay, QR Droid, Butterknife, Dagger, and Google Wallet payments

•Skilled in consuming RESTful web services (REST, HTTP-based, XML, SOAP, JSON) using Retrofit, Volley, and AsyncTask for Android back-end communication.

•Practical implementation of Android Life Cycle, Fragments, Intents, and threads, along with binding services, background processes, sync adapters, activity, activities for Result, WebView, ImageView, TextView, RecyclerView, and ListView

•Stayed up-to-date with the latest Android technologies, frameworks, and industry best practices

•Solve problems creatively and articulate ideas, problems, and solutions with the team

TECHNICAL SKILLS

•PROGRAMMING LANGUAGES: Kotlin, Java.

•IDE: Android Studio, Eclipse, Visual Studio, IntelliJ.

•DATABASE: Room, MySQL, Microsoft SQL Server, SQLite, Firebase Realtime DB.

•MULTI-MEDIA: Glide, Picasso, Fresco, ExoPlayer, VideoPlayer.

•THREADING: Java Thread/Runnable, ThreadPools, Loopers/Handlers, AsyncTask, Loaders, RxJava, Coroutines.

•PROJECT METHODOLOGIES: Agile, Scrum, Waterfall.

•ARCHITECTURES: MVC, MVP, MVVM.

•VERSIONING/CONTINUOUS INTEGRATION: GIT, SVN, GitHub, Stash, BitBucket, GitLab, Jenkins, Travis CI.

•LIBRARIES: Retrofit, OkHttp, Dagger2, Material Design, Event Bus, Glide, Picasso, GSON.

•OTHER: Slack, Teams, JIRA, Trello, Stetho.

WORK EXPERIENCE

Charter Communications/ Dallas, Texas / 06/2022 to Present

Senior Android Architect

App: Tech Mobile

TechMobile is an internal app that provides field resources with a robust, mobile tool to productively and efficiently administer and close out work orders, and make your daily responsibilities easier, in this situation a technical received a list with different jobs reported for users with detailed data such as Job Details, Activation, Performance, Job Close, etc, we had to guarantee correct behavior of the app using Unit tests, integration tests, and end-to-end tests

•Utilized the Model-View-ViewModel (MVVM) architectural pattern to design and structure Android applications

•Leveraged Android Jetpack components such as ViewModel, LiveData, and Data Binding to enable separation of concerns, improve code maintainability, and enhance testability

•Upgraded the app's asynchronous programming paradigm from RxJava to Kotlin Coroutines

•Replaced reactive streams and asynchronous operations with suspend functions and structured concurrency, leveraging features like flow control, structured error handling, and simplified code syntax

•Leveraged kotlin's advanced features, such as extension functions, coroutines, sealed classes, and more, to refactor the existing Java codebase

•Took advantage of Kotlin's interoperability with Java, null safety, concise syntax, and functional programming capabilities to improve code readability and maintainability.

•Developed and integrated new endpoints within the app's network layer using modern approaches like GraphQL or gRPC

•Implemented data mapping, caching, and encryption mechanisms to ensure secure and efficient data handling

•Utilized libraries like Apollo or gRPC-Android for seamless integration with the respective protocols.

•Implemented comprehensive unit tests using modern testing frameworks specific to Kotlin, such as KotlinTest or MockK

•Covered critical business logic, data transformations, and integration points with external services and leveraged techniques like property-based testing and contract testing for improved test coverage and reliability

•Adapted XML-based layouts to utilize Jetpack Compose, Google's modern UI toolkit for building native Android interfaces

•Wrote UI components using Compose's declarative approach, taking advantage of state-driven UI, powerful animations, and simplified UI testing

•Utilized Compose's Material Design components and customizable themes to create visually appealing and responsive UIs.

•Resolved multiple app crashes: Utilized advanced crash reporting and monitoring tools like Firebase Crashlytics or Bugsnag to track and analyze application crashes

•Analyzed crash reports, error logs, and user feedback to identify and fix issues related to exceptions, memory leaks, ANRs (Application Not Responding), or other common sources of app crashes

•Used tools like Jetpack's Memory Profiler to optimize memory usage and address performance bottlenecks.

•Transitioned the app's dependency injection framework from Dagger to Hilt, the recommended successor

•Leveraged Hilt's simplified and declarative approach to dependency injection, reducing boilerplate code and enhancing developer productivity

•Utilized Hilt's integration with Jetpack libraries like ViewModel and WorkManager to streamline dependency injection in Android components.

•Utilized the Navigation component in Jetpack Compose to implement a single source of truth for navigating between screens and passing arguments

•Used features like deep linking, safe arguments, and dynamic feature module support to create a robust and scalable navigation system.

•Introduced modularization and dynamic delivery techniques to optimize app size, improve build times, and enable on-demand feature delivery

•Used Android App Bundles and Play Feature Delivery to deliver features and resources dynamically based on device configurations and user requirements.

Mint/ Mountain View, CA / 11/2019 to 05/2022

Senior Android App Engineer

https://play.google.com/store/apps/details?id=com.mint&hl=en_CA&gl=US

Mint is the free money manager and financial tracker app that brings together all of your finances. Plan ahead! From account balances and budget planners to tracking expenses and debt payments, all your money management is now in one place.

•Served as part of an Agile Android dev team that worked under Scrum frameworks with Sprint planning, Sprint retrospective,3 Amigos meetings, planning poker practices, and test automation meetings.

•Participated in code review strategies.

•Implemented CustomAttribute, and CustomView, reused existing binding adapters, and reduced boilerplate code with MVVM data-binding architecture.

•Worked within an MVVM architectural model and programmed in Kotlin for ease of maintainability and extensibility, as well as improved quality testing.

•Pair programmed to complete user stories like track subscriptions, and spending analytics, and connect all bank and credit card accounts using checkout SDK, Emma RESTful API, and NDK.

•Worked with refactoring use cases and RxJava to Kotlin coroutines and replaced JobDispatchers with WorkManager API for background services implementation

•Set up Dagger Hilt in Application, inject network, database, test utility modules, and added multiple bindings to the same type with qualifiers and used @EntryPoint to access containers from classes that Hilt doesn't support.

•Wrote unit tests for all features implemented using Kotlin Mockk library and Robolectric.

•Used Jetpack navigation graph, pagination, and Jetpack compose to develop view model, view, and data domain layers for the tickets to complete full-feature development.

•Accessed the list of branches and ATMs for specified banks, including geolocation and opening hours, using Open Bank API.

•Implemented AES/RSA, KeyStore, Android Cryptography API, keypair generator, certificate pinning for encryption, decryption, key agreement, and secure network calls.

•Integrated Flow API with Kotlin coroutines to handle streams of values, transform data using Flow operators, code exception handling during flow processing and combine multiple Flows

Associated Bank / Green Bay, WI / 02/2018 to 11/2019

Senior Android Application Engineer

https://play.google.com/store/apps/details?id=com.associatedbank.mobilebanking&hl=en_CA&gl=US

Associated Bank Mobile is a convenient and secure way to manage your money. Quickly check balances with Instant Balance, fingerprint sign in, review transactions, deposit checks, view and pay bills as well as add new billers with SnapPayments and transfer funds.

•Worked in a fast-paced cross-functional Agile team with daily Scrum meetings with Planning poker estimation technique.

•Worked in a hybrid codebase with both Java and Kotlin coding while transitioning to Kotlin.

•Coded in existing MVVM architecture using Data Binding Library to bind UI components in the layouts to data sources.

•Used RxJava and Retrofit combination to make observables out of the RESTful network calls.

•Created a function that provides access to an EncryptedFile, using an API similar to that for accessing EncryptedSharedPreferences.

•Programmed custom services using the JobDispatchers library to download PDF statements, credit score history, and spending history.

•Worked on AndroidWatch module to display notifications.

•Incorporated Jetpack Crypto, CWAC SQLCipher, SafetyNet Attestation API, and SafetyNet reCAPTCHA API to protect the app from malicious traffic and assess the device's integrity.

•Integrated N26 custom SDK that consisted of modules such as Link Bank Accounts, Communicate with Customer Balance Transactions API, Visa Token Service, ATM Locator, and Visa Card Eligibility Restful web service,

•Worked on SOAP web services, NDK, and microservices to create a full E2E feature for setting savings targets, cashback, resetting the PIN, and transferring money with a single swipe.

•Created a minimal viable product demonstrating Bitcoin features using Bitcoin Price Index (BPI) API and Litecoin API to allow viewing of unconfirmed transactions, query transactions, and display real-time data.

•Implemented Android Bluetooth and Location Connectivity components.

•Debugged and fixed access to Bluetooth settings, network connectivity, Wi-Fi Multicast reception, and connect and disconnect from Wi-Fi.

•Worked for 4 sprints for Contactless payments Google Pay API configuration to return appropriate payment credentials for transactions subject to Strong Customer Authentication (SCA) with Payment data cryptography.

•Fixed critical bugs relating to logging in with fingerprint and face recognition.

•Replaced old Camera API code implementation with Fotoapparat SDK to improve face detection capabilities

•Built unit tests to verify the logic of specific code using dependency providers like Robolectric and Mockito Mocking framework to isolate the unit from its dependencies.

Smart Receipts LLC/ New York, NY / 08/2016 to 02/2018

Android Application Developer

https://play.google.com/store/apps/details?id=wb.receipts

Turn your phone into a receipt scanner, mileage tracker, and expense report generator with Smart Receipts! Smart Receipts allows you to select from over 20 different default data types (including dates, price, tax, receipt categories, comments, payment methods, etc.) to help you generate the perfect report, saving you hours of time doing expenses and getting you back to things you actually care about.

•Worked on Android development team applying Agile principles, Scrums, Sprints, and pair programming.

•Synchronized data between Android devices and web servers.

•Implemented automated execution and integrated account management and authentication into data transfer.

•Implemented MVP architecture and various design patterns (Singleton, Proxy, Observer).

•Developed new Kotlin modules and migrated existing Java code into Kotlin.

•Implemented layouts using the latest RecyclerView and CardView combinations to improve the User Interface.

•Validated asynchronous operations whose results affect subsequent operations in a UI test using Idling Resource Espresso.

•Provided backward-compatible notification API with Wear and Auto support, media playback, and routing.

•Created modules, components, and custom scopes using Dagger2 and performed loose coupling.

•Worked with ScribeJava OAuth library to sign HTTP messages and request tokens from an OAuth service provider.

•Integrated Google Play billing service API for buying one-time products, query for in-app product details, and test acknowledging purchases with license testers.

•Integrated Android-Query (AQuery) library for doing asynchronous tasks and manipulating UI elements to display distance traveled for mileage reimbursement.

•Enabled the user to search and pinpoint desired listings based on multiple varying inputs via SearchView and Content Provider allowing for customized findings.

•Created a generic Retrofit wrapper class and put it in an internal library to replace Volley and incorporate RxJava 2 for API calls.

•Implemented rich user interface per UI/UX and Google's Material Design specifications.

•Used third-party Z-Xing library to scan items using a barcode scanner.

•Used Jenkins for CI and Git for code base and version control, commits, and merges.

THE HOME DEPOT, INC. / Atlanta, GA / 01/2015 to 08/2016

Android Mobile Application Developer

https://play.google.com/store/apps/details?id=com.thehomedepot

Save time with The Home Depot app. Shop over one million products and find the info you need most.

•Refactored MVC to MVP for a cleaner codebase.

•Implemented design patterns Builder, Singleton, and Observer.

•Built app Android Studio using Java and Kotlin and various libraries and frameworks.

•Worked on XML UI design.

•Implemented RxJava to get the server response.

•Integrated new features using Kotlin into an existing Java code base.

•Refactored and optimized seconds of code to maximize resource usage.

•Created an environment for success through pair programming and code reviews.

•Executed tasks away from the main thread by using loopers, handlers, and runnable.

•Developed a Navigation Drawer for easier navigation for easier app use.

•Created infinite scrolling for the list of items currently active in the RecyclerView

•Implemented horizontal RecyclerView with divider item decoration for popular items.

•Used Picasso for quick image retrieval and displayed to UI.

•Enabled customers to contact support through text, email, or by phone using Implicit Intent.

•Set up Runtime Permissions based on customer's response to dialogs.

•Implemented dynamic fragments from network connection status.

•Added QR and barcode scanning functionality by using QR Droid.

•Used Android services to perform long-running operations without blocking the UI thread.

•Directed customers to the nearest retail store by determining user location through the Fused Location Framework.

•Debugged Network calls using Charles Proxy.

Coca-Cola / Atlanta, GA / 10/2012 to 01/2015

Android Developer

https://play.google.com/store/apps/details?id=com.coca_cola.android.ccnamobileapp&hl=en_CA&gl=US

Say hello to the Coca-Cola App! Discover moments worth savoring, unlock refreshing surprises, and redeem rewards—all at your fingertips.

•Used support libraries to ensure backward compatibility with older Android versions.

•Utilized Dalvik Debug Monitor Server (DDMS) for debugging and testing.

•Used HTTP rest calls for better performance using different threads.

•Implemented Google Maps API integration with the application.

•Used SQLite database to generate local caching service and faster rendering.

•Developed the back-end services with Java technology including Servlets, Tomcat, etc.

•Added extra support for formats such as wav, ogg, mp3, 3gp, mp4, m4a, alac, etc.

•Developed secure and reliable RESTful web services with J2EE technologies.

•Implemented a ListView with lazy image loading using Picasso.

•Applied Bluetooth Low Energy to make tests and handle geofencing when getting close to iBeacon devices.

•Worked with NineOldAndroids library to include animation rotations, translations, alpha variations, and scaling.

•Integrated app with Facebook API.

•Ensured continuous integration using Hudson.

•Created custom animations and transitions to improve the user experience.

•Used multiple ORMs such as ORMLite and GreenDAO to set up databases and cache information to be used in no-network environments.

•Integrated Java Guava Libraries for string processing, concurrency libraries, and I/O functions.

•Tweaked the application for better performance using Dynamic Fragments.

•Created and updated technical documentation using Confluence.

•Implemented Parcelable to the classes for easier bundle transportation.

EDUCATION

UNIVERSIDAD DE ANTIOQUIA – BACHELOR OF SCIENCE IN ELECTRONIC ENGINEERING



Contact this candidate