Post Job Free
Sign in

Senior Android Developer

Location:
San Jose, CA, 95129
Posted:
August 22, 2024

Contact this candidate

Resume:

Daniel Rafalano

Lead Android Developer

Email: ****************@*****.***; Phone: 408-***-****

Profile Summary

•Android development experience: 12+ years with 7 apps published to Play Store.

•Overall software/IT and Android experience covers 18+ years.

•Experience building Android apps from scratch as well as revision, refactoring, and transitioning architecture (MVC, MVP, MVVM) and code base (Java to Kotlin and Android versions).

•Familiarity with push notifications, APIs, and cloud messaging.

•Android performance profiling, memory and power management and optimizations.

•Experience working on Agile development teams using Scrum processes.

•Native Android Development in Android Studio and Eclipse using Java and Kotlin.

•Apply Java patterns Singleton, Facade, Factory, Builder, Adapter.

•Leveraged NFC technology to enable easy check-ins in a pharmacy application.

•Well versed in Android third-party libraries such as Volley, Retrofit, Picasso, YouTube, Location API, Maps View, Google View, Google Maps, PayPal, Stripe, Android pay, QR Droid, Butterknife, Dagger, Google Wallet payments, Android Annotations.

•Collaborated with cross-functional teams to design and implement an IoT-based home automation system, allowing users to control devices through an Android app.

•Knowledgeable of the latest analytics tools for mobile applications such as Google Analytics, Localytics, Mixpanel, Answers, Flurry, Crashlytics, NewRelic, etc.

•Experience in Git for code base and version control (GIT, GitHub, GitLab).

•Used Android frameworks and APIs to efficiently load data and update databases: Loaders, AsyncTaskLoader and SyncAdapters.

•Skilled in consumption of RESTful web services (REST, HTTP-based, XML, SOAP, JSON, etc.) and use of Retrofit, Volley, AsyncTask Android back-end communications.

•Expertise in 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.

•Skilled in using designs tools like CardView, Toolbar, RecyclerView, animations properties and support libraries for this Android mobile app.

•Improved the performance and UX of several modules of the local Content management system.

•Work with Shared Preferences, Cipher, Certificate Pinning, TrustManager, Bouncy Castle, Spongy castle, SQLCipher, KeyChain, Key Store.

•Hands-on with testing tools such as Mockito, Espresso, Robotium, etc.

•Implement full life cycle of SDLC from Analysis, Design, Development, Deployment and Testing of Application.

•Skilled in leadership and able to work well with all people, mentoring developers, working with project managers, stakeholders, and cross-functional team members.

Technical Skills

Languages: Java, Kotlin, .NET, C#, C++, HTML, CSS, JavaScript, Git, .NET MVC, Visual Basic, Windows Batch & Shell Scripting, Java EE, JavaBeans

Databases: SQLite, Firebase DB, MongoDB, T-SQL, MS SQL, My SQL

IDE: Android Studio, Eclipse

Design Standards: Material Design

Architectural Patterns: MVP, MVC, MVVM

Design Patterns: Abstract Factory, Adaptor, Bridge, Builder, Command, Decorator, Interpreter, Monitor Object, Observer, Proxy, Singleton, Visitor

Project Tools: JIRA, Kanban, Trello, Slack, Confluence, VSTS

Methods: Test-Driven Development (TDD), Continuous Integration, Agile, Scrum, Pair Programming

Version Control: Git, GitHub, Bitbucket

RESTful Web Services: REST, SOAP, XML, JSON, GSON, Moshi, Retrofit, Volley, OKHTTP

Threading: Loopers, Loaders, Handlers, AsyncTask, Intent Service, RxJava, Coroutines

Data Binding: Android Data Binding Library, ButterKnife

Frameworks: Firebase, Reactive-X, JetPack

Android Security: SpongyCastle, Certificate Pinning

Profiling: Bluetooth Low Energy, Leak Canary, Crashlytics,

Media: ExpoPlayer, Media Player, Picasso, Glide, Fresco

Testing: Junit, Espresso, Mockito, Robotium,

Analytics: Mixpanel, Flurry

Dependency Injection: Dagger 1, Dagger 2

Push Notifications: Google Cloud Messaging (GCM), Firebase Cloud Messaging (FCM)

UI Implementation: Navigation Drawer, Widgets, UIAutomator, FloatingActionButton,

Misc Libraries: JobScheduler, EventBus

Continuous Integration: Bitrise.io, Jenkins, Hudson, Travis

Build: Gradle

Reactive-X: RxAndroid, RxJava, RxCache, RxBluetooth

JetPack: LiveData, Room, VIewModel, Download Manager

Misc: Schematic, MonkeyRunner, SyncAdapters, Ion, Kickflip, Parse, Parceler

Professional Experience

Lead Android Engineer

PayPal, San Jose, CA / 11.2023 to Present

App: https://play.google.com/store/apps/details?id=com.paypal.android.p2pmobile

Project Summary: As a Lead Android Developer at PayPal, I spearheaded the development of features to enhance user experience by integrating secure payment functionalities and cashback offers directly into the app. I led the implementation of seamless money transfer options and personalized payment requests, ensuring a user-friendly interface for sending and receiving funds. Additionally, I worked on integrating PayPal’s debit card functionality, allowing users to access their balance, shop globally, and withdraw cash without fees at numerous ATMs. My contributions focused on optimizing app performance, ensuring security, and delivering valuable features that simplified financial transactions for users.

•Execute and call tests written in the in-house automation software development.

•Write Kotlin functions to create configurable navigation bars using SDK, ensuring navigation is adaptable based on user context.

•Develop code to handle different navigation actions provided by the SDK and revert to previous navigation if the user returns to a prior location.

•Utilize the Model-View-ViewModel (MVVM) architecture to separate the application's data (Model), user interface (View), and business logic (ViewModel), thereby enhancing modularity, testability, and maintainability of the codebase.

•Review pulls requests (PRs) to understand requirements and meet with leads and developers for guidance.

•Create Kotlin functions and external libraries with varying data structures, set default values, and test functionality for new and existing navigation features.

•Merge new tests remotely, trigger Continuous Integration (CI), and ensure new coverage is updated.

•Address feedback from code reviewers and await approval before merging code into the development branch.

•Increase code coverage to 85% or higher for different repositories.

•Design and implement user interfaces using Jetpack Compose for various Android applications, ensuring a seamless and engaging user experience.

•Develop reusable and modular UI components with Jetpack Compose, adhering to best practices and design patterns to enhance application scalability and maintainability.

•Utilize Agile tools such as JIRA, Confluence, and Trello to manage user stories, tasks, and collaboration effectively.

•Document the current code coverage from production and identify areas needing improvement.

•Sync local environment with the repository, run Android and JUnit tests, and ensure code coverage matches the expected levels.

•Create additional tests to cover any gaps, merge new tests remotely, trigger CI, and work on feedback from code reviewers before merging into the development branch.

•Analyze migration documentation and document current API levels and library dependencies.

•Sync the local environment or get a fresh copy of the repository.

•Developed and delivered incremental features and improvements for Android applications in accordance with Agile sprint cycles.

•Verify the application under the current API level, run JUnit tests, and fix any failing tests with guidance from leads.

•Set up the environment with API 34 settings, make gradual changes, and resolve issues.

•Re-run JUnit tests, create additional tests if needed, take a snapshot of libraries, and merge code remotely, triggering CI.

•Address feedback from code reviewers and wait for approval to merge into the development branch.

•Perform RC testing to ensure the release candidate meets quality standards.

•Apply design patterns such as Singleton, Factory, Builder, and Dependency Injection.

•Employ UI Automator to perform automated user interface testing across different Android devices and versions, enabling robust end-to-end testing of app interactions and workflows.

•Utilize Espresso for writing and executing automated UI tests within the Android app, focusing on the user interface components and ensuring their proper functionality and responsiveness during interactions.

•Collaborate with cross-functional teams to ensure effective integration and development practices.

Lead Android Developer

JP Morgan Chase, Columbus, OH / 07.2022 to 10.2023

App: https://play.google.com/store/apps/details?id=com.chase.sig.android

Project Summary: The Chase Mobile app is utilized to do banking, managing accounts, monitoring credit scores, budgeting, and monthly spending. Currently, Chase is 5 years behind in mobile technologies in comparison to leading mobile apps. Chase is actively going through a process of closing technology gaps. The main ongoing projects are migrating the base code from Java into Kotlin, implementing Google Tink’s cartographic APIs, and utilizing Jetpack frameworks.

•Led a 20-member team and collaborated in a cross-platform environment with 8 Android developers, 8 iOS, 3 Lead Managers, 3 Scrum master’s and 1 Unit Lead.

•Refactored modules and tested deprecated APIs against new APIs.

•Facilitated requirement gathering sessions and wrote the high-level and detail design for the Android application.

•Successfully managed the authorization with the backend services using certificate pinning.

•Collaborated on the development of Semantic versioning documentation for incoming developers.

•Created Unit Tests using Mockito to increase Sonar code coverage.

•Configured Git repositories in private GitHub for the Android development team.

•Handle database versioning and migration strategies to ensure smooth updates and transitions between different versions of the RoomDB schema.

•Created a successful proof of concept (POC) with a secure SSL layer to authenticate users and refresh login tokens.

•Worked on End-To-End encryption using Google Tink cartographic APIs to refactor existing cartographic APIs.

•Implement asynchronous programming solutions using Kotlin Coroutines to manage background tasks and ensure a responsive user interface.

•Used integration test of biometric automated test for Android SDK/API Levels to authenticate users via fingerprint scan API.

•Manage UI state effectively using Jetpack Compose's state management techniques, ensuring responsive and dynamic user interfaces.

•Transitioning legacy code and correcting code; Conducted code analysis.

•Used JPRxJava and JPRxAndroid for asynchronous streams of data.

•Use of GIT for source control management and continuous integration with Jenkins

•Formed 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.

•Handle errors and exceptions in coroutine-based code, ensuring robust and fault-tolerant application behavior.

•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.

•Integrate Jetpack Compose UI components into existing Android applications, ensuring compatibility and consistency with pre-existing views and layouts.

•Liaised 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.

•Devised creative, technical solutions to functional problems.

•Diagnosed and resolved mobile networking performance issues.

•Managed competing priorities in a complex environment and maintained high productivity.

•Integrated web applications, and web services to the Android app to add functionality and enhance performance.

•Accessed web content using implicit and explicit intents.

•Decoupling with Dagger 2 for Dependency Injection.

•Assisted in Sprint planning by creating stories, breaking into tasks, and created a plan estimating time for tasks, and thus user stories.

•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.

•Combined a Drawer Layout to handle external and constant menu items related to the app’s current Activity and extra features.

•Added encrypted environment configuration with sessions and user login using Shared Preferences.

•Used JIRA to organize, prioritize and assign issues as they arose.

•Built Activities using compound and customized views.

•Ensured security of application, login, and authentication using SSL and encrypted tokens.

•Facilitated Scrum meetings including Sprint Planning Meeting, Daily Scrums, Sprint Reviews, Sprint Retrospective Meetings, and Backlog Refinement Meetings.

•Leveraged the flutter bloc package for testing BlocBuilder, facilitating widget building in response to state changes within the app and enhancing overall development efficiency.

•Developed custom packages in Flutter, harnessing functionalities and APIs from native Android and iOS platforms to extend the app's capabilities and enhance user experience.

•Implemented comprehensive unit and widget tests across the entire codebase using Flutter's testing framework, including tools such as Mockito, to maintain quality standards and identify reliability issues.

Senior Android Developer

First Midwest Bank, Chicago, IL / 09.2020 to 07.2022

As a Senior Android Developer with First Midwest Bank, I enhanced the Android Keystore for cryptographic key security, integrated fingerprint authentication, and migrated to Jetpack Compose. I also optimized data handling with RoomDB and Flow API, improved CI/CD processes with CircleCI, and ensured robust security and performance through TDD and advanced encryption techniques.

https://play.google.com/store/apps/details?id=com.mfoundry.mb.android.mb_642&hl=en_CA&gl=US

•Improved Android Keystore program to store cryptographic keys in a container and protect key material from unauthorized use.

•Authenticated users via Fingerprint scan API and implement the user interface for the fingerprint authentication flow.

•Persisted Realm data to disk and 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.

•Maintain and update Agile documentation, including user stories, task boards, and sprint backlogs, to ensure transparency and traceability.

•Migrated to Jetpack Compose by adding Compose to an existing screen built using Android Views and managed state in composable functions.

•Performed gRPC authentication, including gRPCs built-in error codes with use of SSL/TLS to authenticate server and encrypt all data exchanged between client and the server.

•Pair programmed to perform migration of the existing DEV/USR/PRD environments to the cloud for the native application resulting in reduction of servers and infrastructure administration by 97%.

•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

•Ensure data integrity and security within RoomDB by implementing proper constraints, handling transactions, and managing sensitive data securely.

•Configured GSON converter to convert data in JSON format into POJO.

•Applied OKhttp3 and Logging interceptor to log API call Infos.

•Used Hilt for dependency Injection.

•Configure and maintain CircleCI pipelines for continuous integration (CI), automating the build, test, and deployment processes for Android applications.

•Developed a library that abstracted the core banking business rules and defined the business objects to provide interface for GUI.

•Used coroutines for asynchronous call and handle threading.

•Wrote Functional, Unit, and Instrument tests using Mockito and Espresso.

•Fixed issues for security scans such as SSL, encryption, loopholes and profiled the application using APK analyzer.

•Created and tested with Custom Proxy tool to diagnose emulator connection to Bank’s Payment Services.

•Maintained and updated Agile documentation, including user stories, task boards, and sprint backlogs, to ensure transparency and traceability.

•Researching JavaScript based frameworks like React Native and Ionic/Cordova for frontend.

•Worked in using React JS components, Forms, Events, Keys, Router, Animations and Flux concept.

•Responsible for React UI and architecture. Building components library, including Tree, Slide-View, and Table Grid.

Senior Android Mobile App Developer

Abercrombie and Fitch, New Alabany, Ohio / 04.2018 to 09.2020

As a Senior Android Mobile App Developer with Abercrombie and Fitch, I implemented the MVVM architectural pattern, refactored code from Java to Kotlin, and integrated ML Kit for enhanced machine learning features. I utilized Jetpack Compose for UI, optimized SQLite performance, and applied reactive programming with RxJava and Kotlin Flow.

https://play.google.com/store/apps/details?id=com.abercrombie.abercrombie HYPERLINK "https://play.google.com/store/apps/details?id=com.abercrombie.abercrombie&hl=en_IN&pli=1"& HYPERLINK "https://play.google.com/store/apps/details?id=com.abercrombie.abercrombie&hl=en_IN&pli=1"hl=en_IN HYPERLINK "https://play.google.com/store/apps/details?id=com.abercrombie.abercrombie&hl=en_IN&pli=1"& HYPERLINK "https://play.google.com/store/apps/details?id=com.abercrombie.abercrombie&hl=en_IN&pli=1"pli=1

•Shop Enduring Style & All-American Apparel. Join A&F Club for exclusive rewards.

•Applied build work to a MVVM clean code architectural pattern.

•Refactored arrays and refactored some modules from Java to Kotlin.

•Applied ML Kit mobile SDK to enhance app with machine learning aspects.

•Utilized latest version of Google application programming interface (API) for communication with Google Services and related integration to other services.

•Set up and configured an RxAndroidBLE environment.

•Used Jetpack Compose for UI development.

•Optimize SQLite performance by indexing columns, managing query execution plans, and reducing database size.

•Implement reactive programming paradigms using RxJava to manage asynchronous operations and event-driven programming within Android applications.

•Utilized Firebase Real-Life Database to remotely store information from the Room Database, enabling users to maintain their information when changing devices.

•Managed automated testing with additional quality with Charles Proxy and Leak Canary.

•Encrypted and decrypted the shared preference data with the AndroidX Security Library.

•Refactored codebase with JobIntentSerivce, WorkManager, and Paging.

•Utilized two-way data binding to communicate between ViewModel and XML files.

•Implemented Jetpack component for data binding along with Dagger 2 and Hilt for dependency injection.

•Use RxJava operators to transform and filter data streams, providing real-time data processing and manipulation.

•Integrated Firebase Remote Config API to change the styles and themes of app in app preferences.

•Worked with Jenkins CI server for continuous integration and followed Test-Driven Development (TDD) methods.

•Applied elements of Kotlin Flow such as coroutines to interact with the database and networking operations in repository layer in Clean Code architecture.

Sr. Android Engineer

Walgreens, Deerfield, IL / 06.2016 to 04.2018

As an Android Engineer with Walgreens, I was involved in all phases of the SDLC, utilized RxJava for efficient data handling, integrated Google Maps API, and enhanced the app's UX by implementing design elements and ensuring smooth interfaces. Additionally, I collaborated across teams, managed tasks in JIRA, and used GitHub for version control.

https://play.google.com/store/apps/details?id=com.usablenet.mobile.walgreen

•Involved in all phases of software development lifecycle from planning to launch.

•Participated in code reviews, testing and troubleshooting.

•Followed an Agile Scrum methodology.

•Helped prepare the implementation plan.

•Worked in a small team of developers using Agile methodology and Scrum practices.

•Create and manage data streams using RxJava, handling events, network responses, and user interactions efficiently.

•Integrate SQLite with Android UI components to ensure seamless data binding and real-time updates to the user interface.

•Embedded Google Maps API, GPS Location Data into app with zooming controls.

•Organized and tracked tasks in JIRA and managed project backlog.

•Used GitHub repository for version control.

•Wrote unit and instrumentation tests using JUnit, Mockito and Espresso.

•Implemented several design elements that added great value to the application and improved UX while attaining Google’s design guidelines.

•Utilize RxJava’s threading and scheduling capabilities to offload tasks to appropriate threads, ensuring smooth and responsive user interfaces.

•Contributed value to cross-functional engineering teams (back-end development, front-end development, UI/UX designers, QA, Product Management, etc.).

•Applied Crashlytics for productive bugs detection and app crashes reporting to better refine the Android app.

•Configured APIs to consume web services for integration with various repositories using Retrofit.

•Integrated the PayPal Android SDK for making payments through the Android app.

•Collaborated with Software Engineers for the design and development of back-end services.

Android App Engineer

Frontier Airlines, Denver, Colorado / 02.2014 to 06.2016

As an Android App Engineer with Frontier Airlines, I collaborated with back-end teams to redesign RESTful web services, created a Push Notification Server using NodeJS, implemented secure login systems, enhanced UI performance with fragments and RecyclerView, and migrated the architecture from MVP to MVVM for improved code efficiency.

https://play.google.com/store/apps/details?id=com.united.mobile.android

•Worked closely with back-end team to redesign RESTful web services

•Created a Push Notification Server using NodeJS and implemented MongoDB and MSSQL databases to store unique device keys.

•Worked closely with designers to create the look and feel of the application meeting Google’s design standards while following company’s corporate identity guidelines.

•Integrated Facebook and Twitter for social networking

•Worked with the back-end team to implement a secure login system for the application

•Designed and implemented a module for users to review their historic travel information

•Designed application workflow and wireframe for new modules

•Improved the performance on the UI by implementing fragments and implementing RecyclerView.

•Migrated from MVP to MVVM architecture to reduce and consolidate code to make use of Android Ktx plugin.

•Participated in code reviews and applied the Jacoco tool to ensure complete code coverage review.

•Improved the user experience by including android wear compatibility.

•Integrated VideoView for video promos about upcoming events.

•Used Bluetooth low energy and Leak Canary to solve mobile networking performance issues

•Implemented a Navigation Drawer for quick access to different activities and a better User Experience

Android Application Developer

Jewel-Osco, Itasca, IL / 05.2012 to 02.2014

As an Android Application Developer with Jewel-Osco, I implemented secure data encryption using SQLCipher, integrated social media connections, introduced custom views and design patterns (MVP, Factory, Singleton, Decorator), and enhanced app performance while collaborating closely with engineering, product, and design teams.

https://play.google.com/store/apps/details?id=com.safeway.client.android.jewelosco HYPERLINK "https://play.google.com/store/apps/details?id=com.safeway.client.android.jewelosco&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.safeway.client.android.jewelosco&hl=en_CA&gl=US"hl=en_CA HYPERLINK "https://play.google.com/store/apps/details?id=com.safeway.client.android.jewelosco&hl=en_CA&gl=US"& HYPERLINK "https://play.google.com/store/apps/details?id=com.safeway.client.android.jewelosco&hl=en_CA&gl=US"gl=US

•Implemented secure data encryption using an SQLCipher instance.

•Introduced Navigation Drawer and Tabs, custom and compound views to the project.

•Implemented HTTP client (GET, POST, DELETE, PUT) to consume RESTful web services.

•Connected the app to Twitter, Instagram, and Facebook.

•Generated reachable daily goals and created a delegation task system that allowed developers focus on the development bearing.

•Used design patterns: MVP, Factory, Singleton, and Decorator.

•Identified bugs on the previous version improving the performance on the Android lifecycle.

•Trained internal Java developers for further application maintenance.

•Used Android Device Monitor for monitoring CPU load, heap size, and memory usage.

•Implemented multithreading communication using the built-in Android frameworks like AsyncTasks and Handlers.

•Closely worked with the testing team and used developer testing tools like Robolectric.

•Integrated Flurry for mobile analytics.

•Use of GIT for source control management and continuous integration with Jenkins.

•Assisted with the architecture and implementation of runtime permissions for Android version 4.1 and above.

•Proven abilities to work closely and effectively with engineering and non-engineering teams

•Generated a downstream logic to communicate the servers with the phones using Google Cloud Messaging (GCM).

•Configured manual and generated content providers using Schematic.

•Interacted closely with both the Product and the Design teams.

•Used Android Studio, Java, AsyncTasks, Google Maps, RESTful, JSON, SQLite, Servlets, Tomcat, MySQL, SVN, 9Patch.

•Fluent in Android SDK/NDK and device driver development.

IT/Software Systems Engineer

Mercer, New York, NY / 06.2006 to 05.2012

•Installed and maintained servers and other related computer systems.

•Installed, configured, and maintained hardware and software components and systems.

•Troubleshot customer issues over the phone and in person, accurately diagnosing and resolving issues in response to customer reported incidents.

•Applied company standard customer support policies and procedures.

•Engaged with cybersecurity stakeholders to set up systems to identify and repel any potential threats or attempts at unauthorized network access, and ensured enforcement of national and DoD security policies, directives, and standards.

•Engaged in remote control, patch management, operating system deployment, network protection, and other services via the Microsoft SCCM platform.

•Performed troubleshooting and related technical fixes to servers.

•Performed dedicated strategic and budget planning for all systems and their hardware or software.

Academic Credentials

Master’s in computer science - Lehman College



Contact this candidate