Profile Summary
**+ years developing Android apps.
* **** ********* ** **** Store.
Adept with design patterns: MVP, MVVM, MVC, Singleton, Adapter, Command, Observer, Builder and more.
Strong knowledge of Android SDK, different versions of Android, and how to deal with different screen sizes.
Familiarity with RESTful APIs to connect applications to back-end.
Strong knowledge of UI design principles, patterns, and best practices.
Knowledge of the open-source Android ecosystem and the libraries available for common tasks.
Familiarity with cloud message APIs and push notifications.
Security conscious, knowledgeable of best practices building secure applications.
On-device management of USB / NFC / Bluetooth / WiFi management.
Ability to work in cross platform environments (Windows, iOS, Android).
Experience with code profiling, diagnostics, troubleshooting and performance optimization.
Knowledge of Chromecast, video codecs, or other related technologies
Experience working with Git/Gitflow.
Experience with mobile analytics tools (e.g., Crashlytics, Mixpanel, Splunk analytics).
Highly skilled implementing Material Design and using the support libraries for backwards compatibility.
Well versed in Test Driven Development, JUnit Test Cases, Performance Optimization and Integration Testing.
Hands on experience migrating old Android Media player to the ExoPlayer streaming library to support dynamic adaptive streaming.
Maintain high unit test coverage and continuous integration principles.
Experience with continuous integration tools like Jenkins and Travis CI, and automated testing frameworks such as Espresso, SonarQube, Robotium, etc.
Understanding of Activities, Fragments, Custom Views, Services, Volley, Retrofit, Support library, and 3rd-party libraries in Android.
Cultivate an environment of excellence, through code design, code reviews.
Work with other departments to achieve cross-functional goals to satisfy customer expectations.
Technical Skills
Programming Languages:
Java, Kotlin
IDEs:
Eclipse, IntelliJ, Android Studio
Databases:
Oracle, SQL Server, MySQL, SQLite
UI/UX:
Android CustomViews, Material Design, RecyclerViews, Animations
Multithreading:
IntentService, Handler Threads, RxJava, Kotlin Coroutines, WorkManager
Version Control:
GitLab, Git, GitHub, SourceTree, Command Line
Dependency Injection:
Dagger, Butter Knife, Hilt, Koin
Continuous Integration:
Jenkins Bitrise Travis, Hudson
Architectures:
MVC, MVP, MVVM
Design Patterns:
Singleton, Observer, Façade, Builder, Decorator
Methodologies:
Agile, Waterfall, TDD, Kanban
Push Notifications:
Urban Airship/Firebase Cloud Messaging (FCM), Google Cloud Messaging (GCM)
Testing and Troubleshooting:
Leak Canary, MockK, Mockito, Junit, Espresso, SonarQube, Android profiler
Misc:
JobScheduler, EventBus, Schematic, Location Services, Bluetooth Low Energy (BLE)
Web Services:
RESTful, SOAP, JSON, GSON, Retrofit 2, OKHTTP
Project Work Experience
Senior Android Developer / Taco Bell, Irvine, CA / July 2020 to Current
https://play.google.com/store/apps/details?id=com.tacobell.ordering&hl=en_CA&gl=US
With the Taco Bell App, you can order and pay ahead, skip our line, get access to new deals and offers, and more.
Worked in Android Studio with coding in Kotlin.
Developed/programmed modules in Kotlin using MVVM app architecture for ease of maintainability and extensibility, as well as improved quality testing.
Designed/developed app using API/SDK and business embedded logic to achieve mobile app’s desired functionality.
Designed/developed app using API/SDK and business embedded logic to achieve mobile app’s desired functionality.
Used Data Binding for decoupled UI updating.
Integrated Hilt dependency injection.
Worked closely with UI/UX designers and interacted with stakeholders, product managers and business units to gather requirements and ensure final product matched needs.
Implemented Google Maps for location search with the Google Location APIs.
Implemented Android Bluetooth and Location Connectivity components.
Connected the app to Twitter, Instagram, and Facebook, by integrating their SDKs.
Migrated to Jetpack Compose by adding compose to an existing screen built using Android views and managed state in composable functions.
Created RecyclerViews and their respective adapters to display all list information per UI/UX design requirements.
Utilized fragments to create a dynamic and upscale UI for the user.
Utilized LeakCanary to detect and remove all memory leaks.
Fixed issues for security scans such as SSL, encryption, loopholes and profiled the application using the APK analyzer.
Created and ran unit and integration tests with MockK, Espresso, Mockito, and Roboelectric.
Configured private GitHub as a code repository for the Android development team.
Configured the continuous integration process with a Jenkins instance hosted on a private server.
Senior Android App Developer / Scripps Network LLC, New York, NY / January 2019 to July 2020
https://play.google.com/store/apps/details?id=com.hgtv.watcher&hl=en
Watch HGTV keeps users connected with favorite HGTV shows live and on demand. Users can watch live streaming TV or HGTV programming. Updated daily with full TV episodes, clips, and HGTV.com original content.
Worked with the Mobile Product Management team to define the new product features.
Developed and tested the app using Android Studio.
Worked with ExoPlayer media processing library to enhance the performance of the app while streaming media.
Used MVVM architecture for new modules and migrated old modules from MVP.
Migrated code from Java to Kotlin.
Organized developers and assigned milestones and track project development.
Built the application to support multiple screen sizes, phones, tablets and TV Sticks.
Implemented ExoPlayer in the app for the video streaming of TV shows.
Ensured backward compatibility with the latest compatibility libraries available.
Incorporated push notification with Mixpanel for sending messages to the users.
Used Kotlin Coroutines for asynchronous calls and other features of Kotlin like null safety, smart cast etc.
Rewired the app to handle the new Android 9 background services changes and permissions changes.
Reskinned the entire app implementing the Material Design specification.
Integrated multimedia material and live streaming video, decoding, and playback.
Handled web services calls for information and content data retrieval with Retrofit.
Added a user configuration setting to persist and switch the network usage.
Improved the bit rate over network changes with the Connectivity Manager.
Added support for Chromecast for sending video and music to the TV.
Improved the Video browser and audio player performance multithreading.
Improved the Playlist manager by replacing the old ListViews by RecyclerView.
Conducted project plan reviews and resolved conflicts between times and tasks.
Implemented support for Android Wear as media remote control for the app.
Used Jira for defect tracking and, project planning, and task assignment.
Worked with Dagger 2 for dependency injection to develop clean, maintainable code.
Participated on the set-up procedure for the Hudson server for continuous integration.
Integrated Localytics for app statistics and mobile analytics.
Android App Developer / Rue La La, Boston, MAY / May 2017 to January 2019
https://play.google.com/store/apps/details?id=com.retailconvergence.ruelala
Shopping your faves just got faster and easier. Not a Rue La La Member? No problem. It’s free and you can join quickly right from our award-winning app. With exclusive sales, delivery alerts, order tracking, and Boutique reminders, you’ll never miss a stylish beat.
Used Android Studio to develop the screens for the application using MVP architecture.
Supported multiple screen Android devices using Fragments and width-aware layouts.
Refactored Android code base from Java code to Kotlin using Android Studio.
Added Android Jetpack components (LiveData, ViewModel, Room).
Created custom List Views, custom Layouts, custom Action bars as per the mockups provided.
Created new features programmatically in Android Studio using Kotlin.
Implemented the user interface by using Compound View, Custom View, RecyclerView, View Pager and Tab Layout.
Improved the layout rendering by saving and optimizing the view hierarchy in all the resources.
Created supporting Home screen widgets to display specials based on user preferences.
Used Glide libraries for image handling.
Used Retrofit in RESTful web service consumption with RxJava for multithreading.
Created animations for the Android apps (tween animations, view animations, frame animations)
Implemented Firebase using Firebase Cloud Messaging for user notifications.
Used Crashlytics and Leak Canary in optimizing and debugging.
Integrated payment processing using proprietary APIs.
Used SharedPreferences to provide consistency with local key-value pairs.
Used GitHub and Git for version control, merges and commits.
BitRise.io employed as continuous integration tool.
Integrated location-based services using Google Maps API to display locations of the nearest stores.
Applied Android Data Binding and Dependency Injection.
Android Mobile App Developer / Mindframe Design, LLC, Boston, MA / November 2015 to May 2017
https://play.google.com/store/apps/details?id=com.mindframedesign.cheftap.beta
ChefTap's recipe clipper clips recipes from any website and saves them in your own permanent archive so you'll never lose another recipe again.
Worked on large complex existing codebase in latest Android SDK, Android Studio, and APIs using TDD, MVP, and dependency injection design concepts.
Integrated new features using Kotlin into an existing Java code base.
Replaced Bitmaps implementation code with Glide image loading library for animated GIF support and handled image loading/caching.
Implemented Loaders and AsyncTaskLoaders to perform asynchronous data loading in the custom List View for grocery lists and recipe scaling.
Integrated push notifications with analytics and deep linking using UrbanAirship.
Utilized Leak Canary for memory leak detection.
Programmed sorting algorithm to sort recipes by favorites, new recipes, recently prepared, recently viewed or alphabetically in a list view.
Synchronized data from backend locally to SQLIte database and external storage in a file to save up to 100 recipes.
Utilized WebViews for loading external websites and automatically import the entire recipe box from allrecipes.com or Epicurious in the app.
Incorporated Google Analytics to create Content reports to focus future development efforts.
Imported device specific content-providers and build own custom content providers based on client requirements.
Created several compound views to match the UI provided by the UI team using Zeplin.
Utilized Git version control tool as the source control management system.
Sped up the build process with continuous integration tools CircleCi and Travis.
Android App Developer / TD AmeriTrade, Omaha, NE / April 2014 to November 2015
https://play.google.com/store/apps/details?id=com.tdameritrade.mobile3&hl=en_CA&gl=US
On the move? So is the market. Stay on top of it with the TD Ameritrade Mobile app. Monitor the markets and your positions, deposit funds with mobile check deposit, catch up on the latest news and research, or browse educational content—all from your mobile device. Trade with confidence everywhere you go, with the security and precision of your desktop right in the palm of your hand.
Utilized the Android Studio IDE to develop and code the application.
Utilized Android framework, best practices, and design patterns.
Developed rich UI for most of the modules in the application using RecyclerView, ViewPager and Navigation Drawer.
Generated a Material Design ready codebase including views in the design support library: CardViews, RecyclerViews, Snackbars, CoordinatorLayouts, Floating Action Buttons, Custom toolbars, DrawerLayouts.
Used Volley for Android for asynchronous requests to the server.
Used Android notifications to send reminders to the UI.
Ensured backward compatibility with older Android versions. with support libraries.
Worked with the design team and the usability specialist to create a user-friendly interface for the app.
Established Facebook user login authentication available through integration with the Facebook API.
Worked with an internal QA team on system, performance, and acceptance testing.
Applied Dagger 2 for dependency injection to develop clean, maintainable code.
Used Picasso library for image downloading, caching. and rendering to UI.
Utilized Continuous integration and automated testing throughout the mobile app development process.
Utilized LRU Cache to increase the performance of ListView scrolling.
Migrated from AsyncTasks to RxJava to run process in background.
Parsed JSON files on this Android project with GSON and Jackson library.
Employed TDD/BDD and agile methodologies in Android app development.
Wrote test cases for functional and unit testing for the mobile apps testing team.
Worked with the Mobile Product Management team to define the new product features in the Android app.
Used JIRA for new requirements, issues, bug tracking, and project planning.
Android Developer / Redfin, Seattle, WA / April 2013 to April 2014
https://play.google.com/store/apps/details?id=com.redfin.android
Download the Redfin App to get updated MLS real estate listings every 5 minutes. Find the latest homes, condos, and townhouses for sale and for rent in your area. Browse photos, see up-to-date home details, and instantly book a free tour with a Redfin Agent to see homes for sale even faster.
Created frameworks and automation in the development process to maximize build efficiency and secure solid code.
Utilized Facebook Stetho, Charles Proxy API, Memory profiler, HierarchyViewer and Android Profiler to identify issues and enhance the performance.
Configured MixPanel API to send instant notifications when a new home hits the market and push notifications for any house, condo, or townhome that meets search criteria.
Created bound service to send requests, receive results, and even do so across processes with interprocess communication (IPC).
Created a custom transition animation and apply one or more animation effects to all of the views in a view hierarchy.
Coded the algorithm necessary to properly structure the query for the request needed to implement the “Filtered Search” feature.
Migrated from AsyncTasks and IntentServices based components to a reactive paradigm with RxJava concurrency modelling.
Included Android-Job utility library to run jobs delayed in the background by creating JobRequest with the corresponding builder class and schedule this request with the JobManager.
Communicated with Calendar AP and content providers I to read calendar events plus confidential information, read contacts, read web bookmarks and history.
Refined, improved performance of the app using SonarCube, Network profiler, CPU and battery profilers. Developed update patches, modules and components to mitigate security risks.
Worked with other developers, designers and product/business managers to develop new features consistent with product roadmap.
Android Developer / Esurance, San Francisco, CA / February 2012 to April 2013
https://play.google.com/store/apps/details?id=com.esurance.app&hl=en_IN
Esurance Mobile helps you check your coverages; add a new car or edit an existing one; file a new claim — or save accident info, including photos, for later; submit damage photos for an appraisal; pay your bill; change your policy payment date’ and more.
Documented all changes made to the app, improvements, fixes and new features, backend and front-end development.
Debugged and tested the application using Robolectric.
Worked with asynchronous requests to the server with Volley library.
Utilized Eclipse IDE to implement the application in Java.
Utilized advanced functions of the Java software development kit (SDK) in order to optimize the flexibility of apps to different mobile devices.
Developed a Flexible UI building framework using Android Fragment.
Added the use of Google Wallet payments to buy products and unlock advanced features.
Defined, documented, and implemented comprehensive unit and functional tests for each one of the app components.
Managed tasks within Agile framework, cleared Sprinted tasks, and controlled JIRA workflows.
Incorporated ZBar barcode scanner library for reading bar codes from various sources, such as video streams, image files and raw intensity sensors save accident info, including photos in ORMLite local database.
Submitted damage photos for an appraisal using IntentServices and standard HTTP classes.
Worked with NineOldAndroids library for include animating rotation, translation, alpha and scale.
Replaced handlers with AsyncTaskLoaders to parse JSON data from in-house API.
Managed ongoing maintenance to fix bugs, add features and functionalities, and improve User Interface.
Education
Bachelor of Science – Interdisciplinary studies Arizona State University