- 6 years experience developing Android mobile apps.
- 4 apps published to Google Play Store.
- Experienced developing Android/Mobile apps on MVVM and MVP architectural models.
- Experienced with design patterns Abstract Factory, Fa ade, Builder and Singleton.
- Combined hard technical skills in Android development/deployment with soft skills to serve as valuable Agile/Scrum team member on mobile projects covering multiple industries.
- Proven effective working on Agile teams applying Scrum project execution principles to complete software development lifecycle (SDLC) projects involving the design, development, testing, and deployment of Android mobile apps to the Google Play Store.
- Comfortable contributing to story estimation, Sprint Planning meetings, Sprint Retrospectives, and Backlog grooming and Daily Stand - ups.
- Communicate effectively with stakeholders to manage expectations, gather business requirements, and translate them into technical specification documents and solutions.
- Knowledgeable and skilled utilizing Test Driven Development (TDD) and Continuous Integration for test automation to ensure high quality and easy-to-deploy app updates.
- Skilled with testing/debugging tools such as JUnit, Leak Canary, Espresso, and Dalvik Debug Monitor Server (DDMS).
- Experienced consuming backend RESTful web services with JSON and XML-based responses.
- Skilled integrating Android back-end services using RxJava, Retrofit, and Kotlin Coroutines.
- Comfortable with source control software programs such as GIT, GitHub, GitLab, BitBucket, etc.
- Experienced with Android Layouts and using ConstraintLayout to build complex UI/UX.
- Experienced implementing application data persistence using SQLite, SharedPreferences, and External and Internal storage.
- Demonstrated skill applying dependency injection using tools such as Koin and Dagger2.
- Demonstrated sill applying threading with tools such as RxJava, RxAndroid, Kotlin Coroutines, Intent Services, Handler, AsyncTask, Threads, and Loopers and Loaders.
- Hands-on applying web services, including JSON, XML, GSON, and CharlesProxy.
Development IDEs: Android Studio, Visual Studio, Visual Studio Code, SSMS, Eclipse, Flutter SDK
UI/UX: Material Design, Material Dialogs, Callig - raphy, ExoPlayer, VideoView, Chromecast, Push Notifications
Threading: RxJava, IntentServices, Handlers, JobScheduler
Dependency Injection: Dagger2, AndroidAnnotations
Debug/Testing/Performance Frame-works: Junit, Espresso, Hugo, Robotium, Mock-ito, LeakCanary, Doze Mode, Android P, Timber, Bluetooth BLE, Charles Proxy
Version Control: Git, GitHub, GitLab, TFS
Project Management: JIRA, Sketch, MPAndroidChart
Software Development Methodologies: Agile, Scrum, Waterfall
Architecture Design Patterns: MVVM, MVP, MVC
Design Patterns and Practices: Adapter, Factory, Builder, Singleton, Extension Function, Data Class, Handler, Parceler
Databases/Languages: SQLite, Room Database, Firebase Realtime DB, MySQL, MS SQL, GraphQL
Networking/Web Services: REST, JSON, Retrofit, GSON, OkHTTP, WebA-PI2, Volley
CI/CD: Circle-CI, Jenkins, NDK, Firebase
Events: EventBus, Otto
Security: AES/Cipher, Spongy Castle
Messaging: Urban Airship, Google Cloud Messaging
Payment Processing: BrainTree SDK
Analytics: Crashlytics, Google Analytics, Mixpanel
Other: JetPack, IoT, Services, Zeplin
Confidential, Plano, TX
Sr. Android Developer
- Creating new app for the delivery drivers to process tickets using mobile devices rather than paper receipts.
- Participating in and contributing to Agile meetings (e.g., Scrum, Sprint, etc.) with multiple cross - functional teams for getting specific customs SDK definitions.
- Using Android Studio with Kotlin codebase following MVVM architecture.
- Developing new Kotlin modules and migrating existing code into Kotlin.
- Working on ManageEngine MDM to manage basic Android device management capabilities such as automated enrolment, app management and proactive security measures.
- Refactoring callbacks to suspendible Coroutines and performing network requests, JSON parsing, reading from a database.
- Writing code and designing modules, components, and custom views in MVVM architecture for unit testability and excellent view-agnosticism.
- Implementing Firebase Cloud Messaging to Push updates to the device and register devices to receive messages from FCM.
- Using and sending tracking data from FusedLocationProvider to the server to track the device during deliveries.
- Troubleshooting production problems arising from API errors and Low Connectivity and refactoring code to address those problems.
- Implementing concurrency design pattern using Kotlin coroutines to simplify code that executes asynchronously.
- Working on service layer that interfaces with CloudOps and Data Team and sanitizing API calls.
- Using Retrofit2, OkHTTP networking libraries to retrieve information relating to status and deliveries.
- Using an Offline-First model using Room Databases and migrate from SQLite implementation.
- Integrating Lottie animation library to parse Adobe After Effects animations exported as JSON and rendering them natively.
- Working with business stakeholders to simplify flows for development and working closely with QA to test and validate changes.
- Applying Roboelectric, Mockito, and Espresso for testing.
- Using reactive frameworks such as RxAndroid, RxBluetooth, and RxKotlin.
- Communicating with offshore teams to coordinate work and testing.
Confidential, Elyria, OH
Android Mobile App Developer
- Used Android Studio and Java programming on the Android development team.
- Implemented an MVP UI pattern as the basic layer architecture of the app and transitioned dependency injection from Dagger 1 to Dagger 2.
- Used Singleton, Proxy, Visitor, Decorator, Facade, Builder, Interpreter Design Patterns
- Retrofit used for back - end integrations.
- Implemented Bluetooth Kit and Bluetooth Low Energy (BLW) to manage the connection with the device.
- Managed code review sessions to always have high quality (reusable, simple, documented) code, and Unit testing in Junit and automated testing with Robolectric.
- Displayed images using the Picasso library.
- Participated in all stages of software development including defining product vision, gathering requirements, software system design, coding, testing, release, and support.
- Implemented RESTful call to receive JSON based response and parsed with GSON to display data.
- Transitioned threading from NineOldAndroids to RxJava and Retrofit with loopers, loaders to manage activities and fragments.
- Configured Git and Bitbucket servers as the software version control tools.
- Used GitLab for continuous integration and tested using tools and device.
- Avoid memory leaks and ANR using Leak Canary and memory monitor tools and used Crashlytics for troubleshooting.
- Turned technical specs into Android multi-panel Activities created using Fragments for better form factor adaptability.
Confidential, San Francisco, CA
- Developed the application in Android Studio using MVP architecture pattern.
- Worked on an Agile Dev Team that applied Scrums and Sprints.
- Collaborated with the product team to identify, prioritize, and document detailed product requirements.
- Managed competing priorities in a complex environment and maintained high productivity.
- Effectively communicated coding solutions and articulated the reasons for decisions.
- Applied real - world OO design experience and knowledge of design patterns, and conveyed design information using tools UML and BPMN.
- Programmed the application in Java.
- Implemented Material design feature of RecyclerViews, Toolbars and CardViews.
- Added support for Chromecast as the remote control for the app.
- Created a web application used to establish a responsive design and look-and-feel with the app.
- Used Google AdMob to maximize the monetization.
- Mentored three junior developers about best practices and trends in UI/UX on Android.
- Actively participated on the RESTFul API definition following best practices.
- Used HTTP rest calls for better performance using different threads.
- Included Facebook SDK for app events, login, like and app links features within the app.
- Added support for Google Maps to render the location of bank branches.
- Coded and later created a template for proper use of AsyncTasks ensuring the tasks did not become orphaned if the orientation of the device changed.
- Added Push Notification features with Urban Airship.
- Used NewRelic to optimize and improve the performance.
- Set up proper interactions of the front-end design and implementation with backend servers.
- Introduced Navigation Drawer and Tabs, custom and compound views to the project.
- Implemented different user interface components such as ListView, WebView, ImageView, TextView to display the data for the application.
- Developed a registration process with password recovery functionality.
- Used Espresso and Mockito for testing the UI and app functionalities.
Confidential, New York, NY
Android Mobile App Developer
- Worked on an Agile team and contributed to Scrum meetings.
- Incorporated the communication between the application and the other Android applications backed by the customer.
- Created Widgets to help customers manage the launcher.
- Constructed the user interface by using list view, custom view, compound view and various layouts.
- Utilized Dalvik Debug Monitor Server (DDMS) for debugging and testing.
- Used the Fragment capabilities to handle multiport views and different screen size devices.
- Tested the user interface implementing Espresso.
- Implemented Material design feature of RecyclerView, toolbar, CardView
- Tested the application on various devices and emulators to determine compatibility.
- Implemented full social network integration with Facebook, Twitter, and YouTube SDKs.
- Debugged and tested the application using Robolectric
- Including support for backward animation using NineOldAndroids library.
- Created multiple Content Providers with a native approach to handling UI asynchronous updates.
- Enhance the User Experience with the implementation of the Tab Navigation.
- Implemented Dagger to work with a Dependency Injection environment to help with the unit testing.