Do you think IIT Guwahati certified course can help you in your career?
No
Introduction
BNY Mellon is a global investment company offering investment management & investment services. It provides many financial solutions to institutions, corporations & individual investors. For someone who is preparing for BNY Mellon interviews, it's important to have a solid understanding of key computer science & software engineering concepts.
In this article, we'll answer some commonly asked technical interview questions at BNY Mellon with proper explanations to help you succeed.
Beginner Level BNY Mellon Interview Questions and Answers
1. Explain the basic principles of object-oriented programming (OOP).
Object-oriented programming is a way of writing code that organizes data & functions into reusable objects. The main principles of OOP are:
Encapsulation: Bundling data & methods into a single unit (class) & controlling access to the inner workings.
Inheritance: Basing a new class on an existing one, inheriting its attributes & methods.
Polymorphism: Objects can take many forms. A child class can define its own unique behaviors & still share the same functionality as the parent class.
Abstraction: Only exposing essential features of an object & hiding complex details. Helps reduce duplication.
2. Explain the difference between a stack & a queue.
Stack
Queue
LIFO (last in, first out)
FIFO (first in, first out)
Push & pop operations
Enqueue & dequeue operations
Insert & delete from the same end
Insert from rear, delete from front
e.g. undo/redo, function calls
e.g. printer jobs, event handling
3. What are the main differences between C++ & Java?
C++
Java
Compiled directly to machine code
Compiled to bytecode & run on a virtual machine
Manual memory management
Automatic garbage collection
Multiple inheritance
Single inheritance
Operator overloading
No operator overloading
Pointers allowed
No explicit pointers
4. What is the difference between HTTP & HTTPS?
HTTP sends data over the network in plain text, while HTTPS encrypts it using SSL/TLS. HTTPS is more secure, especially for sensitive data like passwords & financial info. HTTPS also authenticates the identity of the website to prevent spoofing attacks. But it requires more processing power on the server & client. Most major websites today use HTTPS by default.
5. Explain the concept of inheritance in OOP.
Inheritance allows basing a new class on an existing one. The child class inherits attributes & methods from the parent. For example:
public class Animal {
private String name;
public void eat() {
System.out.println("I am eating.");
}
}
public class Cat extends Animal {
public void meow() {
System.out.println("Meow!");
}
}
You can also try this code with Online Java Compiler
The Cat class inherits the name attribute & eat() method, but adds its own meow() method. Inheritance promotes code reuse & helps model real-world relationships.
6. What is a deadlock & how can it be prevented?
A deadlock happens when two or more threads are waiting on each other to release resources, causing the program to hang. To prevent deadlocks, you can:
Acquire resources in a fixed order to avoid circular waiting.
Timeout if a resource is unavailable for too long.
Use thread-safe data structures.
Keep locks held for short periods.
7. What are system calls?
System calls are the interface between user-level applications and the operating system kernel. They provide a way for programs to request services and resources from the operating system, such as file I/O, process management, memory allocation, and network communication. System calls act as a bridge between the user space and the kernel space, allowing controlled access to privileged operations.
8. Explain the difference between user mode & kernel mode.
Here's the difference between user mode & kernel mode:
User Mode
Kernel Mode
Limited access to memory & instructions
Unrestricted access to hardware & memory
Cannot directly access hardware or reference memory
Can execute any CPU instruction & reference any memory address
If a process crashes, it doesn't crash the whole system
If a process crashes, it can crash the whole system
Examples: user applications, web browsers
Examples: OS kernels, device drivers
Less powerful but more secure
More powerful but less secure
Processes are isolated from each other
Processes can access all system resources
Transitions to kernel mode for privileged operations
Runs privileged code directly
Managed by the OS kernel
Manages user mode processes
9. What do you understand about the software development lifecycle?
The SDLC is the process of planning, designing, developing, testing, & deploying software. The main stages are:
Requirements gathering: Determine the requirements from stakeholders.
Design: Model the architecture, user interface, data structures, etc.
Implementation: Write the actual code.
Testing: Find & fix bugs. Includes unit, integration, & acceptance testing.
Deployment: Install the software in the production environment.
Maintenance: Fix issues & add new features over time.
10. What is OutOfMemoryError?
OutOfMemoryError is a runtime exception which occurs in Java. This usually occurs when Java Virtual Machine (JVM) is not able to allocate more memory to create new objects or store data. It's thrown when the heap space is exhausted. This error mainly indicates that the application has consumed all the available memory which thus leads to performance degradation or the application is crashed.
Intermediate Level BNY Mellon Interview Questions and Answers
11. What is an IP address & how is it used?
An IP address is a unique identifier for a device on a network. There are two standards: IPv4 (32-bit) & IPv6 (128-bit). IPs are used to route data between devices. For example, when you load a website, your device sends a request with the server's IP, & the response is routed back to your device's IP.
Uses of IP addresses are:
Identifying devices on a local network
Routing data across the Internet
Filtering traffic with firewalls
Load balancing across servers
12. How does NAT (Network Address Translation) work?
NAT is a way to map multiple private IP addresses to a single public one. It allows devices on a local network to share a public IP when connecting to the Internet.
Here's how it works:
When a device sends a packet, NAT replaces the private source IP with the router's public IP.
It also replaces the source port with a new one & records the mapping.
The packet is sent to the destination server.
When the server responds, NAT translates the destination IP/port back to the device's private IP/port.
The packet is forwarded to the local device.
13. Explain the differences between REST & SOAP APIs.
REST
SOAP
Representational state transfer
Simple object access protocol
Uses HTTP verbs (GET, POST, etc.)
Uses XML for all messages
Stateless
Can maintain state
Less verbose, smaller message sizes
More verbose, larger messages
Flexible data formats (JSON, XML, etc.)
Only XML
14. Explain how paging & segmentation work in memory management.
Paging & segmentation are techniques to manage memory in an OS.
Paging:
Memory is divided into fixed-size blocks called pages.
Processes are also divided into pages.
The OS maintains a page table that maps virtual pages to physical frames.
When a process requests memory, the OS copies its pages into frames & updates the page table.
Segmentation:
Memory is divided into variable-size segments, one for each module (e.g. code, data, stack).
The OS maintains a segment table with the base address & size of each segment.
When a process requests memory, the OS allocates the segments & updates the segment table.
15. Implement a function to serialize & deserialize a binary tree.
Here's an implementation in Python using preorder traversal:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def serialize(root):
if not root:
return 'None'
return f'{root.val},{serialize(root.left)},{serialize(root.right)}'
def deserialize(data):
def dfs():
val = next(values)
if val == 'None':
return None
node = TreeNode(int(val))
node.left = dfs()
node.right = dfs()
return node
values = iter(data.split(','))
return dfs()
You can also try this code with Online Python Compiler
The serialize function recursively builds a string representation of the tree. The deserialize function splits the string & rebuilds the tree using a preorder DFS.
16. Write a program to find the shortest path in a weighted graph.
Here's an implementation of Dijkstra's algorithm in Python:
import heapq
def dijkstra(graph, start, end):
distances = {node: float('inf') for node in graph}
distances[start] = 0
pq = [(0, start)]
while pq:
current_distance, current_node = heapq.heappop(pq)
if current_distance > distances[current_node]:
continue
for neighbor, weight in graph[current_node].items():
distance = current_distance + weight
if distance < distances[neighbor]:
distances[neighbor] = distance
heapq.heappush(pq, (distance, neighbor))
return distances[end]
You can also try this code with Online Python Compiler
The algorithm maintains a priority queue of nodes to visit & their tentative distances. It repeatedly selects the node with the minimum distance, updates the distances of its neighbors, & adds them to the queue. The final distance to the end node is returned.
17. Describe the differences between TCP & UDP protocols.
TCP
UDP
Connection-oriented
Connectionless
Reliable (retransmits lost packets)
Unreliable (no retransmission)
Ordered (packets arrive in order)
Unordered (packets can arrive out of order)
Error-checked (corrupted packets are detected)
Error-checked (optional)
Slower (more overhead)
Faster (less overhead)
Used for email, web browsing, file transfer
Used for streaming, DNS, VoIP
18. Describe the process of a TCP handshake.
A TCP handshake is the process of establishing a connection between a client & server. It involves three steps:
SYN: The client sends a SYN (synchronize) packet to the server with a random sequence number.
SYN-ACK: The server responds with a SYN-ACK packet, acknowledging the client's SYN & sending its own sequence number.
ACK: The client sends an ACK (acknowledgment) packet, acknowledging the server's SYN.
After this, the connection is established & data can be transmitted. The handshake helps syncronize sequence numbers & ensure a reliable connection.
19. Implement a stack using arrays/linked lists.
Here's an implementation of a stack using a linked list in Python:
class Node:
def __init__(self, val):
self.val = val
self.next = None
class Stack:
def __init__(self):
self.head = None
def push(self, val):
node = Node(val)
node.next = self.head
self.head = node
def pop(self):
if not self.head:
return None
val = self.head.val
self.head = self.head.next
return val
def top(self):
if not self.head:
return None
return self.head.val
def is_empty(self):
return not self.head
You can also try this code with Online Python Compiler
The stack maintains a head pointer to the top element. The push operation creates a new node & inserts it at the head. The pop operation removes the head & returns its value. The top operation returns the head's value without removing it.
20. Implement a function to check if a string is a palindrome.
Here's an implementation in Python:
def is_palindrome(s):
s = ''.join(c.lower() for c in s if c.isalnum())
left, right = 0, len(s) - 1
while left < right:
if s[left] != s[right]:
return False
left += 1
right -= 1
return True
You can also try this code with Online Python Compiler
The function first converts the string to lowercase & removes non-alphanumeric characters. It then uses two pointers to compare characters from both ends, moving inward. If any pair of characters doesn't match, the string is not a palindrome.
Advanced Level BNY Mellon Interview Questions and Answers
21. What are the security features in modern operating systems?
Modern operating systems provide several security features, which are:
User authentication: Users must prove their identity to access the system, typically with a password.
Access control: Different users are granted different levels of access to files & resources.
Process isolation: Each process runs in its own memory space, preventing interference.
Encryption: Sensitive data can be encrypted to protect against unauthorized access.
Firewalls: Built-in firewalls can filter network traffic & block threats.
Updates: Regular security updates patch vulnerabilities & protect against new attacks.
22. Explain the working principle of a hash table.
A hash table is a data structure that provides fast insertion, deletion, & lookup of key-value pairs. It works as follows:
A hash function maps the key to an index in an array (the hash table).
The value is stored at that index.
To retrieve a value, the key is hashed & the corresponding index is checked.
If multiple keys map to the same index (a collision), the values are stored in a linked list or other data structure at that index.
23. How do you handle database replication & what are its benefits?
Database replication involves keeping multiple copies of a database in sync. It can be done in several ways:
Master-slave: One database (the master) handles writes, & changes are propagated to the other databases (the slaves). The slaves handle reads.
Master-master: Any database can handle writes, & changes are propagated to the others. This allows for load balancing but can lead to conflicts.
Peer-to-peer: All databases are equal & changes can originate from any of them.
24. What is a VLAN & how is it used?
A VLAN (virtual LAN) is a logical partitioning of a physical network. Devices in a VLAN can communicate as if they were on the same physical network, even if they're not. VLANs are used to:
Segment networks: Devices can be grouped by department or function, regardless of physical location.
Enhance security: Traffic between VLANs can be restricted, isolating sensitive data.
Improve performance: Broadcast traffic can be contained within a VLAN, reducing network congestion.
Simplify management: VLANs can be centrally configured & managed via software.
VLANs are configured on network switches. Each switch port is assigned to a VLAN, & traffic is tagged with the VLAN ID to keep it separate.
25. Write a program to find the median of two sorted arrays.
def find_median(nums1, nums2):
merged = merge(nums1, nums2)
n = len(merged)
if n % 2 == 1:
return merged[n//2]
else:
return (merged[n//2-1] + merged[n//2]) / 2
def merge(nums1, nums2):
merged = []
i = j = 0
while i < len(nums1) & j < len(nums2):
if nums1[i] <= nums2[j]:
merged.append(nums1[i])
i += 1
else:
merged.append(nums2[j])
j += 1
merged.extend(nums1[i:])
merged.extend(nums2[j:])
return merged
You can also try this code with Online Python Compiler
The function first merges the two sorted arrays into a single sorted array. If the length of the merged array is odd, it returns the middle element. If it's even, it returns the average of the two middle elements.
26. Describe how the operating system manages I/O operations.
The OS abstracts I/O devices (disk, keyboard, etc.) & provides a standard interface for programs to interact with them. Here's how it manages I/O:
Buffering: The OS maintains buffers in memory for each device. Programs read/write these buffers, & the OS handles the actual device I/O asynchronously.
Scheduling: The OS schedules I/O requests to optimize performance & fairness. It may reorder requests (e.g. elevator algorithm for disk) or prioritize certain processes.
Caching: Frequently used data can be cached in memory to reduce I/O. The OS manages the cache, deciding what to cache & when to evict.
Spooling: For devices like printers that can only handle one request at a time, the OS spools the output (stores it on disk) until the device is ready.
Device drivers: Each I/O device has a driver that translates between the OS's standard interface & the device's specific protocol. The OS loads these drivers at boot time.
27. Explain the concept of sharding in databases along with its benefits and complexities.
Sharding is a technique for horizontally partitioning a database to improve performance & scalability. The data is split across multiple machines (shards), each of which holds a subset of the data.
For example, a user database could be sharded based on the user's location, with each shard holding users from a particular region.
The benefits of sharding are:
Improved read/write performance (each shard handles a smaller volume)
Increased storage capacity (the total capacity is the sum of all shards)
Better availability (the system can survive the loss of a shard)
However, sharding also introduces complexities like :
Queries that span multiple shards are more complex
Joining data across shards is inefficient
Maintaining consistency across shards can be challenging
Sharding requires careful design & is typically used for very large-scale databases.
28. Implement a function to detect & remove loops in a linked list.
def remove_loop(head):
slow = fast = head
while fast & fast.next:
slow = slow.next
fast = fast.next.next
if slow == fast:
break
if not fast or not fast.next:
return head
slow = head
while slow != fast:
slow = slow.next
fast = fast.next
while fast.next != slow:
fast = fast.next
fast.next = None
return head
You can also try this code with Online Python Compiler
The function uses Floyd's cycle-finding algorithm. It starts two pointers, slow & fast, at the head. The slow pointer moves one step at a time, while the fast pointer moves two steps.
If there's a loop, the pointers will eventually meet. Then, one pointer is reset to the head, & both pointers move one step at a time until they meet again at the start of the loop.
Finally, one pointer is advanced until it reaches the end of the loop, & the loop is broken by setting the next pointer to None.
29. Describe QoS (Quality of Service) & how it is implemented in networking.
QoS refers to the ability to provide different priorities to different data flows to guarantee a certain level of performance. For example, VoIP traffic may be given higher priority than file downloads to ensure a smooth call experience.
QoS is implemented through several mechanisms:
Packet classification: Packets are classified based on criteria like source/destination IP, port, protocol, etc.
Queuing: Different queues are used for different classes of traffic, & the queues are serviced according to their priority.
Scheduling: Algorithms like WFQ (Weighted Fair Queuing) determine which packet to send next based on the queues & their weights.
Policing & shaping: The network can limit the rate of certain traffic flows to prevent them from hogging bandwidth.
Congestion avoidance: Protocols like RED (Random Early Detection) can drop packets proactively to avoid congestion.
QoS is configured on network devices like routers & switches. It requires careful planning & can be complex to manage, but is essential for networks that handle a mix of real-time & non-real-time traffic.
30. What is a stored procedure & when would you use one?
A stored procedure is a precompiled set of SQL statements that are stored in the database & can be executed repeatedly. It can take parameters & include control-flow statements like conditionals & loops.
Stored procedures are used to:
Encapsulate complex database operations: A stored procedure can bundle multiple statements into a single callable unit. This simplifies client code & ensures consistency.
Improve performance: Because stored procedures are precompiled & stored on the database server, they can execute faster than individual SQL statements sent from a client. They also reduce network traffic.
Enhance security: Stored procedures can be used to control access to the underlying tables. Users can be granted permission to execute a procedure without direct access to the tables.
Conclusion
We hope you have gained some insights on BNY Mellon Interview Questions through this article. We hope this will help you excel in your interviews for BNY Mellon. All the best!!
You can also practice coding questions commonly asked in interviews on Coding Ninjas Code360.