Position: Senior SDE-Android
Location : Bangalore
Date: June, 2019
Directly invited to onsite interviews.
Round1: Machine Coding
Was asked to implement a simple app in 2 hours. Focus was on functionality, architecture and design principles. How extensible the design was to add new features.
Round2: Problem solving
Round3: Android Design (raw notes)
Expected to first think of all the features:
Post-install : update/uninstall
We deep dived into listing app per category.
an then subsections inside each category :
Editor’s choice : same for everyone: server can cache
“Recommended for you” apps : different for each user.
I implemented versioning in data, so that we don’t fetch complete data also. Implementing client side caching with versioning
Implement auto update. Should also work when app is killed.
Then, if I want a dynamic banner to be shown to users. This should be configurable without app release.
Questions around that:
How much do you want configurable? At what frequency do you want to add new configurations?
If partial configuration, how do you fetch it? What times do you fetch it?
Make a new api
Making a server side client which will hijack the response from original service.
We didn’t talk about fully configurable screen.
Round 4 (raw notes)
Deepdive into some android concepts
mitm discussion
phone rooted, apk compile, code change and decompile. How to detect on server
sqlite, table level lock and db level lock.
Questions around activity and fragment lifecycle : low memory destroyed
why activities are declared in manifest.
Questions around sqlite.
Round 5: HM round
Just a conversation about me and phonepe.
What are my expectations etc.