VISA | Software Engineer | Experienced | Reject
Summary
I interviewed for a Software Engineer position at Visa, which involved three rounds covering data structures & algorithms, in-depth Java and system design, and a techno-managerial discussion. Unfortunately, I was rejected after the process, though I found the experience overall positive.
Full Experience
My interview process at Visa for a Software Engineer role consisted of three distinct rounds, each conducted on separate days.
Round 1: Data Structures & Algorithms (1 hour)
This round focused on typical DSA problems. I was asked to solve two problems:
- Print the top view of a binary tree.
- A medium-level LeetCode question, the specifics of which I don't recall.
Round 2: Technical Deep Dive & System Design (2.5 hours)
Although scheduled for an hour, this round extended to two and a half hours, making it quite stressful. Given my approximately six years of experience in Java, the interview delved heavily into Java internals, including specific method and constructor signatures. A significant portion was dedicated to a system design challenge: designing a system to efficiently handle and process a large volume of transaction data files in parallel, grouping them into other files, and considering optimal storage and processing strategies. I managed to answer enough to advance, despite not remembering the exact details of my solution.
Round 3: Techno-Managerial (45 minutes)
This was a techno-managerial discussion. I answered most questions confidently, except for one crucial scenario-based question that I should have easily handled. I was asked: 'If you have to code up a feature which could break and we need a safety net to bypass it without code change, how would you handle that?' This is something I encounter daily, but the answer (using a configuration flag) simply didn't come to mind at the moment. Apart from that oversight, I felt the round went okay.
Overall, it was a good experience, and the HR team was very friendly and prompt. Despite my efforts, I was ultimately rejected. I am now preparing for future opportunities.
Interview Questions (3)
Given a binary tree, print the nodes that are visible from the top view of the tree. This means that if you look at the tree from the top, the nodes that you would see are to be printed.
Design a system capable of handling a large number of files containing transaction data. This system needs to process these files in parallel, group the processed data into other files, and demonstrate efficient strategies for storage and overall processing. Consider aspects like scalability, fault tolerance, and data integrity.
Imagine you have developed a new feature that is about to be deployed. If this feature were to break or cause issues in production, how would you implement a safety net to bypass or disable it without requiring a code change and redeployment? Describe your approach for such a dynamic control mechanism.