Android Developer SDE III | Teachmint (Bangalore)
Summary
I had an interview experience with TeachMint Technologies for an Android Developer SDE III role in Bangalore. The process involved a recruiter call followed by a technical round primarily focused on Android technicals, Coroutines, Flows, and general Android concepts, including an LRU Cache implementation.
Full Experience
Hi, I would like to share my experience with TeachMint Technologies.
Recruiter reached out to me and we had a discussion around my previous experience and the salary expectation. In the same call, I was informed about the hiring process.
Round 1 : Android Technicals mainly focused on Coroutines / Flows but some general questions were also asked
Interview Questions (12)
Difference between onDestroy() and onDestroyView()
Explain the key differences between the onDestroy() and onDestroyView() lifecycle methods in Android.
Difference between onClickListener and onTouchListener
Explain the key differences between onClickListener and onTouchListener in Android, and when you would use each.
Difference between Intent and Bundle
Explain the differences between Intent and Bundle in Android. Describe scenarios where you would specifically use a Bundle.
State Hoisting and Recomposition in Jetpack Compose
Explain what State Hoisting is in Jetpack Compose. Describe techniques or practices to avoid unnecessary recomposition.
Difference between Async and AsyncTask
Explain the differences between general asynchronous operations (async) and the AsyncTask class in Android programming.
LiveData, StateFlow, SharedFlow Differences & Cold/Hot Flows
Explain the differences between LiveData, StateFlow, and SharedFlow. Describe how to convert a cold flow into a hot flow, specifically detailing the usage and differences between stateIn and shareIn operators.
Default Coroutine Dispatcher
What is the default Coroutine Dispatcher in Kotlin Coroutines, and what are the reasons behind its default selection?
Launching a Service when App is Killed
Describe strategies or methods to launch an Android Service when the application is in the launcher screen (background) and the user has explicitly killed the app from recent tasks.
Replacing Callbacks with Coroutines
Explain how Kotlin Coroutines can be used to replace traditional callback-based asynchronous programming, leading to more readable and maintainable code.
Side Effects and Stability in Jetpack Compose
Explain what 'side effects' are in the context of Jetpack Compose. Discuss the concept of 'stability' and its importance in Compose UI development.
Thread-Safe Multiple DB Writes in Room DB
Describe best practices and techniques for handling multiple database write operations in Android Room Database in a thread-safe manner.
LRU Cache Implementation
Implement or describe the design for a Least Recently Used (LRU) Cache.