Zoho Software Developer Interview for ACET — R3 Whiteboard Cut-Off
- Field
- Engineering
- Company
- Zoho
- Role
- Software Developer
- Duration
- 20 min
- Difficulty
- Easy
- Completions
- New
- Updated
- 2026-05-27
What this round is about
- Topic focus. Three canvas problems back to back: a diagonal pattern-printing problem, an in-place string expansion problem, and the Set Get Unset Count Begin Commit Rollback key-value store that mirrors how Zoho Catalyst datastore behaves. ACET CSE and AI and DS toppers reaching R3 face this exact mix.
- Conversation dynamic. The Senior Engineer will refuse to let you write any code until you have stated the approach in plain words, asked your clarifying questions, and dry-run a sample on the canvas.
- Round format. Seventy-five minutes on the canvas (live AI practice mode), in C or C plus plus or Java only. No IDE, no compiler, no internet. The interviewer is sitting beside you the whole time.
- What gets tested. Approach-first discipline, generalisation when the interviewer changes the input value mid-problem, proactive naming of empty and single-element edge cases, narration of time and space complexity without being asked, and modular design on the key-value store.
- What you control. You pick the language (C, C plus plus, or Java) and the order of attempting the three problems. The diagonal-pattern problem is the warm-up, the in-place string expansion is the structural test, and the Set Get Unset Commit Rollback datastore is the architectural close. Starting strong on problem one buys runway on problem three.
What strong answers look like
- Approach in plain words first. Thirty seconds of here is what I am going to do, here is the outer loop, here is why the inner increment grows by row index before you start sketching.
- Clarifying questions on input bounds. What is the maximum value of n. Can n be zero. Can the input string be empty. What if the digit after a character is zero. Two or three of these before any code.
- Dry-run on the worked example out loud. Trace n equals ten on the canvas, name each row's starting number and gap, only then write the loops.
- Generalisation under pushback. When the interviewer says what if I gave you n equals fifteen, you trace through the new input on the canvas without rewriting your code, and you say out loud where the new input lands.
- Time and space complexity narrated unprompted. Sounds like: this is O of n squared time because the outer loop runs n times and each row prints up to n numbers, and O of one extra space since I print as I go. The Senior Engineer rewards candidates who state complexity before being asked.
What weak answers look like (and how to avoid them)
- Jumping straight to code. Picking up the cursor before saying a word about the approach. Mitigation: physically put the cursor down until you have said three sentences.
- One-input fluency. Tracing n equals ten cleanly then freezing on n equals fifteen. Mitigation: always trace at least two values of the parameter before claiming the algorithm is general.
- Silent coding. Going quiet for two minutes while writing. Mitigation: narrate the loop you are about to write before you write it, even if it slows you down.
- No test cases. Saying I am done without listing test inputs. Mitigation: before declaring done, write three test inputs on the canvas including the empty input.
- Memorising one input and failing on the next. Tracing n equals ten cleanly then blanking when the interviewer changes the parameter to fifteen. Mitigation: never claim the algorithm is general until you have traced it on at least two values of the input on the canvas, pick one small and one larger value before declaring done.
Pre-interview checklist (2 minutes before you start)
- Recall your approach-first phrase. Have a ready opener like before I write any code, let me state the approach so you do not blank under pressure.
- Have three clarifying questions ready. Input range, empty input behaviour, allowed language. Use one or two of these in the first minute.
- Think of two test inputs per problem type. A normal case and one edge case (empty, single, max). You will need these to dry-run before declaring done.
- Identify your weakest data structure. If you are shaky on stacks or hashmaps, decide now whether you will solve infix-to-postfix or frequency-sort if it comes up, and which approach you will use.
- Pull up the Zoho Catalyst datastore mental model. Set, Get, Unset, Count, Begin, Commit, Rollback. The transaction stack is the only non-obvious part. Have a one-line picture in your head before you walk in.
- Re-read your last three pattern-printing solutions. Loop bounds are the single biggest source of off-by-one rejections in Zoho R3.
How the AI behaves
- Probes every claim. Asks for the underlying loop logic, not the headline algorithm name. If you say merge sort, the next question is why that and not quick sort here.
- No mid-interview praise. Will not say great answer or perfect or strong attempt. Will acknowledge specifically what you did, then push deeper.
- Interrupts on code-before-approach. If you reach for the cursor before stating the approach, the Senior Engineer says stop, tell me the approach first.
- Pushes back with what if I gave you input X. After every worked example, expect a new input value and a request to trace it on the canvas without rewriting.
- Rejects done without a dry-run. If you say I am done without writing three test inputs on the canvas, including an edge case like empty or single-element, Karthik asks you to dry-run before moving on.
Common traps in this type of round
- Loop-bound off-by-one on the diagonal pattern. Treating the last row as length one when it should be a single starting number with no gap. The trace on n equals fifteen exposes this.
- String expansion with library calls. Reaching for split or replace when the rule is in-place, no built-in functions. Plan the character-and-digit pointer pair before coding.
- Commit case treated as no-op. Implementing Set Get Unset cleanly then leaving Commit as just discard the rollback stack. The interviewer always asks for the commit-case optimisation and expects you to talk about nested transactions.
- Silence under pushback. Going quiet when asked what if I gave you n equals fifteen. The evaluator scores the diagnostic narration, not whether your first draft was right.
- Treating the canvas as final code. Refusing to cross out and patch. Saying done before listing test inputs. The canvas is a first draft; the conversation is the artifact.
- Optimising for finishing speed. Racing through all three problems with no narration. Evaluators have rejected candidates who finished early but could not explain why their solution was correct.
Sample problems you'll face
The 3 problems below are the same ones you'll work through in the live session — no surprises. Read the constraints carefully; the AI persona will refer you to the on-canvas card by problem number.
- 1Diagonal Descending Pattern
Given an integer n, print a diagonal descending pattern of numbers from 1 up to n. Each row contains a descending diagonal of values.
Example inputn = 10Example outputRow 1: 1, 3, 6, 10 Row 2: 2, 5, 9 Row 3: 4, 8 Row 4: 7- 1 <= n <= 50
- No external libraries. Loops, arrays only.
- Use the canvas to sketch your logic, draw, write pseudocode, or freehand whatever helps you think. The AI sees what you draw.
- 2In-Place String Expansion
Take a string where each character is followed by a digit specifying how many times to repeat that character, and produce the expanded string. No split, replace, or built-in expansion library calls.
Example inputa1b2c3Example outputabbccc- Input alternates character then digit, always paired.
- Digit is single-digit, 1 to 9.
- Solve with a character-and-digit pointer pair, not regex or library helpers.
- 3Key-Value Store with Nested Transactions
Design a key-value store supporting Set, Get, Unset, Count, Begin, Commit, and Rollback. Begin starts a transaction. Rollback undoes everything since the most recent Begin. Commit merges everything since the most recent Begin into the parent scope. Nested Begins must be supported.
Example inputSET a 10 / GET a / BEGIN / SET a 20 / GET a / ROLLBACK / GET aExample output10 / (sets) / 20 / 10- Operations: SET key value, GET key, UNSET key, COUNT value, BEGIN, COMMIT, ROLLBACK.
- Nested Begins: Commit folds into parent scope, not into global.
- Count returns the number of keys whose current value equals the argument.
Interview framework
You will be scored on these 6 dimensions. The full rubric with definitions is below.
What we evaluate
Your final scorecard breaks down across these dimensions. The full rubric and tier criteria are revealed inside the interview itself.
- Zoho R3 Approach-First Whiteboard Discipline22%
- Generalisation Under Input Pushback20%
- Edge Case Proactivity (Empty, Single, Digit-Zero)16%
- Big O Narration and Defence14%
- Modular Design on Commit Rollback Key-Value Store16%
- Reflective Self-Awareness on Round Close12%
Common questions
Sources this interview is built on
Real candidate-report URLs (Glassdoor / AmbitionBox / PrepInsta / GeeksforGeeks / Medium) reviewed when authoring the questions, persona, and rubric. Verify the realism yourself.
- GitHub pradeepkumar24rk Zoho Round 3 Questionsgithub.com
- Zoho Interview Set 3 On-Campus GeeksforGeeksgeeksforgeeks.org
- Zoho Interview Pattern Printing Srishankar Mediummedium.com
- Zoho Off-Campus Software Developer 2024 GeeksforGeeksgeeksforgeeks.org
- Zoho Advanced Coding PrepInstaprepinsta.com
- Zoho Corporation Recruitment Process GeeksforGeeksgeeksforgeeks.org
- ACET Placements Pageacet.edu.in