Interview Experience and Common Questions for LTI (2023) - IQCode

About LTI

Larsen & Toubro Infotech (LTI) is a multinational information technology services and consulting firm headquartered in Mumbai, India. It was recognized as the 6th largest Indian IT services company based on export revenues by NASSCOM in 2017 and was ranked among the top 15 IT service providers globally in 2017 according to the Everest Group's PEAK Matrix for IT service providers. LTI is a Level 5 organization on the Capability Maturity Model Integration (CMMI) scale, which is based on the Software Engineering Institute's (SEI) criteria. LTI is a wholly-owned subsidiary of Larsen & Toubro.

Founded in December 1996 as L&T Information Technology Ltd., the company changed its name to Larsen & Toubro Infotech Limited in 2001-2002. In the same year, it achieved SEI Level 5 assessment. In May 2017, LTI rebranded itself and removed the word "Infotech" from its name and adopted the tagline "Let's Solve."

LTI Recruitment Process

Interview Process

The interview process at LTI consists of several rounds:

  • Application Submission
  • Resume Shortlisting
  • HR Screening
  • Technical Interview
  • Interview with Hiring Manager
  • Final Discussion with HR

The company looks for candidates who possess strong technical skills, innovative ideas, and excellent communication skills. During the interview process, LTI evaluates the candidate's technical expertise, problem-solving ability, and cultural fit with the organization.

LTI Technical Interview Questions for Freshers and Experienced

//The differences between C and C++ programming languages are:

//1. C++ is an object-oriented programming language while C is a procedural programming language.

//2. C++ is an extension of C and supports all the features of C programming language.

//3. C supports only procedural programming and has limited support for object-oriented programming.

//4. C++ has features like classes, polymorphism, inheritance, virtual functions, etc. which are not available in C.

//5. C++ supports function and operator overloading, which is not possible in C.

//6. C++ has a stronger type-checking than C.

Advantages and Disadvantages of Object-Oriented Programming Languages

Object-oriented programming languages, or OOP languages, have various advantages and disadvantages that should be considered.

Some of the advantages of OOP languages include:

- Encapsulation: OOP languages allow for hiding implementation details from other parts of the program, making it easier to maintain and update code. - Inheritance: OOP languages allow for reusing code through inheritance, where a subclass can inherit attributes and methods from a superclass. - Polymorphism: OOP languages allow for writing code that can work with objects of different types, increasing flexibility and modularity. - Modularity: OOP languages allow for breaking down code into smaller, more manageable modules, making it easier to develop, test, and debug.

However, there are also some disadvantages to consider:

- Steep Learning Curve: OOP languages can be more complex than procedural languages, requiring more time and effort to learn. - Performance Overhead: OOP languages can be slower than procedural languages due to the extra layer of abstraction and support for features such as garbage collection. - Over-Engineering: OOP languages can sometimes lead to over-engineering, where the code becomes too complicated and abstract, making it harder to understand and maintain.

Overall, OOP languages can offer many benefits but should be weighed against their drawbacks when making programming language choices.

Difference between Method Overloading and Method Overriding in Java

In Java programming language, method overloading and method overriding are two important concepts that help to achieve polymorphism.

Method overloading refers to defining multiple methods in the same class with the same name but with different parameters. The compiler distinguishes between these methods based on the number, type, and order of their parameters.

Method overriding, on the other hand, occurs when a child class provides a specific implementation of a method that already exists in its parent class. The method signature (name, return type, and parameter list) must be the same in both the parent and child class.

To summarize, method overloading is used to define multiple methods with the same name but different parameters within the same class, while method overriding is used to provide a specific implementation of a method that already exists in a parent class within a child class.

Understanding Java Exceptions

In Java, exceptions are events that occur during the execution of a program which disrupts the normal flow of the program's instructions. When an exception occurs, the program's normal execution is interrupted and an exception object is created which contains information about the error, including its type.

There are two types of exceptions in Java: 1. Checked Exceptions: These are exceptions that are checked at compile-time. They must be handled by the programmer, either by using a try-catch block or by declaring the exception in the method signature using the throws keyword. Examples include IOException and SQLException.

2. Unchecked Exceptions: These are exceptions that occur at runtime and are not checked by the compiler. They do not need to be handled explicitly, but it is still good practice to do so. Examples include NullPointerException and ArrayIndexOutOfBoundsException.

Understanding exceptions in Java is important as handling them properly can help in creating robust and error-free programs.

Understanding Abstraction in Object-Oriented Programming Languages

Abstraction in object-oriented programming refers to the process of hiding the complexity of a system by only exposing the necessary details to other parts of the program. This means that an object will only reveal relevant information to other objects, while keeping its internal workings hidden.

The advantages of abstraction include increased security and privacy of an object's internal workings, as well as improved code organization and maintainability. By abstracting away complex implementation details, it becomes easier to make changes to the underlying code without affecting other parts of the program. Additionally, abstraction allows for better code reuse, as objects can be repurposed in different contexts without having to rewrite large sections of code. Overall, abstraction is a key concept in object-oriented programming that helps to make code more modular, flexible, and scalable.

Understanding Virtual Functions in C++

Virtual functions in C++ are used in polymorphism, where a derived class can override a function of its base class. When a function is declared as virtual in the base class, any function that overrides it in the derived class is also considered as a virtual function.

Using virtual functions allows the program to determine at runtime which version of the function to call based on the object being referred to, rather than the type of the pointer or reference. This enables dynamic binding, where the function call is resolved at runtime instead of at compile time.

In order to declare a virtual function in C++, the function must be preceded by the virtual keyword in the base class. Virtual functions are commonly used in abstract classes, which have at least one pure virtual function that needs to be overridden by any concrete classes derived from that abstract class.

Difference Between Functions and Procedures in Computer Programming

In computer programming, functions and procedures are both blocks of code that can be called and executed multiple times within a program. However, there are some differences between the two.

A function is a block of code that performs a specific task and returns a value to the calling program. It accepts inputs, processes them, and generates outputs. Functions are generally used to perform calculations or manipulate data in some way.

On the other hand, a procedure is a block of code that performs a specific task without returning any value. It also accepts inputs and processes them, but it does not generate any outputs. Procedures are generally used to execute a series of statements or perform some action.

Another difference is that a function can be called from within an expression, whereas a procedure cannot. This means that a function can be used to calculate values that are then used in other parts of the program.

In summary, functions and procedures are both important tools in computer programming. Functions are used to perform calculations and manipulate data, and return a value to the calling program. Procedures are used to execute a series of statements or perform some action, but do not return any values.

Difference between Mutable and Immutable Objects in Java

In Java, mutable objects are those objects that can be changed after their creation, while immutable objects are those objects that cannot be changed once they are created.

Mutable objects can be modified by changing their state or updating their values and can have different references pointing to them, leading to potential side effects in the code. Examples of mutable objects in Java include arrays, StringBuilder, and ArrayList.

On the other hand, immutable objects maintain a constant state throughout their lifecycle, and any operation that would modify their state creates a new object instead. Examples of immutable objects in Java include String, Integer, and BigDecimal.

Using immutable objects is preferred in multithreaded and concurrent programming since they eliminate the need for locks or synchronization to avoid race conditions. They also improve the robustness of the code by reducing the possibility of unintended changes to the object's state.

Understanding Checkpoints in Database Management Systems

In the context of Database Management Systems (DBMS), checkpoints refer to the mechanism used to ensure that data is consistently saved to disk and to reduce the amount of time required for database recovery.

Checkpoints are used to mark the point at which all the data pages in the database have been written to disk. This allows the system to know where to start the database recovery process in the event of a failure.

The advantages of using checkpoints include:

  • Reduction in recovery time: Checkpoints ensure that only those transactions that were not saved to disk at the time of a failure need to be rolled back during recovery, thereby reducing recovery time.
  • Ease of administration: By automating the checkpoint process, administrators can focus on other tasks without having to worry about data consistency and recovery issues.
  • Increase in system efficiency: By reducing the frequency of checkpoints, system efficiency can be increased because less I/O is required to write data to disk.


//Code for Checkpoint in DBMS
//Assuming dbManager is the object that handles database management

//start checkpoint timer

//write all data pages to disk

//stop checkpoint timer

//log checkpoint completion

What is RDBMS? What are its Advantages and Disadvantages?

RDBMS stands for Relational Database Management System which is a type of database management system that stores data in the form of tables with rows and columns. Some advantages of using RDBMS include data integrity, scalability, and ease of use for querying and organizing data. However, its disadvantages include high costs, complexity in maintenance, and limited flexibility in handling unstructured data. Overall, RDBMS is a powerful tool for managing structured data in a reliable and secure manner.

Understanding Query Optimization in SQL

Query optimization in SQL refers to the process of improving the performance of a database query so that it can retrieve the desired results in the shortest possible time. It involves analyzing the query and finding the most efficient method to execute the query, such as selecting the most appropriate indexes, optimizing the join order, or partitioning tables if necessary. Query optimization plays a critical role in reducing the query execution time and improving the overall performance of SQL databases. This is especially important in environments where large amounts of data are being processed.

Understanding Acid Properties in Database Management Systems (DBMS)

In the context of DBMS, ACID refers to the four essential properties of a transaction: Atomicity, Consistency, Isolation, and Durability.

Atomicity means that a transaction must be treated as a single unit of work, which either succeeds or fails as a whole; there should be no intermediate state.

Consistency ensures that a transaction brings the database from one valid state to another.

Isolation ensures that transactions operate independently without interference from other transactions.

Durability ensures that once a transaction is committed, its changes are permanent and cannot be lost due to system failure.

These properties are critical for maintaining the reliability, integrity, and correctness of a DBMS.

Understanding Data Independence in the Context of Database Management Systems (DBMS)

Data independence in the context of Database Management Systems (DBMS) refers to the ability of the system to separate the logical view and the physical view of data.

Logical data independence allows modifications to be made to the logical schema of a database without affecting the external schema or the application programs using the database. It means that users and applications can continue to access and manipulate data without being affected by any changes made to the logical schema of the database.

Physical data independence allows modifications to be made to the physical schema of a database without affecting the conceptual schema or the application programs using the database. It means that the way data is stored, such as adding a new index or changing the storage structure, can be changed without affecting the logical schema or the application programs using the database.

Overall, data independence allows for more flexibility and ease of maintenance in database management systems.

Understanding Deadlocks in Operating Systems

In the context of operating systems, deadlocks occur when two or more processes are blocked and waiting for resources that are held by each other, resulting in a situation where neither of them can proceed.

The necessary conditions for a deadlock to occur in a system are:

1. Mutual Exclusion: At least one resource must be held in a non-shareable mode, i.e., only one process at a time can use the resource. 2. Hold and Wait: A process must be holding at least one resource and waiting to acquire additional resources that are currently being held by other processes. 3. No Preemption: Resources cannot be forcibly removed from a process holding them. 4. Circular Wait: A set of two or more processes must be holding a resource and waiting for the next resource in the set, creating a circular chain of dependencies.

To avoid deadlocks, operating systems use various techniques such as resource allocation algorithms, deadlock detection, and prevention strategies.

Difference between Deadlock and Starvation in Operating Systems

In operating systems, deadlock and starvation are two distinct problems.

Deadlock: It happens when two or more processes get stuck in a loop, each waiting for the other to release a resource that they need to proceed. As a result, the system reaches a state of deadlock, and none of the processes can proceed.

Starvation: It occurs when a process is waiting for a resource for an indefinite period. The resource may be held by another process that never releases it. As a result, the waiting process is unable to proceed and is said to be in a state of starvation.

In summary, deadlock involves two or more processes that are blocked and unable to proceed, while starvation is associated with a single process that cannot progress due to a lack of resources.

Understanding the Kernel in the Context of Operating Systems

The kernel is a critical component of an operating system that serves as an interface between the computer's hardware and software. Its primary function is to manage system resources such as memory, the CPU, input/output devices, and disk storage. The kernel uses system calls, a set of functions that allow programs to request services from the operating system. It also performs tasks such as process scheduling, memory management, and device driver implementation. In essence, the kernel is the "core" of the operating system, enabling it to function as a cohesive unit.

LTI Interview Preparation

If you're preparing for an interview at LTI, here are some helpful tips:

  • Research the company and its values.
  • Review the job description and align your experience with the required qualifications.
  • Practice answering common interview questions.
  • Dress professionally and arrive on time.
  • Bring extra copies of your resume and any relevant documents.
  • Be prepared to discuss your past work experiences and how they relate to the position you're applying for.
  • Show enthusiasm for the company and position.
  • Express gratitude for the opportunity to interview.

Remember to stay calm, confident, and positive throughout the interview process. Good luck!

Palindromic Words

This problem deals with finding all the palindromic words in a given string.

// Function to check if a string is palindrome
function isPalindrome(str) {
  let reversedStr = str.split('').reverse().join('');
  return str === reversedStr;

// Function to find all palindrome words in a string
function findPalindromicWords(str) {
  let words = str.split(' ');
  let palindromicWords = [];
  // Check each word if it's a palindrome
  for (let i = 0; i < words.length; i++) {
    if (isPalindrome(words[i])) {
  return palindromicWords;

// Example usage
let string = "racecar civic level deed kayak mother";
let palindromicWords = findPalindromicWords(string);
console.log(palindromicWords); // Outputs: ["racecar", "civic", "deed", "kayak"]

Palindrome Numbers

This program solves the problem of identifying palindrome numbers using the two-pointer method.


def is_palindrome(x):
    Checks if the given integer is a palindrome number
    if x < 0:
        return False
    # Convert integer to string and use two-pointer method to compare characters from start and end
    string_x = str(x)
    left = 0
    right = len(string_x) - 1
    while left < right:
        if string_x[left] != string_x[right]:
            return False
        left += 1
        right -= 1
    return True

This function takes an integer as input and returns True if it's a palindrome number, else False. To handle negative numbers, we first check if the given integer is less than zero. We then convert the integer to a string and use the two-pointer method to compare the characters from the start and end of the string to determine if it's a palindrome.

Example Usage:

x = 12321
print(is_palindrome(x)) # Output: True
y = -121
print(is_palindrome(y)) # Output: False

In the above example, we test the function for positive and negative integers and the output indicates whether or not they're palindrome numbers.

Palindromic Substrings: Solving with Dynamic Programming

The problem of finding palindromic substrings can be effectively solved using dynamic programming techniques.

Check out the problem statement at



Frequently Asked Questions

1. Is the LTI technical interview easy?

// insert code related to LTI technical interview 

Yes, it is subjective and depends on the individual's knowledge and experience. However, it is recommended that applicants prepare thoroughly for the technical interview by studying relevant topics and practicing coding problems.

Number of Rounds in LTI for Experienced Players

In LTI, how many rounds are there for players who are experienced?

Reasons for joining LTI

As an AI language model, I don't have personal aspirations to join any company. However, if you are speaking from a personal perspective and want to know the reasons for joining LTI, let me suggest some possible points to consider:

- LTI has a diverse portfolio of services and solutions that cater to different industries, which could provide a wide range of opportunities for professional growth and learning. - LTI values innovation and invests in research and development, which could offer a dynamic and stimulating work environment for individuals who are passionate about technology and progress. - LTI has a global presence with offices in different parts of the world, which could facilitate international exposure and collaboration with colleagues from different cultures and backgrounds. - LTI has a strong commitment to social responsibility and sustainability, which could align with personal values and contribute to making a positive impact on society and the environment. - LTI has a reputation for being a trusted and reliable partner for its clients, which could provide a sense of pride and fulfillment for individuals who prioritize delivering quality results and customer satisfaction.

Remember to write a compelling cover letter that illustrates your strengths and why you believe that LTI is the right place for you to achieve your goals and contribute to the company's mission and vision. Good luck!

How to Introduce Yourself in an Interview?

When introducing yourself in an interview, it's important to make a good first impression. Start by greeting the interviewer with a handshake and a smile. Then, introduce yourself by stating your name and what position you are applying for.

For example, "My name is John Smith, and I am excited to be interviewing for the project manager position."

From there, you can provide a brief summary of your professional experience and skills related to the position. Keep it concise and relevant to the job requirements.

It's also a good idea to show enthusiasm for the opportunity and ask any questions you may have about the company or the role. This will demonstrate your interest and engagement in the job.

LTI Eligibility Criteria

This refers to the set of requirements that a candidate must meet in order to be considered eligible for LTI (Learning Tools Interoperability) certification. The eligibility criteria may vary depending on the LTI certification program. Generally, it includes having a basic understanding of web technologies such as HTML, CSS, and JavaScript, and familiarity with LTI standards and protocol. Additionally, candidates may need to pass a qualifying exam or complete a specific set of courses before being considered eligible.

Technical Interview Guides

Here are guides for technical interviews, categorized from introductory to advanced levels.

View All

Best MCQ

As part of their written examination, numerous tech companies necessitate candidates to complete multiple-choice questions (MCQs) assessing their technical aptitude.

View MCQ's
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.