Summary
I recently participated in the UBS Online Assessment for 2025 in India. The assessment featured a challenging algorithmic problem focused on IP request validation, incorporating both blacklist matching and rate limiting rules.
Full Experience
I recently sat for the UBS Online Assessment in India, aiming for a position in the 2025 batch. The assessment primarily tested my problem-solving abilities, and one of the core questions presented involved implementing a sophisticated firewall system. This system needed to validate incoming IP requests against a dynamic blacklist, which included wildcard patterns, and also enforce rate limiting to prevent an excessive number of requests from a single IP within a short timeframe. It was a comprehensive problem that required careful consideration of both string matching and time-window based data management.
Interview Questions (1)
You are developing a firewall software and need to block certain requests based on blacklisted IP addresses and request history. There are two conditions for blocking a request:
Rule 1: Blacklist Match
- If the IP address matches any of the blacklisted IP patterns, the request should be blocked.
- A blacklisted IP pattern may contain a * wildcard, which matches zero or more characters.
Rule 2: Too Many Requests
- If an IP address has made two or more unblocked requests in the last 5 seconds, the request should be blocked.
You are given:
- A list of blacklisted_ips, where each element is a string (possibly with *)
- A list of requests, where each element is an IP string (the index represents the timestamp in seconds, i.e. requests[i] occurs at time i)
Task: Implement the following function: validate_requests(blacklisted_ips, requests)
Return a list of integers where:
- 1 means the request is blocked
- 0 means the request is allowed
Example: blacklisted_ips = ["45.*", "123.45.67.89", "*.100"] requests = [ "45.1.2.3", "123.45.67.89", "99.99.99.100", "10.10.10.10", "10.10.10.10", "10.10.10.10", "10.10.10.10", "99.99.99.100" ] Output: [1, 1, 1, 0, 0, 1, 0, 1]
Summary
I successfully navigated the UBS on-campus recruitment drive for the 2023 batch, securing an offer. The process involved an initial online assessment, a detailed technical interview focusing on my projects and general CS fundamentals, and a final brief HR discussion.
Full Experience
UBS visited our campus in the last week of August 2022 for the 2023 batch hiring. The entire process consisted of three rounds.
1st Round - In-person Test
This round was conducted in college labs. There were approximately 50 questions to be solved within 1 hour or 1 hour 20 minutes; I don't recall the exact duration. It included 2 DSA questions, one easy and one moderate, while the rest were MCQs covering CS fundamentals like Java, OOP, OS, and aptitude. Those with a strong background in Java performed particularly well.
2nd Round - Technical Interview
After 3-4 days, the technical and HR rounds were scheduled. My technical interview was primarily based on my profile and resume. While some candidates who highlighted DSA faced DSA-oriented questions, I had emphasized my internships and projects, so my questions revolved around the technologies I used.
It was a generalized discussion for me as I only kept skills on my resume that I was highly confident about, such as React, Django, and Java. The interviewers delved into my projects, which I had highlighted in my introduction and CV. They asked about the architectural differences between backend frameworks, client-side vs. server-side rendering, how I stored images in my project (my answer was Cloudinary), how JSX is compiled, and the distinctions between APIs and web services. Additionally, I faced questions related to Java OOPs, specifically Inheritance, and had to analyze pieces of code provided on paper. Towards the end, they asked about B+ trees and indexing and how I applied them in my projects.
The interview lasted for about an hour. I also shared my interest in the financial sector and my past experience investing in equity during my college days, which seemed to impress the interviewers alongside my projects.
3rd Round - HR Interview
This was a quick 5-minute discussion covering standard HR questions like my family background, where I envisioned myself in five years, and my interest in higher studies.
Verdict: Selected
Interview Questions (7)
Discuss the architectural differences between various backend frameworks.
Explain the differences, pros, and cons of client-side rendering versus server-side rendering.
How did you handle image storage in your projects?
Explain the process of how JSX is compiled.
Discuss the differences between APIs and web services.
Questions related to Inheritance concepts in Java Object-Oriented Programming.
Explain B+ trees and indexing, and how they were utilized in your projects.
Preparation Tips
Tips I would give based on my experience:
- Show genuine interest in the Financial sector or at least a willingness to explore and learn about it.
- Regarding higher studies, I'd suggest answering 'No' or being neutral, like 'it depends if opportunity and need arises,' as companies often look for loyal candidates they can invest in long-term.
- It's crucial to study the differences between C++ and Java OOP concepts. There are many contrasting points, and answering based on C++ knowledge in a Java-focused interview can lead to incorrect answers.
- For Java and OOPs, I found Kunal Kushwaha's playlist, particularly the initial 6-8 videos covering Java and OOPs, to be more than sufficient.
Above all, just be honest and confident!
Summary
As a pre-final year student, I successfully navigated the UBS SDE Summer Intern 2023 hiring process in India, culminating in an offer. My journey involved an online assessment covering MCQs and a coding problem, followed by a video interview that delved into my projects, core technical concepts, and behavioral aspects.
Full Experience
I am a pre-final year student from a tier 2 college with no prior work experience, and I secured this opportunity through an on-campus drive. On November 1st, 2022, I registered for the UBS SDE Summer Intern 2023 program, which saw approximately 3000 applicants.
Online Assessment Round
Out of 3000 applicants, about 1500 were selected for the OA, likely based on CGPA and branch. The assessment was held on November 2nd. It consisted of 20-25 MCQs covering CN, DBMS, OS, and DSA, all of easy-moderate difficulty. The coding question was LeetCode easy level: I had to rearrange the bits of one binary input to maximize its XOR with another given binary input.
Interview Round
The OA results were announced on November 5th, and I was among the 40 shortlisted students out of 1500. My video interview with two UBS executives (a Director and an Associate Director) was scheduled for November 9th. The interviewers were incredibly friendly and made me feel very comfortable, even allowing me ample time to rejoin when I faced network issues. The interview began with my self-introduction.
They immediately moved on to the projects listed on my resume. I had a QR-Based Medical Application project built with Flutter (app), React (website), MongoDB, Node.js, and Python, where QR codes identified doctors. They repeatedly asked why I chose Flutter over React for the mobile application and the advantages of using Flutter/React over native options like Java/Swift. I also discussed potential replacements for QR codes for identification, suggesting Face Recognition and Fingerprint scanning, which seemed to satisfy them.
Here are some other questions I was asked:
- Why did you use MongoDB and not SQL?
I explained that I used MongoDB because I was storing hierarchical data. - I see that you have C++ listed as your first skill. Are they sorted in any order or mentioned randomly?
I clarified that I intentionally placed C++ first because it was the language that introduced me to coding in 8th grade, sparking my passion for Computer Science. - What are some languages other than C++ that use the concept of OOPs?
I listed Java, Python, and Javascript. - What are the advantages of using Python?
I mentioned its easy syntax, suitability for beginners, and syntax closely matching natural language. - How is garbage collection in Python different from that of C++?
Initially, I couldn't recall the answer, but the interviewers were very supportive. They gave me hints, specifically mentioning pointers in C++, which helped me remember and correctly answer that Python lacks pointers, necessitating automatic garbage collection. We even shared a fun moment when I got it right. - Explain the concept of Encapsulation.
I don't have my full answer to this written down here.
Towards the end, they moved to HR questions:
- What do you know about UBS as a company?
I was well-prepared, thanks to GFG interview experiences. I discussed its former full form, headquarters location, current CEO, foundation date, what the company does, and even the meaning of the three keys in their logo. This seemed to impress them. - Why do you want to intern at UBS?
I provided my reasons, which they seemed satisfied with.
They also asked some lighter, random questions like my last watched movie/TV series (I admitted I don't watch much) and my favorite guitar chord (as I had mentioned playing guitar). The entire interview went exceptionally well, and I felt hopeful for an offer.
On November 22nd, the final selection results were mailed, and I was among the 16 selected candidates.
Interview Questions (10)
Given two binary inputs, rearrange the bits of the second input such that the XOR of both inputs comes out to be the maximum.
Why did you use Flutter instead of React for the mobile application, and what were the advantages of using Flutter/React instead of Java/Swift?
What could have been the replacement for QR Code for identification purposes?
Why did you use MongoDb and not SQL?
What are some languages other than C++ that use the concept of OOPs?
What are the advantages of using python?
How is garbage collection in python different from that of C++?
Explain the concept of Encapsulation.
What do you know about UBS as a company?
Why do you want to intern at UBS?
Preparation Tips
My preparation largely involved reviewing past UBS interview experiences on GeeksforGeeks. Based on these, I focused heavily on OOPs and Data Structures, studying relevant articles from GFG. I practiced OOPs concepts, including inheritance and operator overloading, and brushed up on DBMS concepts from GFG and W3Schools. Additionally, I used Striver's Sheet for CN and OOPs.