Confluent Senior Software Engineer II - Interview Experience (2026) | Rejected
- Posted
- 2 Nov 2026
Summary
I interviewed for a Senior Software Engineer II position at Confluent, completed an online assessment, two coding rounds and a system design round, but ultimately received a rejection.
How it went
Applied directly for a Senior Software Engineer II role at Confluent through IBM careers in Jul 2026. A few weeks later, a recruiter reached out to check whether I was still interested.
I had to apply again through a new job posting shared by the recruiter.
Screening Round - Online Assessment
The OA consisted of two problems: one easy and one medium-hard. I don't remember the exact questions, but one involved basic string manipulation, while the other was a DP problem.
A few days after completing the OA, the recruiter contacted me to check my availability for the two coding rounds. Both rounds were scheduled over the following two weeks.
R1 - Coding 1
The interviewer set expectations upfront: write clean, working code with the validations you'd expect in a production application, including input validation, null checks, and other relevant edge cases. The round had two parts.
Part 1: Validate a Sudoku board
Given an N×N Sudoku board, determine whether it is valid - https://leetcode.com/problems/valid-sudoku/description/
I initially proposed an approach using three 2D arrays, each of size N×10, to track the validity of rows, columns, and sub-boxes.
The interviewer asked whether I could optimize the space usage. I then realized that the same could be achieved using a single 2D array. I explained the trade-offs between the approaches, implemented the optimized solution, and tested it with a few test cases.
Part 2: Implement a Sudoku solver
Using the validation functionality from the previous part, implement a Sudoku solver - https://leetcode.com/problems/sudoku-solver/description/
I explained my approach using recursion and backtracking, implemented it, and tested the solution. Overall, this round went really well.
R2 - Coding 2
Part 1: Implement the Unix tail -N command
Given a file, implement a function to read and print the last N lines.
I initially suggested using a fixed-size queue of capacity N, maintaining the most recent N lines while reading the file sequentially.
The implementation required knowledge of Java's file APIs. I mentioned upfront that I didn't recall the exact API signatures, and the interviewer suggested me to use google and refer the JDK documentation. I did so and was able to implement and test the solution successfully.
Part 2: Optimize for a very large, continuously growing log file
The interviewer then asked how I would optimize the solution for a very large file.
I suggested reading the file backwards in fixed-size chunks instead of scanning it from the beginning. For each chunk, I would count newline characters and continue reading backwards until I had found enough new lines to identify the starting position of the last N lines. Once that offset was identified, I could seek to it and read forward, printing the required number of lines one by one.
Overall, the problem itself wasn't particularly difficult, but it introduced an interesting practical challenge around file I/O and optimization.
A few days later, the recruiter scheduled the next two rounds for the following week.
R3 - System Design 1
Design a temporary email service where email addresses and received emails are valid for only 10 minutes.
As usual, I started with requirements, followed by rough traffic and storage estimates, API design, and the high-level architecture.
Interestingly, the interviewer focused considerably more on the algorithm for generating unique temporary email IDs (the random string generation mechanism) than the other key aspects of the HLD (storage, read optimizations, expiry management etc). I suggested multiple approaches, including cryptographically secure random generation and combinations of word lists with numeric suffixes, while leveraging DB level conditional writes to guarantee uniqueness, while explaining the trade-offs for each. Despite that, I still had a feeling that the interviewer wasn't fully convinced, as he continued probing for some alternative approach.
(I went ahead & researched on this later but couldn't identify an approach that was fundamentally better)
A day later, the next system design round (was already scheduled) got cancelled. It was never rescheduled, and I didn't receive an update. After waiting for about a week, I eventually reached out to the recruiter, only to be informed that the feedback from my previous round was negative and they won't be moving forward.
Overall Experience
Honestly, it was disappointing to spend weeks of effort & yet lose out on what seemed like a good remote opportunity, especially after feeling both the coding rounds and the single design round had gone well. In the end, it did leave a bad taste.
I'm still not entirely sure what the interviewer was looking for in the system design round. But that's how interviews end up sometimes.
Anyways, I hope this helps others in future!
Questions asked (5)
- 01
Validate Sudoku Board
Data Structures & Algorithms · Easy
Open the problemGiven an N×N Sudoku board, determine whether it is valid.
- 02
Sudoku Solver
Data Structures & Algorithms · Hard
Open the problemUsing the validation functionality from the previous part, implement a Sudoku solver.
- 03
Implement Unix tail -N command
Data Structures & Algorithms · Medium
Given a file, implement a function to read and print the last N lines.
- 04
Optimize tail for very large, continuously growing log file
Data Structures & Algorithms · Hard
How would you optimize the tail solution for a very large, continuously growing log file?
- 05
Design Temporary Email Service
System Design
Design a temporary email service where email addresses and received emails are valid for only 10 minutes.