Android Developer (Senior Level)
9+ years in Android development.
* **** ********* ** **** Store.
Use of OOP principles, and mobile-targeted architectural patterns like MVC, MVP, and MVVM.
Practical implementation of Android Life Cycle, Fragments, Intents, and threads on Android, binding services, implicit and explicit Intents, background processes, sync adapters, activity, activities for Result, WebView, ImageView, TextView, RecyclerView, ListView, and Object-Oriented design and programming, while following Material Design guidelines, and coding best practices.
Experience with third-party APIs and web services like Volley, Picasso, Facebook, Twitter, YouTube Player and Surface View, and adapts to new technologies, such as Smart Watches, Chromecast, and Smart TV devices.
Worked in multicultural Agile/Scrum development environments on Android development teams with both local and remote team members.
Configured and initialized multiple cloud integration services including Parse, Firebase and Google Cloud Messaging.
Hands-on involvement in all phases of the software-development cycle, including requirement gathering, design, analysis, coding, testing and code review.
Strives for high unit test coverage and applies continuous integration methodologies.
Well versed in automated testing frameworks such as JUnit, Mockito, and Espresso.
Extensive experience in debugging and profiling Android applications.
Work with project managers to convert business requirements to tasks.
Solve problems creatively and clearly articulate ideas, problems, and solutions with the team.
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/Runnables, 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.
Mint/ Mountain View, CA / 11/2019 to Now
Senior Android App Engineer
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 reviews strategies.
•Implemented CustomAttribute, CustomView, reused existing binding adapters, and reduced boilerplate code with MVVM databinding architecture.
•Worked within a 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, 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 utilities 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
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 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 app from malicious traffic and assess 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 micro services to create full E2E feature for setting savings targets, cashback, reset PIN and transfer money with a single swipe.
•Created a minimal viable product demonstrating Bitcoin feature using Bitcoin Price Index (BPI) API and Litecoin API to allow to view 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-F.
•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 unit from its dependencies.
Smart Receipts LLC/ New York, NY / 08/2016 to 02/2018
Android Application Developer
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 device 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 backwards-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 buy one-time products, query for in-app product details, and test acknowledging purchase 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 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 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
Save time with The Home Depot app. Shop over one million products and find the info you need most.
•Refactored MVC to MVP for 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 runnables.
•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 Intents.
•Set up Runtime Permissions based off 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 Fused Location Framework.
•Debugged Network calls using Charles Proxy.
Coca Cola / Atlanta, GA / 10/2012 to 01/2015
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 geo-fencing 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.
UNIVERSIDAD DE ANTIOQUIA – BACHELOR OF SCIENCE IN ELECTRONIC ENGINEERING