HackTheRounds Interview Experiences

Adobe Software Engineer Interview Experience (2026) - Real-time Log Analytics & Make Array Unique, Offer

Adobe SWE loop for Document Cloud: HackerRank round, five onsite rounds covering make array unique, weighted interval scheduling, real time log analytics design

By Anonymous · 2026-03-20

Background

Adobe is one of those companies that flies under the radar in CS forum discussions but pays top-of-band for senior engineers on the Document Cloud and Creative Cloud teams. I am a mid-level backend engineer with four years at a smaller media tooling startup, referred in by a former teammate who had moved to the Adobe Sign org. The loop spanned about six weeks, included a surprisingly thorough HackerRank stage, and ended with an offer on the Document Cloud team.

Timeline

Total: about 6 weeks.

Phone Screen (30 min)

This was half recruiter and half hiring manager. The recruiter ran through the standard set: why Adobe, why now, what are you looking for in your next role. The hiring manager asked two warm technical probes, one about how I would choose between a HashMap and a TreeMap for a frequency-counting use case, and one about how I had designed a caching layer in my current job. Neither required whiteboarding. The bar at this stage is coherent communication and a story about fit, not algorithmic depth.

Technical Phone Interview (45 min)

A senior engineer walked me through a system I had built recently and then pitched a design follow-up. The scenario was a real-time log analytics service that accepts events at high throughput and serves rolling-window aggregations over the last minute, last hour, and last day. I went with a write path that partitions by time bucket and a read path that merges pre-computed bucket counters. We talked about retention, late-arriving events, and how to handle schema changes in the event envelope. It felt closer to a principal engineer chat than a 45-minute screen.

[[problem/598?company=18|Real-time Log Analytics]] is literally the design problem I got and practicing something in this shape ahead of time would have shaved at least ten minutes off my response.

Coding Round (HackerRank, 60 min)

Adobe uses HackerRank with two problems and the style is a weird blend of logic puzzles and classic data-structure work. I got a simplified file-path canonicalization problem (think LeetCode 71 with relative navigation plus symlinks) and a binary-tree balance check. Both solvable, both boring if you have seen them before. The platform itself is the more annoying part because the editor is finicky on long lines and the test runner is slower than LeetCode.

[[problem/597?company=18|Sum of All Addition Expressions]] is a flavor of the string-parsing style Adobe likes, even though it was not the specific problem I got.

Virtual Onsite (5 rounds)

Round 1: Coding — Make Array Unique with Minimum Cost

Problem: Given an array of integers with duplicates, make all elements distinct by incrementing duplicates. Minimize the total cost of increments.

I sorted the array and did a single pass, bumping any element that was less than or equal to the previous unique value. Every bump contributes to the cost. O(N log N) for the sort, O(N) for the sweep. The interviewer asked about the case where N is in the tens of millions and sorting is the bottleneck; I talked through a counting-sort variant when the value range is bounded, and a bucket-plus-overflow structure when it is not.

[[problem/599?company=18|Make Array Unique with Minimum Cost]] is the exact problem.

Round 2: Coding — Maximize Work Schedule Bonus

Problem: Given a list of shifts with variable bonus values and overlap constraints, pick a non-overlapping subset that maximizes total bonus.

Weighted interval scheduling. Sort by end time, binary search for the latest compatible shift, and DP where dp[i] = max(dp[i-1], bonus[i] + dp[compatible(i)]) . I wrote it iteratively with a BST over end times to find the predecessor quickly. The interviewer asked for the recursive memoized version as a follow-up and then for the proof that greedy by value alone fails. I worked a small counterexample on the side panel.

[[problem/596?company=18|Maximize Work Schedule Bonus]] maps directly.

Round 3: System Design — Commenting Service for Creative Cloud

Problem: Design a collaborative comment and annotation system for files shared inside Creative Cloud.

I started with the user-facing flow: users attach comments to anchors inside a document (coordinates for images, time offsets for video). Storage was a comments table partitioned by document ID, with a secondary index by anchor. Real-time fan-out for live editing was a WebSocket server with per-document channels backed by Redis pub-sub. The interviewer pushed on conflict resolution when two users comment on the same anchor simultaneously and on how to expire orphaned comments when anchors move. I described a vector-clock style reconciliation and a background GC job for orphans.

Round 4: OOD — Design a PDF Rendering Pipeline

Problem: Object-oriented design for a PDF renderer that handles text, images, forms, and annotations.

I sketched a PDFDocument containing ordered Page objects, each holding a list of PageElement subclasses (TextElement, ImageElement, FormElement, AnnotationElement). The renderer was a visitor over the element tree with a RenderContext carrying the current page state. The interviewer pushed on how to plug in a new element type without changing existing code, and I walked through the visitor plus a registry of element-to-renderer handlers. We finished with a discussion of how to handle memory for giant scanned PDFs.

Round 5: Behavioral with Hiring Manager

Standard behavioral set. Tell me about a time you had a cross-team conflict. Tell me about a project that slipped. What do you do when you disagree with a code review. The hiring manager was particularly interested in how I had dealt with legacy code because the team he was staffing was about to own a large migration. No coding this round.

Result

Offer came nine days after the onsite. Adobe pays below the top FAANG bands but the work-life balance is genuinely better and the document-tooling problem space is underrated. I negotiated a modest sign-on and equity bump and accepted.

Tips

  1. Adobe's HackerRank round has unusual breadth. The prep guides say 60-plus questions in the pool and that number is credible. You cannot memorize it; drill the pattern families (string manipulation, tree recursion, interval problems) until the scaffolding is automatic.
  2. Read the Adobe careers blog for product context. The hiring manager rounds will probe how much you understand about Document Cloud or Creative Cloud. A ten-minute read before the loop pays dividends.
  3. Expect OOD on every senior-plus loop. Most SWE blogs gloss over this but Adobe's onsite almost always includes one pure OOD round. Practice the Visitor, Strategy, and Registry patterns cold.
  4. System design rounds bias toward creative tools. Comment systems, collaboration primitives, and rendering pipelines show up more than URL shorteners or chat apps.
  5. Adobe values the "engineering judgment" answer. When pushed, do not retreat into handwaves. They would rather hear you talk about tradeoffs out loud, including ones you do not have perfect answers for.
  6. Behavioral with the hiring manager carries real weight. I watched two friends wash out here despite clean coding rounds. Have three stories about legacy-code wrangling or migration work ready to go.