i
ACL
Digital
Filter interviews by
malloc() and free() are functions for dynamic memory allocation in C, found in the stdlib.h header file.
malloc() allocates a specified number of bytes and returns a pointer to the allocated memory.
free() deallocates memory that was previously allocated by malloc(), preventing memory leaks.
Example of malloc: int *arr = (int *)malloc(10 * sizeof(int)); // allocates memory for an array of 10 integers.
Example of free:...
SQL relationships define how tables interact, including one-to-one, one-to-many, and many-to-many associations.
One-to-One: Each record in Table A corresponds to one record in Table B. Example: A user and their profile.
One-to-Many: A record in Table A can relate to multiple records in Table B. Example: A customer and their orders.
Many-to-Many: Records in Table A can relate to multiple records in Table B and vice ve...
To find the second highest salary, you can use SQL queries that utilize subqueries or the DISTINCT keyword.
Using DISTINCT: SELECT DISTINCT salary FROM employees ORDER BY salary DESC LIMIT 1 OFFSET 1; This retrieves unique salaries and skips the highest.
Using Subquery: SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees); This finds the maximum salary that is less than the highest...
Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their containing scope during compilation.
Variables declared with 'var' are hoisted, but their initialization is not. Example: console.log(a); var a = 5; // undefined
Function declarations are fully hoisted. Example: greet(); function greet() { console.log('Hello'); } // Outputs: Hello
Variables declared with 'let' a...
Closures in JavaScript are functions that retain access to their lexical scope, even when executed outside that scope.
A closure is created when a function is defined inside another function.
Closures can access variables from their parent function's scope.
They help in data encapsulation and maintaining state.
Example: function outer() { let count = 0; return function inner() { count++; return count; }; }
Closures are...
A polyfill for the bind method allows functions to be bound to a specific context, ensuring 'this' refers to the desired object.
The bind method creates a new function that, when called, has its 'this' keyword set to the provided value.
It can also take additional arguments that are prepended to the arguments provided to the bound function.
Example: Function.prototype.myBind = function(context, ...args) { return (......
Infinite currying is a functional programming technique that allows functions to be called with a variable number of arguments over time.
Currying transforms a function with multiple arguments into a series of functions that each take a single argument.
Example: A function `add(a, b)` can be curried to `add(a)(b)`.
Infinite currying allows you to keep calling the function with new arguments until you decide to comput...
Exploring SQL joins to display record counts from multiple tables.
INNER JOIN: Returns records with matching values in both tables. Example: SELECT COUNT(*) FROM TableA INNER JOIN TableB ON TableA.id = TableB.a_id;
LEFT JOIN: Returns all records from the left table and matched records from the right. Example: SELECT COUNT(*) FROM TableA LEFT JOIN TableB ON TableA.id = TableB.a_id;
RIGHT JOIN: Returns all records from...
The size of an empty class in C++ is typically 1 byte.
An empty class in C++ will have a size of at least 1 byte to ensure that the objects of the class have unique addresses.
The size of an empty class can vary depending on the compiler and platform, but it is usually 1 byte.
Example: class EmptyClass {}; // sizeof(EmptyClass) will typically be 1
Develop a software by writing code
Understand the requirements and design the software architecture
Write clean and efficient code following best practices
Test the software thoroughly to ensure it functions correctly
I applied via Naukri.com and was interviewed in Sep 2023. There were 2 interview rounds.
BGP and OSPF are routing protocols used in networking. BGP has states like Idle, Connect, OpenSent, etc. OSPF has states like Down, Init, 2-Way, etc.
BGP states: Idle, Connect, OpenSent, OpenConfirm, Established
OSPF states: Down, Init, 2-Way, ExStart, Exchange, Loading, Full
To configure label path in BGP, you can use the 'mpls label protocol ldp' command in Cisco IOS
To configure BGP peering, you need to define neighbor ...
I applied via LinkedIn and was interviewed in Nov 2024. There were 4 interview rounds.
Closures in JavaScript are functions that retain access to their lexical scope, even when executed outside that scope.
A closure is created when a function is defined inside another function.
Closures can access variables from their parent function's scope.
They help in data encapsulation and maintaining state.
Example: function outer() { let count = 0; return function inner() { count++; return count; }; }
Closures are ofte...
Hoisting is a JavaScript mechanism where variables and function declarations are moved to the top of their containing scope during compilation.
Variables declared with 'var' are hoisted, but their initialization is not. Example: console.log(a); var a = 5; // undefined
Function declarations are fully hoisted. Example: greet(); function greet() { console.log('Hello'); } // Outputs: Hello
Variables declared with 'let' and 'c...
Infinite currying is a functional programming technique that allows functions to be called with a variable number of arguments over time.
Currying transforms a function with multiple arguments into a series of functions that each take a single argument.
Example: A function `add(a, b)` can be curried to `add(a)(b)`.
Infinite currying allows you to keep calling the function with new arguments until you decide to compute the...
A polyfill for the bind method allows functions to be bound to a specific context, ensuring 'this' refers to the desired object.
The bind method creates a new function that, when called, has its 'this' keyword set to the provided value.
It can also take additional arguments that are prepended to the arguments provided to the bound function.
Example: Function.prototype.myBind = function(context, ...args) { return (...newAr...
I appeared for an interview in Jan 2025.
Code to reverse a given string
Create an empty string to store the reversed string
Iterate through the input string from the end to the beginning
Append each character to the empty string
Return the reversed string
I applied via LinkedIn and was interviewed in Nov 2024. There were 2 interview rounds.
HTTP/1 and HTTP/2 are protocols for transferring data over the web, with HTTP/2 offering improved performance and efficiency.
HTTP/1.1 uses a text-based protocol, while HTTP/2 uses a binary protocol for better performance.
HTTP/1.1 supports one request per connection, whereas HTTP/2 allows multiplexing multiple requests over a single connection.
HTTP/2 includes header compression, reducing overhead compared to HTTP/1.1.
HT...
Promises handle single asynchronous values, while Observables manage multiple values over time.
Promises are eager; they start executing immediately upon creation.
Observables are lazy; they only execute when subscribed to.
Promises can only emit a single value or an error, while Observables can emit multiple values over time.
Example of a Promise: `let promise = new Promise((resolve, reject) => { resolve('Data'); });`
E...
Exploring SQL joins to display record counts from multiple tables.
INNER JOIN: Returns records with matching values in both tables. Example: SELECT COUNT(*) FROM TableA INNER JOIN TableB ON TableA.id = TableB.a_id;
LEFT JOIN: Returns all records from the left table and matched records from the right. Example: SELECT COUNT(*) FROM TableA LEFT JOIN TableB ON TableA.id = TableB.a_id;
RIGHT JOIN: Returns all records from the ...
I appeared for an interview in May 2025, where I was asked the following questions.
SPI communication requires 4 wires: MOSI, MISO, SCK, and SS for full-duplex data transfer.
MOSI (Master Out Slave In): Line for data sent from master to slave.
MISO (Master In Slave Out): Line for data sent from slave to master.
SCK (Serial Clock): Clock signal generated by the master to synchronize data transfer.
SS (Slave Select): Line used by the master to select the active slave device.
malloc() and free() are functions for dynamic memory allocation in C, found in the stdlib.h header file.
malloc() allocates a specified number of bytes and returns a pointer to the allocated memory.
free() deallocates memory that was previously allocated by malloc(), preventing memory leaks.
Example of malloc: int *arr = (int *)malloc(10 * sizeof(int)); // allocates memory for an array of 10 integers.
Example of free: free...
I appeared for an interview in Apr 2025, where I was asked the following questions.
I appeared for an interview in Mar 2025, where I was asked the following questions.
Top trending discussions
The duration of ACL Digital interview process can vary, but typically it takes about less than 2 weeks to complete.
based on 85 interview experiences
Difficulty level
Duration
based on 774 reviews
Rating in categories
Senior Software Engineer
527
salaries
| ₹7 L/yr - ₹27 L/yr |
Software Engineer
250
salaries
| ₹2.9 L/yr - ₹12 L/yr |
Module Lead
243
salaries
| ₹10.2 L/yr - ₹32 L/yr |
Technical Lead
230
salaries
| ₹12.9 L/yr - ₹37.1 L/yr |
Technical Support Engineer
107
salaries
| ₹2 L/yr - ₹7 L/yr |
Xoriant
Photon Interactive
CitiusTech
Iris Software