Adobe CS2 | Interview Experience 2025
Summary
I recently completed the interview process for the Computer Scientist II role at Adobe and received an offer. The process included an online coding assessment, a live coding and CS fundamentals round, low-level design, high-level design, and a hiring manager interview.
Full Experience
Hi everyone, I recently completed the interview process for the Computer Scientist II role at Adobe and wanted to share my experience. I have around 8 years of experience in backend development, working with technologies like Java, Spring Boot, Kafka, Redis, and AWS. I’ve been leading a backend team for the past couple of years and was referred internally for the Noida office.
Interview Process Overview:
Round 1: Online Coding Assessment This was hosted on HackerRank. There were two medium-level DSA questions (one based on sliding window and one involving graph traversal) and a short design-based coding task to implement an LRU cache. I focused on writing clean and modular code and completed all three with optimal or near-optimal approaches.
Round 2: Live Coding + CS Fundamentals This round started with a coding problem that was a variation of the merge intervals question. I walked through my approach, discussed edge cases, and iterated with the interviewer. We also had a quick discussion on system fundamentals — threads vs processes, memory paging, database indexing, and REST API basics. The conversation was friendly and didn’t go too deep; it felt more like a warm-up for the design-focused rounds ahead.
Round 3: Low-Level Design (LLD) Prompt: Design a Notification System supporting Email, SMS, and Push. I approached this by defining clear interfaces for Notifier and NotificationChannel, and used the strategy pattern to support multiple channels. I created a central NotificationService that handled orchestration. We discussed extending it with support for retries, rate-limiting, and asynchronous execution using Java's ExecutorService. I also explained how I’d unit test the logic and handle dependency injection. The interviewer appreciated the clarity and asked how I’d integrate a message queue like Kafka down the line.
Round 4: High-Level Design (HLD) Prompt: Design a scalable file storage system (similar to Dropbox or Google Drive Lite). I started by defining basic functional requirements such as file upload/download, link sharing, and optional versioning. I broke the system into services: API Gateway, Auth Service, File Upload Service, Metadata Store, Link Generator, and Object Storage. We discussed chunked uploads, deduplication using content hashes, and storing metadata in RDS with Redis caching. We also went over monitoring, retry handling, consistency guarantees, and security via signed URLs. The interviewer pushed me on trade-offs and scaling decisions but kept it collaborative throughout.
Round 5: Hiring Manager Round This was more conversational and focused on my past projects, how I handle production issues, mentoring responsibilities, and experiences with cross-functional teams. I spoke about a few systems I had built end-to-end, decisions I had to defend in design reviews, and my role in driving architectural changes. The hiring manager also explained how Adobe’s teams are structured, what the CS2 role typically involves, and what they expect from someone at this level — primarily strong ownership, technical depth, and mentoring junior engineers.
Offer and Outcome: I received the offer about a week later. The role was for Computer Scientist II at the Noida office.
If you’re preparing for a CS2-level role at Adobe or a similar company, I’d recommend spending most of your time on LLD and HLD. Practice open-ended design questions, review your own past system decisions, and be ready to talk through them in detail. DSA is still useful but not the main focus.
Hope this helps someone who’s preparing.
For those curious — I got referred through a combination of platforms like LinkedIn and https://boostmyreferral.com. If you're actively looking, exploring referral networks definitely helps open doors, especially for roles with internal referral bias.
Interview Questions (4)
A short design-based coding task to implement an LRU cache.
A coding problem that was a variation of the merge intervals question.
Design a Notification System supporting Email, SMS, and Push. I approached this by defining clear interfaces for Notifier and NotificationChannel, and used the strategy pattern to support multiple channels. I created a central NotificationService that handled orchestration. We discussed extending it with support for retries, rate-limiting, and asynchronous execution using Java's ExecutorService. I also explained how I’d unit test the logic and handle dependency injection. The interviewer appreciated the clarity and asked how I’d integrate a message queue like Kafka down the line.
Design a scalable file storage system (similar to Dropbox or Google Drive Lite). I started by defining basic functional requirements such as file upload/download, link sharing, and optional versioning. I broke the system into services: API Gateway, Auth Service, File Upload Service, Metadata Store, Link Generator, and Object Storage. We discussed chunked uploads, deduplication using content hashes, and storing metadata in RDS with Redis caching. We also went over monitoring, retry handling, consistency guarantees, and security via signed URLs. The interviewer pushed me on trade-offs and scaling decisions but kept it collaborative throughout.
Preparation Tips
If you’re preparing for a CS2-level role at Adobe or a similar company, I’d recommend spending most of your time on LLD and HLD. Practice open-ended design questions, review your own past system decisions, and be ready to talk through them in detail. DSA is still useful but not the main focus.
Hope this helps someone who’s preparing.