Programming languages
Java, Kotlin, JavaScript, C, C++, C#, HTML5
IDE
Android studio, Eclipse, Visual Studio, NotePad++
RESTful Web services
Retrofit, RxJava, Volley, OkHTTP, REST, SOAP, JSON, GSON, XML
Threading
Event Bus, Intent Services,
Handlers, Loopers, Loaders
AsyncTask, Kotlin Coroutines
Architecture Patterns
MVC, MVP, MVVM
Design Patterns
Singleton, Builder, Decorator, Dependency Injection, Façade, visitor, Proxy, Mediator, Interpreter, Command
Project Tools
JIRA, Kanban, Confluence, Trello, Slack
Repository/Versioning
Git, GitHub, GitLab, Bit Bucket, sourceTree
Continuous Integration
Jenkins, Travis, Hudson
Database
SQLite, Firebase, Realm, MongoDB
JetPack Components
Room, VIewModels, LiveData, Download Manager
Leadership
Work closely with Project Manager, Product Manager, and Stakeholders to ensure the app mirrors the vision, successfully driving corporate strategy.
Work with cross-functional teams such as networking, Front-End Design and Stakeholder to ensure excellence in app performance and user experience.
Mentor developers on best practices, Material Design and in code Reviews to ensure high quality standards.
Ensure an efficient development process though use of development methods, standards and workflow, keeping sprints and projects on-track.
Programming Languages
Skilled coding new Android mobile apps from scratch as well as refactoring, transitioning and revising existing apps.
Demonstrated skill in Android mobile app IDE coding in Java and Kotlin.
Experience converting Java arrays to mutable and immutable lists to reduce code overhead and provide consistency.
Experience refactoring Java code to Kotlin, eliminating null pointer exceptions.
Experience implementing new features in Kotlin.
Back-End Communication
Expérience applying Retrofit and GSON to retrieve information from an internally programmed API and make the conversion between the JSON and POJOs using Gson Covertor with Retrofit.
Used RxJava to handle the responses from the web services.
Used sync adapters to load changed data from server and to send modified data to server from app.
Worked with GSON and Jackson library to parse JSON files on the Android project.
Used intent services and Retrofit with OkHTTP3 to handle calls and processed JSON objects with GSON converter.
UI/UX Front-End Development
Generated a Material Design ready code-base including views in the design support library.
Use of a variety of views: CardViews, RecyclerViews,
Implementation of Snackbars, Floating Action Buttons, Custom views, Navigation Drawer
Implemented LRU Cache to increase the performance of ListView scrolling.
Developing UI for both landscape and portrait Screen orientations using qualifiers.
Frameworks and Libraries
Use of Android JetPack for Data Binding to communicate between ViewModels and UI components.
Implemented JetPack LiveData to display most current data locally available.
Simplified database back-end using JetPack Room Database.
Use of Reactive-X RxJava and RxAndroid.
UX Design
Google Material Design, TextViews, WebViews, Navigation Drawer, Floating Action Button, Widgets, Compound View, Custom View, RecyclerView, View Pager and Tab Layout, Fragments
Work Experience
September 2021 – Present
Sr. Android Developer
Footlocker
Manhattan, NY
Mobile App:
Champs Sports:
https://play.google.com/store/apps/details?id=com.champssports.champssports&gl=US
Eastbay: https://play.google.com/store/apps/details?id=com.eastbay.eastbay&gl=US
FootLocker: https://play.google.com/store/apps/details?id=com.footlocker.approved&gl=US
FootLocker Canada:
https://play.google.com/store/apps/details?id=com.footlocker.canada&gl=US
FootLocker Europe:
https://play.google.com/store/apps/details?id=com.footlocker.europe.uk&gl=US
FootLocker: https://play.google.com/store/apps/details?id=com.footlocker.kids&gl=US
(The applications were designed to allow for the browsing and purchase of the products for their respective stores. The user may browse the selection of items, filter by need, such as filtering Men’s wear, or by brands such as Nike or Timberland. Users can also, make reservations for new products online, before they reach the shelves. Another option was that the users could chose to have the purchased item sent to them from the store, purchase the item in the app and pick it up in a store of their choice. One challenge was that I entered the project just as they were in the large undertaking of adding the Release Calendar feature while overhauling the UI for the Fragments into View Binding. Another challenge adapting to the large number of modules the app used due to its MVP design pattern)
Technology Used: Android Studio, Jira, Firebase, SCRUM, AppCenter, MVP, Model, Presenter, TextView, EditView, Bottom Sheet Navigation, Retrofit2, Activity, Fragment, RecyclerViewAdapter, Airship, Card.IO, Pay.Cards, Flipper, Timber, Urban Airship, Firebase Analytics, ViewBinding, Google Pay, Callback, Push Notifications, Microsoft Teams, GlobalProtect VPN, GitHub and Maven
Project Synopsis: Project works consisted of fixing issues in the current version of the applications, overhauling the UI existing features of the applications into newer forms for better customer experience and adding all new features into the applications.
Used MVP design pattern for the application, ViewBinding to create UI in Kotlin and Fragments for all views with Activities used as a base
Base classes were used to house apply standard functions to all Activities, Fragments, Presenters, etc.
Application data was received from an API and parcelized with model classes
Worked with Jira for work management
Used GitHub as a Repository for the code
Peer reviews were required to merge code into the main repository
Agile development using SCRUM with daily meetings in two-week sprints
Performed as a Feature Champion for the Online Launch Reservation story
Application was designed using the MVP design pattern
Retrofit was used to obtain and save the data for the application
Used Kotlin Analytics for tracing using Firebase
Team consisted of an average of 7 developers with 2 Senior developers
Worked with and offshore team for QA
Held bi-weekly meetings for various purposes, such as backlog refinement and estimation, future sprint planning or retrospective of the previous sprint
Weekly meetings held on Fridays for the Android team to discuss anything they would need or had to be informed about
January 2019 – August 2021
Sr. Android Developer
JPay
Miramar, FL
Apps: Lantern App / KA Lite / Ashland (private distribution only)
Manage the development of Android educational apps for prison inmates, leveraging prison-hosted Windows Kiosks, Wi-Fi and RESTful API calls/consumption. Given the nature of the app, security is essential. Work on many tasks involving encrypting downloads and implementing file signature to files to mitigate tampering.
Agile framework with daily SCRUMS.
Worked on a release base deadline.
Worked on JPay’s Lantern, Ashland app and KA Lite (Khan Academy).
Introduced elements of Kotlin Flow such as coroutines to interact with the database and networking operations in repository layer in Clean code architecture.
Used Kotlin coroutines and RxJava for network communication with suspend functions.
Included Wi-Fi functionality to Lantern App.
Handled large amount of sequential file downloads through a local download manager.
Interacted with exposed Canvas Student APIs.
Updated UI and UX with help of a designer.
Implemented themes and styles in alignment with Android Material design standards.
Created new features from scratch using Android Jetpack components.
Worked closely with QA to ensure product quality.
Refactored old code to decouple views from business logic using MVVM.
Performed pair programming with tech lead to debug issues.
Used postman to test calls prior to implementing them in Android.
Used Collaborator and Bitbucket to perform and assign code reviews.
Used Git for source control.
Worked on a custom android ROM with security restrictions.
Improved background processing time by implementing concurrent threading libraries such has RXJava.
Implemented solution for large downloads via a URL through the Retrofit library.
Implemented file signature using a platform service to ensure file download authenticity and integrity.
Worked on a script that changed the file permissions of a folder’s content periodically in the tablet’s internal memory to allow for open accessibility amongst apps.
February 2017 – January 2019
Senior Android Developer
Forever 21
Los Angeles, CA
https://play.google.com/store/apps/details?id=com.rarewire.forever21&hl=en
Forever 21 – in your pocket and at your fingertips. Use the app for receiving APP EXCLUSIVE PROMOTIONS - Get exclusive access to sales and discounts first! Shop. Explore. Browse. Swipe to view more images and buy on the go!
Worked in different phases of the project cycle such as design, development, and testing.
Developed Android Activities, fragments and display modes.
Involved in the software development processes for this Android application development projects including requirement specification, design, implementation, testing and maintenance.
Worked on UI and base Android framework issues.
Worked with RxJava using observable and subscriber classes.
Implemented fragments to make the app usable on both smartphones and tablets.
Developed Android applications using many components including Activities, Fragments, Broadcast Receivers and Services in Android.
Refactored Java code to Kotlin for existing Android application while using Kotlin to implement new features.
Used AsyncTask for multithreading on this mobile application.
Worked with other Android developers and assisted with code reviews and code refactoring.
Worked with Reactive-X in the form of RxJava and RxAndroid on Android applications.
Managed the implementation of dependency injection in Android with Dagger2 to speed up unit testing process.
Implemented multiple test cases using Espresso rules, view matchers, and view actions.
Performed simulated design patterns in Android to test and develop applications.
Managed continuous integration using Git and remote repositories on BitBucket.
Tracked issues in JIRA and assigned them to other developers.
Utilized multithreading and asynchronous tasks to manage concurrent communication while maintaining performance.
October 2014 – February 2017
Android Developer
OutDoors GPS - Offline OS Maps
San Francisco, CA
https://play.google.com/store/apps/details?id=com.roadtour.outdoorsgb
OutDoors GPS takes outdoors navigation to new heights:
- Hikers: Find or plan a route by choosing from over 200,000 free routes. Then
navigate using the built-in compass & simple direction view. Track your journey and
finally save and share favorite hidden by creating a ‘My Places” list
• Runners: Add variety to your running routes by searching our database of local
routes based on distance and elevation. Track your stats & save your favorite places
for great views, stretching, resting and water fountains
• Cyclists: Find a route that matches your level of intensity by searching entries by
distance and elevation. Or craft your own perfect biking path with the route builder.
Use the hands-free mode while biking and track your route statistics
• Photographers: Find beautiful landscapes by searching through over 250,000 points
of interests. Find or plan your route to get there by using distance markers and
confidently explore offline with Satellite, Terrain, Hybrid, and Road maps
Implemented several design patterns such as MVP, Singleton, Observer, Proxy, and Visitor in Android.
Collaborated with back-end development team to map the web services for the Android app integration.
Participated in defining application’s styles and themes, material themes and various resources.
Coded and later created a template for proper use of RxJava ensuring the tasks do not become orphaned if the orientation of the device changes using multiple operators.
Devised scalability, performance, and reliability of Android app development.
Implemented Android app user interface (UI) by using Custom Views, ListView, Relative Layout, Linear Layout, and Table Layout.
Applied fragments to minimize the activity count and simplify the navigation on the Android app.
Contributed to architecture and design of the Android app.
Performed extensive application testing with the Robolectric framework, and with JUnit to test functionality of the Android application.
Worked with JUnit to complete all test cases of the Android app.
Used Espresso & Mockito for testing Android app user interface (UI) and app functionalities.
Post Get/Post/Header HTTP asynchronous request to the backend API using Retrofit
Organized collaboration between onsite and offshore developers.
Monitored and participated in workflow tracking with JIRA.
Implemented Picasso to download the image from web services.
Experience in architecture and development of stable Android mobile applications.
Replaced the Google Maps API with Google Maps API V 3.15.
January 2013 – October 2014
Android Application Engineer
FXCM, Inc.
New York, NY
Worked on Forex Trading application in Android which allows users to manage their trading account, research market and stocks and to buy and sell stocks using the Android mobile device.
Forex Trading:
https://play.google.com/store/apps/details?id=air.com.fxcm.TSmobilePhone&hl=en_US
Worked on an Agile scrum software development team.
Worked with project manager and stakeholders to gather requirements and on sprint planning and sprint backlog.
Used Eclipse as the primary IDE since it includes all the tools needed to develop, test and deploy the Android application.
Tested using Espresso and Mockito for testing the UI and App functionalities.
Used Espresso for instrumentation testing using View Matchers, Matchers and Actions.
Used Intents and Intent Filters to initiate activities and pass information between Activities and Fragments.
Used GitHub private repositories with standard Workflows as a Version Control Software.
Used the JIRA bug tracking tool for quality control.
Used the SQLiteOpenHelper to connect with the local database and perform CRUD operations.
Applied Support Libraries from different API levels for backward compatibility.
Used the View Pager Indicator to provide feedback to the user about the background processing status.
Used Volley and GSON to retrieve information from an internally programmed API and make the conversion between the JSON and POJOs.
Worked with Android notifications to send the reminders to the user interface.
Worked with Content Providers to connect with and consume Android Contacts.
Worked with Dagger 1 for dependency injection to develop clean, maintainable code.
Worked with GSON and Jackson library to parse JSON files on the Android project.
Worked with JUnit to complete all test cases.
Education
Bachelor of Science in Computer Engineering – university of Puerto Rico