Gmail: ***********@*****.*** Phone: 508-***-****
PROFILE SUMMARY
20+ overall years' experience In software/IT and Android development.
13+ years focused on Android mobile application development projects.
7 Android apps published to Google Play Store. 1 app produced for in-house corporate use.
Professional experience includes Android apps using Kotlin and/or Java supported by RESTful services.
Work with ad hoc Android development teams to design and develop apps using API/SDK and business embedded logic to achieve mobile app’s desired functionality.
Experience with Android JetPack components such as Room, LiveView and LiveData.
Highly proficient in system analysis, design, development, and Android debugging and testing.
Able to adopt new Android technologies quickly (i.e., recent third-party Android libraries devices).
Design pattern enthusiast: MVC, MVP, MCCM, Singleton, Observer, Abstract Factory, Dependency Injection, Visitor, Proxy, Decorator, Integrator, Command, Builder.
Wrote detailed technical documentation per each stage of the Android development cycle.
Exceptional Programming Skills in Kotlin, JAVA, JDK, JRE, C#.NET, HTML, CSS, JavaScript.
Software development, turning ideas into code with Java and Kotlin to effectively use each language to its advantage.
Experience in cross-platform mobile programming with Xamarin.
Ability to understand an Android solution to assess its alignment with business needs.
Full stack developer skilled in the business logic (back end) and the user interface (front end).
Android multi-device UI/UX developer able to work on Phones, Tablets, TV Sticks and Smartwatches.
Skilled with custom controls, custom and compound views to match various Android UI/UX designs.
Experienced with multiple screen resolutions, formats, and language support in Android development.
Incorporated animations and transitions, shapes, and styles using various Android techniques.
Wireframing implementing various UI/UX design patterns following Material Design guidelines.
Consumption of RESTful web services (REST and SOAP) with or without 3rd-party libraries.
Web service development (REST and SOAP) with Java and Jersey.
Hands-on development with sensors such as NFC, Bluetooth, GPS, Tilt, and Camera.
Interfaced with the most popular RDBMS such as Oracle, SQL Server, MySQL, and DB2.
Business intelligence experience in Web, Desktop, and Mobile technology online and offline.
Deliver projects with tight deadlines: Android customer or enterprise apps.
Highly flexible Android professional able to work well in various team sizes, adapt easily to different environments, and fill various roles.
Comfortable working alone or on an Android team, and able to take charge of projects and lead a team.
Strong negotiation skills with the ability to influence and persuade with the end goal of gaining consensus, motivating Android team members, and aligning stakeholders and team members.
Mentors Android team members, assists in Android code reviews, and provides support to junior Android developers.
Agile SCRUM developer and team lead, having taken the roles of SCRUM master and Product Owner.
Able to efficiently gather and document requirements and implement Android app development.
Experience with the entire Google Play Store app approval process for Android.
Stays current with Android releases and the differences in Android versions.
Leads the design, development, and implementation of complex Android systems.
TECHNICAL SKILLS SUMMARY
Development Environments/Frameworks: Android Studio, Eclipse, NetBeans, Visual Studio, Dagger2.
Architecture and Design Patterns: MVVM (Model, View, ViewModel), REST.
Android Libraires: Android Core Libraries, RxJava, Retrofit, Volley, Glide, Picasso, Fresco, SQLCrypt, SQLCipher, Spongy Castle, Butter Knife, Dagger, Crashlytics, EventBus, Urban Airship, Parse, GSON, Espresso, Universal Image Loader.
Programming Languages: Kotlin, Java, J2EE, C#, XML, HTML, CSS.
Google APIs: Google Maps, Google Places, Google Cloud Messaging, Google Charts, Google Analytics.
Mobile Devices: Phones, Tablets, TV Sticks, Smart Watches, Emulators.
Java Frameworks: Hibernate, Struts, Spring, JSF.
Databases: SQLite, MySQL, Core Data, greenDAO, SQL Server, Oracle.
Web Services: IIS, Glassfish, Apache, Tomcat, JBoss, RESTful.
Business Intelligence: Jasper Reports, Crystal Reports
Team Management Tools: Jira, HP Quality Center, SVN, Git/GitHub, BitBucket, Team Foundation Server, Jenkins, Travis, Hudson, Project.
Documentation Tools: Project, Photo io, Visio, JustInMind.
EXPERIENCE
Android Programmer
Wayfair, Boston, MA July 2021 – Present
https://play.google.com/store/apps/details?id=com.wayfair.wayfair&hl=en_US&gl=US
With the Wayfair app, you’ve got all things home, right at your fingertips. It’s your on-the-go furniture store so you can get home office essentials with a single swipe, plan your home renovation when inspiration strikes, and create a registry that travels with you – all in one app. Download, shop, and save with the largest selection of furniture and decor for every style and budget.
Responsibilities:
Served on an Agile dev team responsible for implementing an app-wide reusable step-up challenge authentication module. The first implementation was to insert the step-up challenge in the log-in flow so that when a password was determined to be compromised an additional authentication method would be presented to the user. The available authentication methods would then email one-time-passcode (OTP) and biometrics/webauthn.
Implemented a new view for users to control their privacy data usage. Also implemented a new view for temp locked users to unlock their account.
Used Android Studio and Kotlin to develop a reusable module.
Made significant use of Android Studio’s debugger to develop a deeper understanding of the large application’s infrastructure.
Used Android Studio’s Profiler for memory leak analyses.
Used Jetpack’s Data Binding Library to bind UI components to data sources.
Developed a feature that used the VIPER architecture.
Used Retrofit and RxJava to make asynchronous REST API calls.
Used Dagger for dependency injection.
Used GSON to convert API responses.
Wrote comprehensive unit tests to assert requirements and functionality.
Used Mockito to develop unit tests.
Closely worked with web developers to implement features.
Worked with Cookie HTTP request headers to properly handle REST API responses.
Used Charles Proxy extensively to troubleshoot REST API calls.
Used RxJava to ensure a proper multi-threaded feature.
Used SOLID design principles to develop a reusable module.
Worked directly with product managers to fine tune requirements.
Implemented designer’s mocks using Wayfair’s custom UI components in XML
Reviewed colleagues PRs.
Worked with JIRA for bug tracking and fixed multiple bugs.
Participated in project scoping/sizing for several projects.
Used fragments and transactions for app navigation.
Submitted a Request For Comments (RFC) for a reusable feature design. Architecture and design patterns were discussed.
Studied web code written in Javascript.
Used Sealed classes to categorize REST API error types.
Implemented Wayfair performance, analytic and logging libraries.
Lead Android Programmer
JPMorgan Chase, Plano, TX May 2020 – July 2021
https://play.google.com/store/apps/details?id=com.chase.sig.android&hl=en_US&gl=US
Bank from almost anywhere with the Chase Mobile® app. Manage your accounts, pay bills, pay people, deposit checks, transfer money, all safely and securely with your device. Whether you are on the go or curled up on the couch, day or night, with the Chase Mobile app, you are in control of your accounts.
Responsibilities:
Programming in Kotlin and/or Java supported by RESTful services.
Applying RxKotlin in conjunction with RxAndroid, RxBinding libraries to make app multithreaded and perform synchronous operations.
Introducing Kotlin extension functions to efficiently re-use existing codes thereby reducing code duplication to its bare minimum.
Implementing Android Architecture lifecycle aware components and use LiveData to build data objects that notify views when the underlying database changes.
Designing/developing apps using API/SDK and business embedded logic to achieve mobile app’s desired functionality.
Applying Android JetPack components such as Room, LiveView and LiveData.
Improving Android Keystore program to store cryptographic keys in a container and protect key material from unauthorized use.
Authenticating users via Fingerprint scan API and implementing the user interface for the fingerprint authentication flow.
Making app adaptable to new Android O for Notification channels and background limits for account Alerts and setting notification preferences to keep tabs on your account activity.
Ensuring Realm data persisted to disk is transparently encrypted and decrypted with standard AES-256 encryption Pair program to work on the feature “Transfer money” between your Chase accounts’ in a TDD way.
Developing a library that abstracts the core banking business rules and defines the business objects to provide interface for GUI. This layer implements core banking RESTful services, and Executors/JobIntentServices for multithreading.
Using RxPS, RxJavaPriorityScheduler, RxAndroid library in Reactive environment to parse multiple streams of data concurrently for Account API, Balances API and Nearest Banks API
Writing testcases for list of acceptance criteria in Business layer using Mockito and on presentation layer using Espresso (UI)
Using CharlesProxy API to determine if SSL Pinning was functioning correctly (as part of Secure Coding Practices) so that man in the middle attacks would not be possible
Senior Android Developer
AT&T, Gaithersburg, MD May 2019 – May 2020
Android for AT&T TV Set Top Box (Custom AOSP and apps were made for Android TV box)
Retrofit, RxAndroid, Dagger, AOSP, Android TV, RecyclerView, Android Source, MVVM, Fragments, LiveTV api, Android SDK, Android Studio, Java, Material Design, Robolectric, HockeyApp, Jira, Scrum, Git.
ATT-AEP is an Android TV-powered box for streaming of its DirecTV service. It runs on Android TV 8.0. The box allows you to watch live TV and on-demand content.
Responsibilities:
Implemented new application features in Kotlin and used the classes in with Java classes.
Managed user preferences by storing them into shared preferences.
Developed new Kotlin modules and migrated existing code into Kotlin.
Implemented OOP throughout the entire development of the project enforcing SOLID design principles.
Configured custom Android system settings using hidden Android APIs.
Implemented Android recommended design/navigation patterns, including fragment layouts for TV using LeanBack.
Applied Android features against custom AOSP.
Included Retrofit and RxAndroid to make asynchronous HTTP requests in an anonymous callback.
Interacted directly with client to clarify requirements and functionality on Sprint planning.
Worked on UX implementation for the several modules per designers’ requirements.
Reviewed code and applied high-quality standards for code integration.
Implemented Espresso library for testing and performance.
Worked with JIRA for user histories and bugs tracking.
Consumed REST APIs from ATT API.
Participated in sprint planning meeting to decide the project component backlog, and the daily SCRUM meetings to update the progress.
Worked through full project life cycle, including analysis, design, development, testing and deployment phases.
Used application components such as Activities, Intent Services, and Broadcast Receivers along with their lifecycles to define the applications overall behavior.
Fixed bugs and improved application performance.
Extensive use of fragments and transactions for app navigation.
Determined architectural and product design details for open-ended tasks or specifications.
Developed broadcast receivers and extracted JSON messages from Messenger API.
Implemented background jobs utilizing a complex set of queries into the parse tables.
Included Retrofit to make asynchronous HTTP requests in an anonymous callback.
Used Google GSON API to parse JSON strings.
Senior Android Developer
Avis Car Rental, Parsippany, NJ June 2018 – May 2019
https://play.google.com/store/apps/details?id=com.avis.androidapp&hl=en
The Avis Car Rental app has you covered. Exclusive to the Avis app, Avis Preferred members gain access to all features as well as exchanging or upgrading your car upon arriving at the rental location, quickly returning your car, locking and unlocking your car and more real-time rental features. Find your nearest Avis Car Rental locations, hours of operation, addresses and phone numbers at any time.
Responsibilities:
Worked on the Android development team with 3 Android developers, front-end designer, QA testers, and worked closely with the Product Manager to ensure the product met requirements and vision.
Developed the Android app in Java using Android Studio.
Applied design patterns such as Singleton, Façade, Abstract Factory.
Transitioned the Android code base from MVP to MVVM architectural pattern to better manage the different functional modules and views.
Managed consumption of RESTful Web Services with Retrofit and RxJava, managing back-end threading and also parsing of JSON objects with Moshi.
Worked in a Test-Driven Development environment using GitHub repository for version control and Bitrise.io for continuous integration.
Implemented improvements in performance and maintainability through Android JetPack components.
Proposed and took personal ownership of converting application architecture using the Model View View Model (MVVM) architectural design pattern.
Implemented Push Notifications through Firebase Cloud Messaging.
Added JetPack Room over SQLite for a more robust database with data persistence.
Added JetPack ViewModel - to manage UI related data in a lifecycle conscious way.
Used JetPack Slices and Fragments in UI elements and composition.
Managed Android background jobs using JetPack WorkManager.
Followed Agile Scrum process with daily Scrum, Sprint meetings and I helped assign tasks and followed up on backlog and issue tasks to make sure they were completed.
Particpated in code reviews and mentored developers on Android best practices.
Oversaw Android app testing and replaced older testing framework with Espresso automated testing.
Worked with Node.js on several projects and with Electronjs.
Sr. Android Developer
justWink Greeting Cards, Cleveland, OH March 2017 – June 2018
https://play.google.com/store/apps/details?id=com.justwink
The justWink app lets you personalize and send awesome greeting cards from your mobile device to your friends, family, and beyond, via email, text, or your favorite social media apps!
Responsibilities:
Ported existing iOS Application to native Android application.
Synchronized of the backend database with the local SQLite data.
Performed troubleshooting and bug fixing of the existing application to a new user-friendly optimized app.
Built flexible app with backward compatibility across all devices and versions of Android.
Refactored Google In-app Billing with latest version to sell digital products, including one-time products and recurring subscriptions.
Implemented Recyclerview with multiple viewholders to display different data set across multiple fragments.
Integrated Google Maps API for geo-location base updates, routing, customised map markers, and advanced location-based services.
Worked on Google Maps Lib to display Store Locator option.
Implemented fragments for displaying different points of data.
Used Google GSON to parse through JSON files.
Attended weekly meetings to track progress with other teams.
Implemented Retrofit to consume network calls and adapt call adapter with Reactive Observables.
Used Gitlab for version control system and integrate CI/CD pipelines.
Android Developer
Redfin, Seattle, WA March 2014 – March 2017
https://play.google.com/store/apps/details?id=com.redfin.android
The Redfin app provides the most accurate home data with MLS real-estate listings updating every 5 minutes. Search nearby homes, condos, and townhouses for sale. Browse photos of each home, see the most up-to-date property details, and instantly book a free home tour with a Redfin Real Estate Agent. Find your dream house with Redfin's award-winning tools and full-service brokerage at your fingertips!
I worked on an Android team consisting of 5 developers working within an Agile project methodolgy. Hands-on technical work highlights:
Configured app to enable users to save favorite homes and property searches to their Redfin account.
Customized Home Filters to enable search by price, property type, and desired features.
Applied Android-Job utility library to run jobs delayed in the background by creating JobRequest with the corresponding builder class and scheduled this request with the JobManager.
Communicated with Calendar AP and content providers to read calendar events plus confidential information, read contacts, read web bookmarks, and history.
Improved performance of the app using SonarCube, Network profiler, CPU, and battery profilers.
Configured app to get directions and alert a user to attend every open house in user’s area.
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.
Configured bound service to send requests, receive results, and even do so across processes with interprocess communication (IPC).
Created a custom transition animation and applied 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.
Programmed 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.
Created frameworks and automation in the development process to maximize build efficiency and secure solid code.
Android Developer
Hammer Print, Overland Park, KS February 2011 – March 2014 https://play.google.com/store/apps/details?id=com.hammermill.premium
App enables users to print directly from their phone or tablet via WiFi, Bluetooth, or USB cable without a computer to virtually any printer.
I worked on a 6-member Android development team consisting of Android Mobile Engineers, Device Firmware Engineers, and Project Managers. Highlight work tasks:
Responsibilities:
Configured Apache James Mime4j MimeStreamParser for e-mail message streams in plain rfc822 and MIME formats.
Implemented callback mechanism to report parsing events such as the start of an entity header and the start of a body with the SAX XML parser interface.
Implemented Java CIFS Client Library (JCIFS) to implement CIFS/SMB networking protocol.
Integrated Dynamixsoftware SDK for printing and com.dynamixsoftware.printhand.PAYMENT_BROADCAST_PERMISSION.
Redesigned mobile UI and implemented dynamic image sizing and support for multiple devices.
Implemented subscriber/follower system as well as an invite system (client side).
Worked on system settings relating to Bluetooth: allow Wi-Fi Multicast reception, connect and disconnect from Wi-Fi, prevent phone from sleeping, etc.
Communicated with Calendar AP and content providers to read calendar events plus confidential information, read contacts, read web bookmarks, and history.
Helped deploy beta version of the app to the Play Store.
Wrote maintainable and reusable Java and C++ code with a focus on security and privacy.
Deployed the app on the Android Marketplace and supported the app for different releases of Android OS.
Worked independently on integration of Loopj library for asynchronous HTTP requests, handling responses in anonymous call-backs.
Delivered the final version of the app to Google Play Store.
Android Developer
US Bank, Denver, CO January 2009 to February 2011
https://play.google.com/store/apps/details?id=com.usbank.mobilebanking&hl=en_US
Complete everyday banking needs from almost anywhere. Such as sending and receiving money, depositing funds and more with the award-winning U.S. Bank Mobile App1.
Responsibilities:
Contributed value to cross-functional engineering teams (back-end development, front-end development, UI/UX designers, QA, Product Management, etc.).
Led a team of four developers and one graphic designer.
Used Jenkins Continuous Integration server and worked in a Test-Driven Development cycle.
Conducted frequent code review activities with the members of the development team.
Facilitated requirement gathering sessions and wrote the high-level and detail design for the Android application.
Private Git server was used as code repository and I managed commits and worked with Gradle on build process.
Managed the authorization with the backend services using certificate pinning.
Created a successful proof of concept (POC) with a secure SSL layer to authenticate users and refresh login tokens.
Configured the continuous integration process with a Jenkins instance hosted on a private server.
Constructed prototypes of the User Interface integrating the latest Material Design guidelines.
Contributed to full software development lifecycle (SDLC) from product definition through design, development, test, release, and maintenance.
Documented the Android project details, functionality and quality testing.
Coordinated with the testing team during the testing phase to resolve issues of Android app performance and user experience (UX).
Created small testing suites with JUnit and the Android Studio IDE capabilities.
Developed the app natively in Android Studio.
Documented the progress of the daily stand-ups with the Atlassian stack (JIRA, Confluence, HipChat).
Enhanced the UI/UX with well-designed UI/UX and custom views and compound views. Also, collaborated with designers on the Android look and feel.
Established communication with back-end server to consume Restful API using core Android classes.
Implemented the use of handlers and threads on several tasks which improved the application performance.
Senior Web Developer
Deloitte, Los Angeles, CA April 2002 – December 2008
Deloitte is a multinational professional services network with offices in over 150 countries and territories around the world. Deloitte specializes In audits, business consulting financial consulting, and risk tolerance for large corporations across business sectors and industries.
Responsibilities:
Worked for several clients mainly dynamic public facing web sites.
Developer user interfaces implementing Ajax calls and using JavaScript, jQuery, CSS, HTML.
Technical work involved hands-on application with Activities, Intents, Custom Dialogs, Adapter, AsyncTask, AChartEngine, Jackson, WebView, YouTube API, RadaeePDF, 9Patch, and more.
Launched web solutions over Apache and IIS.
EDUCATION
Bachelor of Science in Aeronautical Science ENGR from UC DAVIS