Recent from Paypal:
PayPal Interview Experience | SDE3 | Chennai
PayPal - Senior Software Engineer Frontend Interview Experience
PayPal Senior Software Engineer (Python) Interview Experience
PayPal Android Pre screen
Summary
This was a PayPal Android pre-screen interview covering Android fundamentals, debugging scenarios, performance improvement strategies, and a core coding challenge. I hope this experience helps others prepare.
Full Experience
Part1 Android fundamental questions like
- What are the key differences between Service and IntentService in Android? In which scenarios would you use each one?
- If a previously recommended background processing component is no longer supported, what is the current best practice for handling long-running tasks in the background?
- Which UI component is typically used for efficiently displaying large collections of items in a scrollable list?
- How does the pattern for efficiently managing and binding views in a list component work? How would you adapt this pattern to display items horizontally or in a grid layout?
- What is the concept of deep linking, and how does it enable opening specific screens in an app from a URL?
- When using code shrinking or obfuscation tools, why might you encounter runtime errors related to missing classes, especially when using reflection, and how can these issues be addressed?
Part2 Debugging/ fix
Code was related to using a BroadcastReceiver to listen for airplane mode changes.
Part 3 Improve performance
Code was related to
"How would you design and implement a background task in Android using WorkManager to save a Student object (with ID and name) to SharedPreferences, synchronize it with a remote source, and also persist it using a DAO (database)? Please demonstrate how you would structure your Worker class, use a singleton for the database, and leverage coroutines (including suspend functions and coroutine scope) to handle asynchronous operations. Show how you would report success or failure from the Worker.
Part 4 Code
You are given a list of strings, each representing an item that has been selected or used. Write a function that determines which item appears most frequently in the list, along with the total number of times it appears. If there is a tie, return the item that occurs first in the list. The comparison should be case-insensitive, but the output should preserve the original casing of the earliest occurrence.
From memomry. Hope it helps.
Interview Questions (8)
What are the key differences between Service and IntentService in Android? In which scenarios would you use each one?
If a previously recommended background processing component is no longer supported, what is the current best practice for handling long-running tasks in the background?
Which UI component is typically used for efficiently displaying large collections of items in a scrollable list?
How does the pattern for efficiently managing and binding views in a list component work? How would you adapt this pattern to display items horizontally or in a grid layout?
What is the concept of deep linking, and how does it enable opening specific screens in an app from a URL?
When using code shrinking or obfuscation tools, why might you encounter runtime errors related to missing classes, especially when using reflection, and how can these issues be addressed?
How would you design and implement a background task in Android using WorkManager to save a Student object (with ID and name) to SharedPreferences, synchronize it with a remote source, and also persist it using a DAO (database)? Please demonstrate how you would structure your Worker class, use a singleton for the database, and leverage coroutines (including suspend functions and coroutine scope) to handle asynchronous operations. Show how you would report success or failure from the Worker.
You are given a list of strings, each representing an item that has been selected or used. Write a function that determines which item appears most frequently in the list, along with the total number of times it appears. If there is a tie, return the item that occurs first in the list. The comparison should be case-insensitive, but the output should preserve the original casing of the earliest occurrence.