Apple | Junior Software Engineer (ICT-2) | Offcampus
Summary
I interviewed for a Junior Software Engineer (ICT-2) role at Apple. After successfully completing the Online Assessment, I proceeded to a technical interview where I demonstrated my DSA skills on problems like Coin Change I and II. Ultimately, I decided the role and team weren't the right fit for my career path, and therefore, wasn't expecting an offer.
Full Experience
I applied for an off-campus Junior Software Engineer (ICT-2) role at Apple in July and soon received an Online Assessment (OA) link. The OA consisted of two coding problems, both of which I solved successfully:
- A variation of the knapsack problem, specifically referred to as 'Double Knapsack' or 'Maximum Weight in Two Bags'.
- A grid traversal problem on a 15x10 grid where I had to follow a unique path made of '*' and lowercase letters, collecting the letters to form a string.
The interview focused on a Java backend role. It began with some cross-questions on my resume and fundamental Java concepts. Then, I was asked to solve 'Coin Change I' and 'Coin Change II', which I solved optimally with correct time complexity. Further questions covered Operating Systems (OS), Object-Oriented Programming (OOPs), and System Design, which I answered to the best of my ability. Throughout the interview, I conveyed my reservations about the specific work this team was engaged in, which led me to not anticipate a callback.
Interview Questions (4)
Given a 15x10 grid containing a unique path made of '' and lowercase letters. The path starts at (0,0), moves only in the four cardinal directions (no diagonals, forks, or loops), and ends at some point. I needed to follow this path, collect all lowercase letters (ignoring ''), and output the formed string.
Given an array of coins with different denominations and a total amount of money, compute the fewest number of coins that are needed to make up that amount. If that amount cannot be made up by any combination of the coins, return -1.
Given an array of coins with different denominations and a total amount of money, compute the number of combinations that make up that amount. It's assumed that an infinite number of each kind of coin is available.
Preparation Tips
My preparation for this particular interview was not as thorough as it should have been, mainly due to the short notice and my ongoing travel plans. Based on my experience, I would strongly advise anyone applying off-campus to:
- Ensure you have a clear understanding of the team's specific work and how it aligns with your career goals.
- Dedicate sufficient time to brushing up on Data Structures and Algorithms (DSA).