Adobe - Spectrum Team - Senior Android Design Engineer
Summary
I interviewed for a Senior Android Design Engineer position on the Spectrum Design Team at Adobe and was unfortunately ghosted after the third round.
Full Experience
My interview process for a Senior Android Design Engineer role on the Spectrum Design Team at Adobe consisted of three rounds.
Round 1: Hiring Manager Round
This round was with a very friendly Hiring Manager. We discussed my previous experiences, with a particular focus on Jetpack Compose and my experience with Design Systems. The manager was especially interested in the interoperability between View systems and Compose.
Round 2: Android Coding
In this coding round, the interviewer asked me to implement a Compose function. The question revolved around drawing objects on the screen and ensuring they were retained correctly during orientation changes. Key concepts discussed included remember, rememberSaveable, and Custom Saver.
Round 3: Android Coding
For this coding round, I was allowed to use Android Studio with auto-complete, which was helpful. The core problem was about retrieving data from a given endpoint and then efficiently populating that data into a list view.
Throughout the coding rounds, the focus was heavily on Android Jetpack Compose View concepts such as Stable and Immutable states, as well as performance considerations for views, including efficient data handling, pagination, and lazy loading. There were no DSA (Data Structures & Algorithms) rounds.
Interview Questions (2)
Jetpack Compose: Retain UI State During Orientation Change
Implement a Jetpack Compose function that draws objects on the screen. The key challenge is to ensure that these drawn objects and their state are correctly retained and restored when the device undergoes an orientation change. Concepts like remember, rememberSaveable, and Custom Saver are highly relevant.
Retrieve and Display Data from API in List
Develop an Android application feature that retrieves data from a given API endpoint. Once the data is successfully fetched, it should be efficiently populated and displayed within a list view (e.g., using a RecyclerView or LazyColumn in Compose).