VISA OA || SSE || CodeSignal
SDE IIVisa Online Assessment(code signal round) questions and experience
visa codesignal 17/11/2025 - failed
My Visa CodeSignal Experience (Bangalore November 2025)
VISA Summer internship OA-On campus
Summer internship8 more experiences below
Summary
I applied for an SSE position at VISA and received a CodeSignal Online Assessment. The OA consisted of four challenging questions, and I was unable to solve all of them, leading me to believe I have been rejected.
Full Experience
I applied for a Software Staff Engineer (SSE) position at VISA and was invited to take a CodeSignal Online Assessment. The assessment presented a set of four distinct coding challenges.
I managed to solve the first two questions within a reasonable time; the first took only about 2 minutes. The second question, which involved time parsing, took approximately 30 minutes due to the necessary formatting and careful handling of edge cases.
The third question, however, proved to be quite difficult, particularly with the padding requirements for newspaper paragraph formatting, and I couldn't complete it. By the time I reached the fourth question, I was out of time due to struggling with the previous one. I didn't even attempt the last problem but realized it wasn't straightforward.
Observing that many other candidates reportedly received easier OAs and solved all questions, I anticipate a rejection.
Interview Questions (4)
Given an array of numbers and some scores, if the scores addition from 0th index till the current index exceeds or equals a target score, return the index, else return -1.
Given a series of time stamps in chronological order in HH:MM format, representing bus departures. Given the current time in HH:MM format, return the time of the bus that departed before the current time. If there is no bus that departed before the current time, return -1.
Given a paragraphs array and a width limit, print the paragraphs on the newspaper. Padding needs to be added based on even or odd spaces left. Also, add * around the answer array for aesthetics (Stupid req).
You have visited islands but forgot the order in which you visited. You are given edges, for example [1,2] which means island 1 and 2 were visited consecutively. Not necessary 1 was visited before 2. So given such edges try to form an ascending or descending order of islands that were visited.
Example input: [1,2], [2,3], [4,5], [1,5]
Example output: 4,5,1,2,3.
Summary
I recently completed my CodeSignal online assessment for Visa, which consisted of four coding challenges. I prioritized solving the easier problems first, then tackled the medium one, and finally dedicated time to the hard question.
Full Experience
I just completed my CodeSignal round for Visa. It had 4 questions: two easy, one medium, and one hard. My strategy was to quickly solve the easy ones first, then move to the medium, and finally spend as much time as possible on the hard one. I successfully completed the first two easy questions (Q1 and Q2), then proceeded to the medium one (Q4), and concluded with the hard question (Q3).
Interview Questions (4)
Given a string, count the number of triplet substrings where the first and last characters are the same. A triplet substring implies a contiguous substring of length 3.
Input -> Outputtext = "" -> 0text = "abc" -> 1text = "abcxccc" -> 2
Given an array of integers, keep adding each digit of the numbers until its one digit (digital root). Return the max of each of these results.
Example:[123, 456, 789, 101]
# first round -> 1+2+3, 4+5+6, 7+8+9, 1+0+1 -> 6, 15, 24, 2
# second round -> 6, 1+5, 2+4, 2 -> 6, 6, 6, 2
# max = 6 -> output = 6
There are N centers, each with a fixed processing capacity.
A log of events arrives:
"PACKAGE"→ send 1 package to the next open center (cyclic order).- A center can handle only
capacity[i]packages before needing a reset. "CLOSURE j"→ centerjbecomes permanently closed.
After attempting a full rotation (i.e., checking all centers without finding one with remaining capacity), → reset all open centers to full capacity.
Return the index of the center that processed the most packages.
If tied → return the highest index.
Example:
centerCapacities = [1,2,1,2,1]dailyLog = [ "PACKAGE", "PACKAGE", "CLOSURE 2", "PACKAGE", "CLOSURE 3", "PACKAGE", "PACKAGE" ]Output:
1A sawtooth subarray is a contiguous sequence where parity strictly alternates between even and odd.
Count how many such subarrays exist (length ≥ 1).
Input: [1,3,5,7,9]
Output: 5
# Only single-element subarrays qualify (all odd → no alternation)
Input: [1,2,1,2,1]
Output: 15
# Entire array alternates → all subarrays are valid (n*(n+1)/2)
Input: [1,2,3,7,6,5]
Output: 12
# Alternation breaks at (3,7)
Summary
I recently took a Codesignal assessment for Visa and unfortunately did not pass. I encountered two specific coding problems, and I'm sharing them to help others prepare.
Full Experience
I just completed the Codesignal assessment for Visa and failed. I want to share the exact questions I received to help others who are preparing for this assessment. I hope this helps you.
Interview Questions (2)
Given a string text, count the number of substrings of length 3 where the first and last characters are the same.
Examples:
text = ""->0text = "abc"->1(for "abc")text = "abcxccc"->2(for "abc" and "ccc")
Given a list of numbers readings, for each number, repeatedly add its digits until the result is a single digit (its digital root). Finally, return the maximum digital root found among all numbers in the list.
Example:
readings = [123, 456, 789, 101]First round of sums:- 123 -> 1+2+3 = 6
- 456 -> 4+5+6 = 15
- 789 -> 7+8+9 = 24
- 101 -> 1+0+1 = 2
- 6 (stays 6)
- 15 -> 1+5 = 6
- 24 -> 2+4 = 6
- 2 (stays 2)
[6, 6, 6, 2]. The maximum is 6.Summary
I recently completed the Visa CodeSignal test in Bangalore in November 2025 and wanted to share the four coding questions asked to help others prepare. The test consisted of easy to medium Data Structures and Algorithms problems.
Full Experience
I recently took the Visa CodeSignal test, hoping to share my experience and the questions I encountered to help others preparing for similar assessments. The test was conducted for a role in Bangalore in November 2025.
The CodeSignal test featured four coding questions, with varying difficulty levels. I've tried my best to recall and explain these questions, though the exact wording or minor details might not be 100% precise.
Overall, I found the test to be on the easier side. My general advice would be to focus on easy to medium level Data Structures and Algorithms problems, particularly those involving arrays, strings, and basic simulation logic.
Interview Questions (4)
You’re given a matrix with cells of different colors (represented by numbers). Each color “grows” simultaneously in all four directions (up, down, left, right) at the same pace. If two adjacent cells have the same color, they pop and turn into 0. You need to determine the final state of the matrix after all the growth and popping are done.
(Something along these lines — not 100% exact, didn’t get much time on this one.)
A straightforward question: Given a student’s mark, return the grade based on the range: 90–100 → A, 80–<90 → B, 70–<80 → C, and so on.
You start at position 0 and are given an endpoint and positions of e-scooters along the line. Each e-scooter can travel exactly 10 units. A person walks until they find an available scooter. If they take one, they must travel exactly 10 points with it. You need to calculate how much total distance the person traveled using scooters.
endpoint = 20
scooters = [7, 4, 14]
Given an array of states [0,0,0,...] and a sequence of operations ["L", "L", "C1", "C10", "L", ...], apply them as follows: "L" → Find the first 0 from the left and flip it to 1. "C<index>" → Flip the value at that index back to 0 (ignore its current value). Finally, return the resulting state as a string, e.g., "10011000".
Preparation Tips
For preparation, I'd recommend focusing on easy to medium difficulty Data Structures and Algorithms questions. Specifically, practice problems involving arrays, strings, and basic simulation techniques. The test wasn't overly challenging, so a solid grasp of these fundamental areas should be sufficient.
Summary
I recently participated in an Online Assessment for a Summer internship role at VISA. The assessment, conducted on CodeSignal, consisted of four coding challenges that I had 70 minutes to complete.
Full Experience
I received information from our placement cell about VISA's Summer internship role on campus. After a couple of reschedules, the Online Assessment (OA) was finally set for October 24th. The OA was conducted on CodeSignal and comprised 4 questions, totaling 600 marks, with a time limit of 70 minutes. We received the access link a day prior but were required to take the assessment at the scheduled time in our college lab.
Interview Questions (4)
Given an integer n, print a square pattern where the outer border is formed by asterisks (*) and the inner part is filled with hyphens (-). For n=4 the output should be:
****
*--*
*--*
****
Given a list of strings, for each string, reverse it only if both its first and last characters are vowels. The first and last vowel characters themselves should remain in their original positions. If the condition is not met, the string should remain unchanged.
Examples:
Input: ["abcde", "acvbn", "Etuilo"]
Output: ["adcbe", "acvbn", "Eliuto"]
Given an array of numbers, find the total count of 'soowath' subsequences. A subsequence is 'soowath' if it consists of numbers with alternating parity (odd, even, odd, ...) OR if all numbers are odd OR if all numbers are even.
Examples of 'soowath' sequences:
- 1 2 3 4 (alternating)
- 1 3 5 7 (all odd)
- 2 3 4 7 (alternating)
- 4 8 2 6 (all even)
Examples of NON-'soowath' sequences:
- 1 2 4
- 2 3 5
For input = [1, 2, 3, 4], the output should be 10. The 'soowath' subsequences are: (1), (1,2), (1,2,3), (1,2,3,4), (2), (2,3), (2,3,4), (3), (3,4), (4).
The constraint is 10^5, requiring a linear time complexity solution.
Summary
I recently completed Visa's Online Assessment for a 2-month SDE Intern position. The assessment involved four coding challenges, from which I successfully solved three completely and made good progress on the remaining one, achieving a score of 531 out of 600. I am now awaiting the results of this round.
Full Experience
I had the opportunity to participate in Visa's campus recruitment drive for a 2-month SDE Intern role, which included an Online Assessment. The OA was structured with a 70-minute time limit and presented four distinct coding problems: two easy, one medium, and one hard. I focused my efforts on solving each problem efficiently. I managed to fully solve three of the four questions within the time limit and made substantial progress on the fourth one. My final score for the assessment was 531 out of a possible 600. I'm currently in the process of waiting for an update regarding the next stages of the interview.
Interview Questions (4)
Return the sum of elements in the array that are greater than both of their neighbors.
Given two sorted arrays representing departure times of two spaceships and an integer mission, find the time required to complete the mission.
(For each element in array1, pick the next greater element from array2. Repeat this mission times and return the end time).
Very similar to LeetCode 68. Text Justification, but instead of left-aligning words, we had to center-align them.
(Implementation heavy).
Given an array nums and an integer k, find the number of contiguous subarrays that contain at least k distinct elements.
(Note: repeated elements in a subarray don’t count as distinct).
Summary
I recently interviewed for a Senior Data Scientist position at Visa in Bengaluru. This post shares learnings and specific SQL and Python coding questions from the first round of the interview.
Full Experience
Visa SDS Interview – Round 1 Learnings and Questions
Hey! Recently I interviewed for an SDS (Senior Data Scientist) position at Visa. The first round comprised of coding questions testing SQL and Python. Sharing some learnings and questions for the same below.
SQL Question
You are given the following tables:
1. WatchedMovies
| movie_id | genre |
|---|---|
| 1 | Action |
| 2 | Comedy |
| 3 | Action |
| 4 | Drama |
2. MovieActors
| movie_id | actor_id |
|---|---|
| 1 | 10 |
| 1 | 11 |
| 2 | 12 |
| 3 | 10 |
3. GenreActors
| genre | actor_id |
|---|---|
| Action | 10 |
| Comedy | 12 |
| Drama | 13 |
| Action | 11 |
4. Actors
| actor_id | age |
|---|---|
| 10 | 45 |
| 11 | 50 |
| 12 | 30 |
| 13 | 60 |
Problem Statement
Write a SQL query to find the actors you would be interested in based on your favorite genre — the genre for which you have watched the most movies.
Return their actor_id and age, sorted by age in descending order.
Python Question
You are given:
- A list of valid words that can be used as variable names in a programming language.
- A string written in CamelCase format, which may or may not start with a capital letter.
Task
Write a function that determines whether the CamelCase string can be split into individual words such that all resulting words exist in the provided list of valid words.
The function should be case-insensitive.
Example
Input
valid_words = ["my", "variable", "name", "parse", "json", "data"]
Interview Questions (2)
You are given the following tables:
1. WatchedMovies
| movie_id | genre |
|---|---|
| 1 | Action |
| 2 | Comedy |
| 3 | Action |
| 4 | Drama |
2. MovieActors
| movie_id | actor_id |
|---|---|
| 1 | 10 |
| 1 | 11 |
| 2 | 12 |
| 3 | 10 |
3. GenreActors
| genre | actor_id |
|---|---|
| Action | 10 |
| Comedy | 12 |
| Drama | 13 |
| Action | 11 |
4. Actors
| actor_id | age |
|---|---|
| 10 | 45 |
| 11 | 50 |
| 12 | 30 |
| 13 | 60 |
Problem Statement
Write a SQL query to find the actors you would be interested in based on your favorite genre — the genre for which you have watched the most movies.
Return their actor_id and age, sorted by age in descending order.
You are given:
- A list of valid words that can be used as variable names in a programming language.
- A string written in CamelCase format, which may or may not start with a capital letter.
Task
Write a function that determines whether the CamelCase string can be split into individual words such that all resulting words exist in the provided list of valid words.
The function should be case-insensitive.
Example
Input
valid_words = ["my", "variable", "name", "parse", "json", "data"]
Summary
I experienced an interview with Visa for a Sr. Data Engineer role. The process involved a Code Signal assessment, a challenging coding round featuring specific LeetCode problems (Parallel Courses II, Non-overlapping Intervals, Minimum Moves to Equal Array Elements II), and theoretical questions on Java and Spark, ultimately leading to a rejection.
Full Experience
I submitted multiple applications through different job portals, and one of the recruiters contacted me on my mobile.
Background:
YOE: 2.5 years, Currently working at a PBC
Round 1 : Code Signal Assesment (70 min)
This consisted of 4 DSA problems. I don't remember the exact questions, but the first two were easy, the third was of medium difficulty, and the fourth was medium to hard.
Round 2 : Coding Skills - Data Structures - Problem Solving (45 min)
https://leetcode.com/problems/parallel-courses-ii/description/
https://leetcode.com/problems/non-overlapping-intervals/description/
https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/description/
I think the interviewer had quite high expectations. I wasn't able to solve the first question. He was expecting a direct solution within 5 minutes as if I had solved the question earlier, not giving enough time to think through (After the interview, I looked up the solution and realized that I wouldn’t have been able to solve that question even with the full 45 minutes.). When he realized I couldn't solve the first question, he asked the next two questions.
After the DSA problems, moved on to some theoretical questions about Java and Spark. I don’t remember all of them, but a few included:
- Checked and Unchecked Exceptions in Java
- IOC in Spring
- Drivers and Executors in Spark etc.,
Received a rejection mail almost instantly.
Interview Questions (6)
Explain the difference between Checked and Unchecked Exceptions in Java.
Explain Inversion of Control (IOC) in Spring.
Explain the roles of Drivers and Executors in Apache Spark.
Summary
I applied for a Staff SE (Backend) role at VISA and despite having less experience than required by the job description, I received an Online Assessment link. I cleared the OA, but after discussing compensation, I received a rejection email.
Full Experience
Hi Folks,
Applied for Staff SE (Backend) role at VISA. As per JD, it requires 7.5+ YOE, but somehow I got the OA link.
Currently, SSE @ Walmart having 6 YOE.
College: Tier-3
OA
No. of Questions: 4
#1:
Imagine that you have a time machine. You are given an array years. You start in the year years[0]. Next, you need to travel to years[1], then to years[2], and so on. Your task is to calculate the time required to visit all the years from the list in order.The time required to travel from the year a to the year b is calculated as follows:
- 0 hours if A == B
- 1 hour if A < B (going forwards in time)
- 2 hours if A > B (going backwards in time)
Example:
For years = [2000,1990,2005,2050], the output should be solution(years) = 4. First you go from 2000 to 1990, which requires 2 hours. Then you go from 1990 to 2005, which requires 1 hour. Then you go from 2005 to 2050, which requires 1 hour. In total, you need 2 + 1 + 1 = 4 hours.
For years = [2000,2021,2005], the output should be solution(years) = 3.
Solution:
public int solution(int[] years) {
int totalTime = 0;
for (int i = 1; i < years.length; i++) {
if (years[i] == years[i - 1]) {
totalTime += 0;
} else if (years[i] > years[i - 1]) {
totalTime += 1;
} else {
totalTime += 2;
}
}
return totalTime;
}
#2:
You are given two positive integers a and b as strings, and your task is to return a string of their digit-wise sums.Add every 'i'th digit of the first string to the 'i'th digit of the second string, both counted from the end. If the 'i'th digit of one of the strings is absent, its sum will be the 'i'th digit of the other string. Return a string of those sums concatenated with each other.
Example: For a = "99" and b = "99", the output should be solution(a, b) = "1818". The sums of both, the first and the second numbers are 18, so the answer is 1818.
For a = "11" and b = "9", the output should be solution(a, b) = "110". The sum of the first numbers from the end is 10, and the sum of the second numbers from the end is 1, so the answer is 110.
Solution:
public static String solution(String a, String b) { StringBuilder result = new StringBuilder(); int maxLength = Math.max(a.length(), b.length());for (int i = 0; i < maxLength; i++) { int digitA = (i < a.length()) ? a.charAt(a.length() - 1 - i) - '0' : 0; int digitB = (i < b.length()) ? b.charAt(b.length() - 1 - i) - '0' : 0; int sum = digitA + digitB; result.insert(0, sum); } return result.toString();
}
#3:
You're given an array of integers representing fruits on a conveyor belt. Your goal is to count how many contiguous subarrays have at least k non-overlapping identical fruit pairs. A pair is formed when two of the same fruit appear in the subarray, and each fruit can be part of only one pair within that subarray.
For example, in the array [1, 3, 3, 1] with k = 1, the valid subarrays include [1, 3, 3], [3, 3, 1], [1, 3, 3, 1], and [3, 3]—each containing at least one valid pair.
Solution:
public static int solution(int[] fruits, int k) { int n = fruits.length; int count = 0;for (int start = 0; start < n; start++) { Map<Integer, Integer> freq = new HashMap<>(); int pairs = 0; for (int end = start; end < n; end++) { int fruit = fruits[end]; freq.put(fruit, freq.getOrDefault(fruit, 0) + 1); // If the count of a fruit reaches an even number, it means a new pair is formed. if (freq.get(fruit) % 2 == 0) { pairs++; } if (pairs >= k) { count++; } } } return count;
}
#4:
You are managing a network of distribution centers that handle package deliveries. Each center has a different capacity and must process a certain number of packages before needing a reset.You are given an array of integers 'centerCapacities' where centerCapacities[i] is a value between 1 and 5 representing the maximum number of packages that the i-th distribution center can process before requiring maintenance.
You are also given an array of strings 'dailyLog' where dailyLog[i] can be one of the following:
- "PACKAGE" - a new package arrives for processing
- "CLOSURE <j>" - the j-th distribution center temporarily closes for renovations
Packages are sent to centers in sequential order - each center processes as many packages as it can based on its capacity defined by centerCapacities[i] before packages are sent to the next available center. After a complete rotation through all centers (returning to center 0), the capacity of all operational centers is restored to full, but closed centers remain unavailable.
Notes: The distribution system bypasses any closed centers when allocating packages. You can assume at least one center remains operational throughout the process.
Return the index of the distribution center that processed the most packages. If multiple centers processed the same maximum number of packages, return the center with the highest index.
Partially solved this.
Got response from recruiter that OA is cleared. Recruiter asked for expected comp etc and I asked for 45 base. Next day, received rejection mail.
#visa #oa
Interview Questions (4)
Imagine that you have a time machine. You are given an array years. You start in the year years[0]. Next, you need to travel to years[1], then to years[2], and so on. Your task is to calculate the time required to visit all the years from the list in order.
The time required to travel from the year a to the year b is calculated as follows:
1. 0 hours if A == B
2. 1 hour if A < B (going forwards in time)
3. 2 hours if A > B (going backwards in time)
Example:
For years = [2000,1990,2005,2050], the output should be solution(years) = 4.
First you go from 2000 to 1990, which requires 2 hours.
Then you go from 1990 to 2005, which requires 1 hour.
Then you go from 2005 to 2050, which requires 1 hour.
In total, you need 2 + 1 + 1 = 4 hours.
For years = [2000,2021,2005], the output should be solution(years) = 3.
You are given two positive integers a and b as strings, and your task is to return a string of their digit-wise sums.
Add every 'i'th digit of the first string to the 'i'th digit of the second string, both counted from the end. If the 'i'th digit of one of the strings is absent, its sum will be the 'i'th digit of the other string. Return a string of those sums concatenated with each other.
Example:
For a = "99" and b = "99", the output should be solution(a, b) = "1818".
The sums of both, the first and the second numbers are 18, so the answer is 1818.
For a = "11" and b = "9", the output should be solution(a, b) = "110".
The sum of the first numbers from the end is 10, and the sum of the second numbers from the end is 1, so the answer is 110.
You're given an array of integers representing fruits on a conveyor belt. Your goal is to count how many contiguous subarrays have at least k non-overlapping identical fruit pairs. A pair is formed when two of the same fruit appear in the subarray, and each fruit can be part of only one pair within that subarray.
For example, in the array [1, 3, 3, 1] with k = 1, the valid subarrays include [1, 3, 3], [3, 3, 1], [1, 3, 3, 1], and [3, 3]—each containing at least one valid pair.
You are managing a network of distribution centers that handle package deliveries. Each center has a different capacity and must process a certain number of packages before needing a reset.
You are given an array of integers 'centerCapacities' where centerCapacities[i] is a value between 1 and 5 representing the maximum number of packages that the i-th distribution center can process before requiring maintenance.
You are also given an array of strings 'dailyLog' where dailyLog[i] can be one of the following:
1. "PACKAGE" - a new package arrives for processing
2. "CLOSURE <j>" - the j-th distribution center temporarily closes for renovations
Packages are sent to centers in sequential order - each center processes as many packages as it can based on its capacity defined by centerCapacities[i] before packages are sent to the next available center. After a complete rotation through all centers (returning to center 0), the capacity of all operational centers is restored to full, but closed centers remain unavailable.
Notes:
The distribution system bypasses any closed centers when allocating packages.
You can assume at least one center remains operational throughout the process.
Return the index of the distribution center that processed the most packages. If multiple centers processed the same maximum number of packages, return the center with the highest index.
Summary
I, with 1.10 years of experience, applied for an SDE 1 role at Visa. The interview process included an Online Assessment (OA), a coding round, and a technical discussion. I faced challenges in providing an optimized solution for the 3-sum problem and some conceptual Java questions, ultimately leading to a rejection.
Full Experience
Current Experience: 1.10 Years
College: Tier-2
Previous Organization: One of the MNCs
Applied through portal.
OA
The Online Assessment included the following problems:
1st Round (Coding)
This round involved coding questions.
2nd Round (Technical Discussion)
AGENDA: Focus areas for SWE framework Coding Quality Engineering Fundamentals Collaborate as OneVisa/Execute
Questions covered:
- Spring boot annotations - controller, service, transactional
- Autowiring - what it is? How it works?
- SQL vs NoSQL - vertical scaling vs horizontal scaling
- Pass by reference and pass by value
- Static vs non static
- 2-sum problem
- 3-sum problem
During writing code, the interviewer was asking questions like "why you used this and that type of questions."
SQL questions:
-
Problem: print number of students in each dep where cgpa > 9
My query:
select Dep, count(*) as count from student group by Dep having cgpa > 9; -
Problem: duplicate row in the table
My query:
select * from student groupby studentId having count(*) > 1;
Outcome:
I was not able to provide an optimized solution for the 3-sum problem. I gave an N^2+NlogN solution and he was expecting an N^2 solution only.
I was also not able to provide correct answers for a few conceptual Java questions.
Verdict: rejected.
Other interview experience: https://leetcode.com/discuss/post/6834384/all-interview-experiences-switch-journey-vpu1/
Interview Questions (11)
Discuss Spring Boot annotations such as @Controller, @Service, and @Transactional.
Explain what autowiring is in Spring and how it works.
Compare SQL and NoSQL databases, discussing their differences in terms of vertical and horizontal scaling.
Explain the concepts of pass by reference and pass by value in programming.
Explain the difference between static and non-static members (variables and methods) in object-oriented programming.
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
Given an integer array nums, return all the triplets [nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k, and nums[i] + nums[j] + nums[k] == 0.
Given a student table with StudentId, Name, Dep, CGPA, write a SQL query to print the number of students in each department where CGPA is greater than 9.
Given a student table with StudentId, Name, Dep, CGPA, write a SQL query to find duplicate rows based on StudentId.
Summary
I was selected for a Software Engineer role at Visa in Bangalore after completing a CodeSignal assessment, two technical interviews focusing on DSA and system design, and a hiring manager round covering behavioral aspects.
Full Experience
About Me
- Education: B.Tech in ECE from NIT (2024 Graduate)
- Years of Experience: 10 months at a product-based startup
Round 1: CodeSignal Assessment
- Format: 4 coding questions
- 1 Easy
- 1 Medium
- 1 Medium-Hard
- 1 Hard
- Outcome: Solved all of them successfully.
Round 2: Technical Interview (20th May)
- Type: Purely discussion-based (Approx. 1 hour)
- What Happened:
- Deep dive into resume and past work (~30 mins)
- Detailed discussion on projects and contributions at the current company
- For example, when Kafka was mentioned:
- Why Kafka?
- Alternatives?
- Architecture-level questions and trade-offs
- For example, when Kafka was mentioned:
- 1 DSA Question:
- Problem: Given a log file with timestamps and IPs, rate-limit IPs making more than x requests in a 10-minute window.
- Started with: What is a DDoS attack? How to prevent it?
- Approach discussed: Sliding Window
- Follow-up: What if the log file is in GBs?
- Suggested solution: Use external sorting to process large-scale data
Round 3: Technical Interview (22nd May)
- Deep dive into resume, tech stack, and projects (~40 mins)
- Detailed questions on:
- Project architecture
- Tech stack decisions
- Work at the current company
- Detailed questions on:
- DSA Question:
- A variation of the Aggressive Cows problem (SPoJ – AGGRCOW)
- Required applying binary search on answers. Wrote code with all edge cases covered.
Round 4: Hiring Manager Round (26th May)
- Got grilled on resume and system design (~40 mins)
- In-depth discussion on:
- Work done at current company
- System architecture choices
- Scalability and performance trade-offs
- Used Excalidraw to draw and explain architecture
- In-depth discussion on:
- Behavioral Questions covering collaboration, ownership, decision-making
- Ended with me asking questions about the team, role expectations, and future direction
- Received positive feedback the next day.
Interview Questions (2)
Given a log file with timestamps and IPs, implement a rate-limiter that blocks IPs making more than x requests within any 10-minute sliding window. The interview started with questions about DDoS attacks and prevention. A follow-up asked how to handle log files in GBs.
A variation of the Aggressive Cows problem, requiring the application of binary search on answers.
Summary
I shared my virtual interview experience with Visa for an SDE-1 role, which consisted of 4 rounds: an online coding test, two technical interviews, and a hiring manager round.
Full Experience
Hi all, I just wanted to share my Visa interview experience with you all. Total it had 4 rounds.
Current experience : 1 year 10 months Current title : SDE-1
1st round - Online coding test on Codesignal. 2nd round - First technical interview. 3rd round - Second technical interview 4th round - HM round.
1st round :
I dont exactly remember the questions but the first 2 problems are gonna be easy level questions. 3rd question would be medium to hard. 4th question would be hard to tackle.
2nd round : First technical interview was scheduled where a question on graphs was there.
Question : You have been given a list of Strings where the logic of building adjacency list would be using the first and last letters of the string. For example : "abc","def","cfg","gza" Then abc is connected to cfg because the last letter of string abc is c and the first letter of cfg is 'c'.
The question was to find a cycle whether it exists in this graph or not.
3rd round : Second technical interview was scheduled right after the second round on the same day itself.
Question : Given String in the input with source and destination cities. For example : "Mumbai" -> "Bangalore", "Goa" - > "Dehradun", "Calcutta"->"Mumbai", "Dehradun"->"Calcutta"
Here i had to find the source station starting from any city, that would complete the travel of all the cities mentioned. i.e. the answer for this question would be "Goa"->"Dehradun","Dehradun"->"Calcutta", "Calcutta"->"Mumbai", "Mumbai"->"Bangalore" Here i am able to visit all the cities and this is the only possible answer for this question.
I told the graph approach using DFS, but there is also one HashSet approach to this.
4th round : Last round was conducted by the hiring manager, he asked some behavioural questions and just wanted to check if I wanted to learn and grow in my career.
That's all for this interview experience.
Interview Questions (2)
You have been given a list of Strings where the logic of building adjacency list would be using the first and last letters of the string. For example : "abc","def","cfg","gza" Then abc is connected to cfg because the last letter of string abc is c and the first letter of cfg is 'c'. The question was to find a cycle whether it exists in this graph or not.
Given String in the input with source and destination cities. For example : "Mumbai" -> "Bangalore", "Goa" - > "Dehradun", "Calcutta"->"Mumbai", "Dehradun"->"Calcutta" Here i had to find the source station starting from any city, that would complete the travel of all the cities mentioned. i.e. the answer for this question would be "Goa"->"Dehradun","Dehradun"->"Calcutta", "Calcutta"->"Mumbai", "Mumbai"->"Bangalore" Here i am able to visit all the cities and this is the only possible answer for this question.
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.