FICO interview questions

101 questions from 13 interviews · updated from reports 2016-2024

Practise FICO-style

About

FICO is an analytics software company known for credit scoring, decision management, and tools used by lenders, insurers, and other businesses to assess risk. In India, it hires technical talent for Software Engineer, SDE, and Solution Engineer roles across product development, integrations, and customer implementations.

The roles that come up most are Software Engineer, Solution Engineer and SDE. This covers 13 candidate interviews reported from 2016 to 2024. Most sat it at entry level (10 of 13 that recorded a level), with 3 internship interviews alongside. Among the 11 that recorded either route, arrivals split between campus drives (11, 100%). Most questions fall under CS fundamentals and DSA.

Category
Difficulty
Round

Interview questions

Q. What is the difference between an abstract class and an interface in Java?

asked 3xeasyOOPTechnical2020-2021

Ans. An abstract class is a partial base class, while an interface is mainly a contract a class agrees to implement. An abstract class can hold instance state, constructors, and concrete methods, but a class can extend only one. A class can implement multiple interfaces, which is useful for defining shared capabilities.

Q. Explain SQL joins and their types

asked 1xmediumSQLTechnical2024

Ans. SQL joins combine rows from two tables using a related column or condition. An inner join returns only matching rows. A left join returns all rows from the left table plus matches from the right. A right join does the reverse. A full outer join returns all rows from both sides. A cross join returns every combination.

Q. Find the left view of a binary tree

asked 1xmediumTreesTechnical2022

Ans. Traverse the tree level by level and record the first node seen at each level. Use a queue for breadth-first search, process nodes level by level, and add the first node of each level to the result. This gives the left view in O(n) time and O(w) space, where w is maximum width.

Q. Discuss trees and graphs data structures

asked 1xmediumTreesTechnical2021

Ans. Trees are hierarchical data structures with a root and parent-child relationships, while graphs are more general structures made of vertices connected by edges. A tree is a connected acyclic graph. Graphs may be directed, undirected, weighted, or cyclic. Common operations use DFS or BFS, with adjacency lists often giving efficient space and traversal time.

Q. Explain deletion in a Binary Search Tree.

asked 1xmediumTreesTechnical2017

Ans. Deletion in a Binary Search Tree removes a node while preserving the ordering property. First search for the key, then handle three cases: leaf node, node with one child, or node with two children. The key detail is replacing a two-child node with its inorder successor or predecessor. Time complexity is O(h).

Q. Conceptual questions on DBMS fundamentals.

asked 1xmediumDBMSTechnical2016

Ans. A DBMS is software that stores, organises and retrieves data while enforcing rules for correctness and access. The key fundamentals are schemas, tables, keys, relationships, SQL, indexing, normalisation, transactions and concurrency control. The most important detail is ACID transactions, which keep data consistent even with failures or simultaneous users.

Q. Explain virtual memory in operating systems

asked 1xmediumOperating systemsTechnical2024

Ans. Virtual memory is an operating system technique that gives each process its own logical address space, mapped to physical RAM by the memory management unit. The key detail is paging: memory is split into pages, and pages not currently in RAM can be stored on disk, enabling isolation, protection, and efficient memory use.

Q. What is Spring MVC? Explain its components.

asked 1xmediumFrameworksTechnical2020

Ans. Spring MVC is a Java web framework in the Spring ecosystem that implements the Model View Controller pattern for building web applications. Its main components are DispatcherServlet, controllers, models, views, view resolvers, and handler mappings. DispatcherServlet is the front controller that routes requests, calls controllers, and returns the chosen view with data.

Q. Explain binary trees and binary search trees

asked 1xmediumTreesTechnical2024

Ans. A binary tree is a tree where each node has at most two children, usually called left and right. A binary search tree is a binary tree with an ordering rule: values in the left subtree are smaller, and values in the right subtree are larger. This makes search, insert, and delete O(h).

Q. Explain database normalization and its types

asked 1xmediumDBMSTechnical2024

Ans. Database normalization is the process of organising relational database tables to reduce duplication and avoid update, insert, and delete anomalies. The main forms are 1NF, which removes repeating groups; 2NF, which removes partial dependency; 3NF, which removes transitive dependency; and BCNF, which enforces stricter dependency rules.

Q. Design a Medal Tally System for the Olympics.

asked 1xmediumScalabilitySystem design2024

Ans. Build an event driven medal tally service where official result events create immutable medal award records, and materialised views maintain country totals. Ingest results from the Games authority, validate idempotently, publish to a stream, aggregate by country and medal type, then serve cached rankings ordered by gold, silver, bronze, with fast recomputation from the event log.

Q. How do you use inheritance in a Java project?

asked 1xmediumOOPTechnical2021

Ans. I use inheritance in Java by creating a subclass with extends when it is a true specialised form of a superclass, and by implementing interfaces for shared behaviour contracts. The key detail is substitutability: any subclass should work wherever the parent type is expected. Otherwise, composition is usually safer and clearer.

Q. What is synchronization in operating systems?

asked 1xmediumOperating systemsTechnical2024

Ans. Synchronization in operating systems is the coordination of processes or threads so they access shared resources safely and in the correct order. Its main purpose is to prevent race conditions and inconsistent data. Common mechanisms include mutexes, semaphores, locks, monitors, and condition variables, which enforce mutual exclusion or controlled waiting.

Q. Explain SQL concepts using real-life examples.

asked 1xmediumSQLTechnical2020

Ans. SQL is a language for storing, finding, and changing structured data, like a library catalogue. A table is a shelf list, rows are books, and columns are details such as title or author. SELECT finds books, WHERE filters them, JOIN connects related lists, and indexes work like a book index to speed searches.

Q. Explain process scheduling in operating systems

asked 1xmediumOperating systemsTechnical2024

Ans. Process scheduling is the operating system’s method for deciding which ready process gets the CPU next. The scheduler aims to share CPU time efficiently, improve responsiveness, and maximise throughput. Common policies include first come first served, shortest job first, priority scheduling, and round robin, with context switching used to move between processes.

Q. String manipulation and pointer-related questions.

asked 1xmediumStringsTechnical2016

Ans. String manipulation changes or analyses character sequences, while pointers store memory addresses used to access or modify data indirectly. The key detail is memory safety: in languages like C, strings need a null terminator and valid allocated space, and pointer arithmetic must stay within the same object or array.

Q. Implement an abstract class in Java and explain its usage

asked 1xmediumOOPTechnical2021

Ans. An abstract class in Java is declared with abstract and is implemented by a subclass using extends, which must provide bodies for its abstract methods. It is used when related classes share common state or behaviour but some operations must be defined specifically by each subclass. Abstract classes cannot be instantiated directly.

Q. Explain deadlocks and the necessary conditions for deadlock

asked 1xmediumOperating systemsTechnical2024

Ans. A deadlock is a state where two or more processes are permanently blocked because each is waiting for a resource held by another. The necessary conditions are mutual exclusion, hold and wait, no preemption, and circular wait. Deadlock can occur only when all four conditions hold at the same time.

Q. How many Tuesdays occur between your date of birth and today?

asked 1xmediumLogical reasoningTechnical2020

Ans. Count the total days between the birth date and today, then divide by 7 to get complete weeks. Each complete week contains one Tuesday. For the remaining days, check whether a Tuesday falls in that leftover range. Add 1 if it does. Clarify whether the start and end dates are included.

Q. Explain the Singleton design pattern and how it is implemented

asked 1xmediumOOPTechnical2024

Ans. The Singleton pattern ensures a class has exactly one instance and provides a global access point to it. It is usually implemented by making the constructor private, storing a static instance inside the class, and exposing a static method or property to return it. In multithreaded code, creation must be thread safe.

Q. Which data structure should be used in different scenarios and why?

asked 1xmediumData structuresTechnical2021

Ans. Use arrays for fast index access, linked lists for frequent insertions and deletions, stacks for last-in-first-out tasks, queues for first-in-first-out tasks, hash tables for fast lookup, trees for sorted hierarchical data, heaps for priority access, and graphs for relationships. The key factor is the operation you need most often and its time complexity.

Q. Count substrings of length k that contain exactly k-1 distinct characters.

asked 1xmediumStringsOnline test2023

Ans. Use a sliding window of size k and count windows whose frequency map has exactly k-1 keys. Add the next character, remove the character leaving the window, and update the distinct count when frequencies become zero or one. This gives O(n) time and O(k) space.

Q. Delete a node from a doubly linked list given only a pointer to that node.

asked 1xmediumLinked listsTechnical2017

Ans. Update the given node’s previous node to point to its next node, and its next node to point back to its previous node. Then free or discard the node. The key detail is handling ends: if there is no previous node, the caller must update the head pointer. This is O(1) time.

Q. How would you encrypt a file and what classes/objects would you design for it?

asked 1xmediumOOPTechnical2020

Ans. I would encrypt the file as a stream using an authenticated cipher such as AES-GCM, generating a fresh nonce and storing it with the ciphertext and tag. I would design a FileEncryptor, KeyProvider, CipherConfig, and FileHeader/Metadata object. The key detail is never reusing a nonce with the same key.

Q. Explain and code Merge Sort and Quick Sort, and compare their time complexities.

asked 1xmediumSortingTechnical2023

Ans. Merge Sort splits the array, recursively sorts halves, then merges them using a temporary array; Quick Sort chooses a pivot, partitions in place, then recursively sorts partitions. Merge Sort is always O(n log n) time and O(n) space. Quick Sort averages O(n log n), uses O(log n) stack space, but can degrade to O(n²).

Q. How would you use abstract classes and interfaces in a Railway Reservation System?

asked 1xmediumOOPTechnical2020

Ans. Use abstract classes for shared state and behaviour, and interfaces for capabilities that different classes can implement. For example, an abstract Train could hold train number, route and coaches, while ExpressTrain and LocalTrain specialise it. Interfaces like Bookable, Cancellable and Refundable define contracts for tickets, reservations or payment services.

Q. Given the address of a node in a singly linked list, how would you delete that node?

asked 1xmediumLinked listsTechnical2023

Ans. Copy the data from the next node into the given node, then change the given node’s next pointer to skip that next node. This deletes the logical node in O(1) time and O(1) space. The key limitation is that this only works if the given node is not the tail.

Q. Design a bike for a blind person. What specifications and features would you include?

asked 1xmediumDesign thinkingOnline test2016

Ans. I would design a stable electric tricycle or tandem, not a standard solo bike. First I would define the use case, usually supervised riding on parks or cycle paths. Key features would be three wheels, low speed limit, audible navigation, obstacle sensors with haptic handlebar feedback, automatic braking, GPS tracking, bright visibility, and an emergency stop.

Q. Design a cellular phone for a blind person. Give its architecture and specifications.

asked 1xmediumProduct designOnline test2017

Ans. A blind-accessible cellular phone should be voice-first, tactile, and fail-safe. Architecture includes a standard cellular modem, low-power processor, screen reader, speech recognition, text-to-speech engine, haptic controller, physical keypad, emergency module, GPS, Bluetooth, and cloud sync. Specifications should prioritise long battery life, loud speaker, tactile buttons, offline voice commands, audio feedback, fall detection, and SOS calling.

Q. Delete a given node from a doubly linked list when only the node reference is provided.

asked 1xmediumLinked listsTechnical2023

Ans. Update the node’s previous neighbour to point to its next neighbour, and its next neighbour to point back to its previous neighbour. Then clear the deleted node’s prev and next references. This is O(1) time and O(1) space, but deleting the head requires access to, or returning, the updated head reference.

Q. Explain the flow of how SQL and JDBC work together to produce output in a Java project.

asked 1xmediumDBMSTechnical2020

Ans. A Java program uses JDBC to connect to a database, send SQL statements, receive results, and turn them into application output. The usual flow is load the driver, open a connection, create a statement or prepared statement, execute the SQL, read the ResultSet row by row, then close resources. PreparedStatement is preferred for safety.

Q. Given an array, find the maximum index difference such that arr[j] >= arr[i] and j >= i

asked 1xmediumArraysTechnical2022

Ans. Build a prefix minimum array from the left and a suffix maximum array from the right, then scan both with two pointers to maximise j minus i where rightMax[j] is at least leftMin[i]. If the condition holds, move j forward; otherwise move i forward. This takes O(n) time and O(n) space.

Q. Determine properties related to a diagonal passing through a grid (such as number of cells crossed).

asked 1xmediumLogical reasoningOnline test2016

Ans. Use the formula: for an m by n grid, the main diagonal crosses m + n − gcd(m, n) cells. Count rows and columns entered, then subtract the times the diagonal passes exactly through a grid intersection, because those would otherwise be counted twice. The gcd gives the number of equal segments.

Q. How would you design a system for managing a pani puri stall and which data structures would you use?

asked 1xmediumBasic designTechnical2020

Ans. I would design it as an order and inventory system with a menu, queue of customer orders, stock tracking, billing, and daily sales reports. Use a queue for pending orders, hash maps for item prices and ingredient stock, and a list for completed orders. The key detail is updating inventory atomically after each sale.

Q. Explain semaphores and mutual exclusion and how they are used for synchronization in operating systems.

asked 1xmediumOperating systemsTechnical2024

Ans. Semaphores are counters used to control access to shared resources, while mutual exclusion ensures only one thread or process enters a critical section at a time. A wait operation decrements the semaphore and may block; a signal operation increments it and may wake another process. Mutexes are binary semaphores commonly used to prevent race conditions.

Q. Given a string containing "NIT KKR", remove duplicate letters and sort the remaining characters efficiently.

asked 1xmediumStringsTechnical2017

Ans. Use a set to keep each character once, then sort the unique characters; for letters in “NIT KKR”, ignoring the space, the result is “IKNRT”. The key detail is to avoid repeated scanning: collect characters in a hash set or boolean array, then sort them, giving linear collection plus sorting time.

Q. Delete a given node from a singly linked list when only the node reference is provided (head pointer not given).

asked 1xmediumLinked listsTechnical2023

Ans. Copy the value from the next node into the given node, then change the given node’s next pointer to skip that next node. This effectively deletes the next node while making the given node look deleted. It works in O(1) time and O(1) space, but it cannot delete the tail node.

Q. Around 70% engineers fade out in the first 10 years of their career — discuss the reasons and possible solutions.

asked 1xmediumLeadershipGroup discussion2017

Ans. A strong answer should challenge the statistic politely, then discuss likely causes: burnout, weak mentoring, poor career paths, outdated skills, bad management, and lack of purpose. Use one real example from your experience or observation. Emphasise ownership, continuous learning, healthier delivery practices, coaching, and role mobility. Interviewers listen for maturity, balance, and practical solutions.

Q. What are the time complexities of traversal, insertion, and deletion in singly, doubly, and circular linked lists?

asked 1xmediumLinked listsTechnical2024

Ans. Traversal is O(n) for singly, doubly, and circular linked lists. Insertion and deletion are O(1) when the exact node or end pointer needed is already available, such as at the head. The important detail is that finding an arbitrary position first costs O(n), so overall insertion or deletion there is O(n).

Q. Write an SQL UPDATE query

asked 1xeasySQLTechnical2024

Ans. Use an UPDATE statement naming the table, the columns to change, their new values, and a WHERE condition selecting the rows. The key detail is the WHERE clause: without it, the database updates every row in the table. For example, you would update a user’s email by filtering on that user’s id.

Q. What is a JAR file in Java?

asked 1xeasyOOPTechnical2024

Ans. A JAR file is a Java Archive file that packages Java class files, resources, and metadata into a single compressed file. It is commonly used to distribute libraries or applications. A JAR can also include a manifest file, which may specify the main class to run an executable Java application.

Q. Explain OOPS concepts in Java

asked 1xeasyOOPTechnical2021

Ans. OOPS in Java means organising code around objects that combine data and behaviour. The main concepts are encapsulation, inheritance, polymorphism, and abstraction. Encapsulation hides state using classes and access modifiers. Inheritance reuses behaviour. Polymorphism allows one interface to have many implementations. Abstraction exposes essential behaviour while hiding implementation details.

Q. Reverse a doubly linked list.

asked 1xeasyLinked listsTechnical2017

Ans. Reverse it by traversing the list once and swapping each node’s next and previous pointers. Keep moving using the pointer that was originally next, which becomes previous after the swap. At the end, update the head to the last processed node. This uses the existing nodes, runs in O(n) time, and uses O(1) extra space.

Q. Data security on social media.

asked 1xeasyCommunicationGroup discussion2017

Ans. Choose a real example where you protected customer, employee, or company information on a social platform. Emphasise privacy settings, access control, approval processes, phishing awareness, and quick escalation of risks. Interviewers listen for judgement, respect for confidentiality, understanding of reputational impact, and evidence that you balance communication goals with data protection.

Q. Explain different types of trees

asked 1xeasyTreesTechnical2021

Ans. Common tree types include binary trees, binary search trees, balanced trees, heaps, tries, B-trees and expression trees. A binary tree has at most two children per node, while a BST orders values for efficient search. Balanced trees keep height small, heaps support priority access, tries store prefixes and B-trees optimise disk access.

Q. Explain JDBC connectivity in Java.

asked 1xeasyDBMSTechnical2020

Ans. JDBC connectivity in Java is the process of using the Java Database Connectivity API to connect a Java application to a database, send SQL queries, and read results. The main steps are loading the driver, creating a connection, preparing a statement, executing it, processing the result set, and closing resources.

Q. Explain HashMap and HashSet in Java

asked 1xeasyOOPTechnical2020

Ans. HashMap stores key value pairs, while HashSet stores unique values only. Both use hashing, so lookup, insert and delete are average constant time. The key detail is that correctness depends on consistent hashCode and equals implementations. HashSet is internally backed by a HashMap, with each set element used as a key.

Q. Explain runtime polymorphism in Java.

asked 1xeasyOOPTechnical2017

Ans. Runtime polymorphism in Java means the method that runs is chosen at runtime based on the actual object type, not the reference type. It is mainly achieved through method overriding, where a subclass provides its own implementation of a superclass or interface method. This enables flexible, extensible code.

Q. Basic database concepts and fundamentals

asked 1xeasyDBMSTechnical2020

Ans. A database is an organised collection of data, usually managed by a database management system. The key fundamentals are tables, rows, columns, keys, relationships, queries, indexes and transactions. Primary keys identify records, foreign keys link tables, SQL retrieves and changes data, and ACID transactions help keep data correct and reliable.

Q. Explain different types of keys in DBMS.

asked 1xeasyDBMSTechnical2017

Ans. DBMS keys are attributes used to identify rows and define relationships between tables. A super key uniquely identifies a row, while a candidate key is a minimal super key. One candidate key becomes the primary key. An alternate key is an unused candidate key. A foreign key references another table, and a composite key uses multiple attributes.

Q. Define DBMS (Database Management System).

asked 1xeasyDBMSTechnical2023

Ans. A DBMS is software used to define, create, store, retrieve, update and manage data in a database. It acts as an interface between users or applications and the stored data, handling tasks such as queries, access control, data integrity, concurrency, backup and recovery. Examples include MySQL, PostgreSQL and Oracle.

Q. Detect if a linked list contains a cycle.

asked 1xeasyLinked listsTechnical2024

Ans. Use Floyd’s cycle detection algorithm with two pointers, slow and fast. Move slow by one node and fast by two nodes each step. If they ever meet, the linked list has a cycle. If fast reaches null, there is no cycle. This takes O(n) time and O(1) extra space.

Q. Convert a binary tree into its mirror tree

asked 1xeasyTreesTechnical2022

Ans. Swap the left and right child of every node in the binary tree. Do this with a depth first traversal: at each node, swap its children, then recurse on the left and right subtrees. The tree itself is modified in place. Time complexity is O(n), and recursion uses O(h) stack space.

Q. Name different types of computer networks.

asked 1xeasyNetworkingTechnical2023

Ans. Common types of computer networks are PAN, LAN, WLAN, CAN, MAN, WAN, SAN and VPN. The main difference is their scope: a PAN covers personal devices, a LAN covers a local area, a MAN covers a city, and a WAN connects large regions or countries, such as the internet.

Q. Compare inheritance and abstraction in Java

asked 1xeasyOOPTechnical2021

Ans. Inheritance reuses and extends behaviour from a parent class, while abstraction hides implementation details and exposes only what users need. In Java, inheritance is mainly done with extends, and abstraction is done with abstract classes or interfaces. The key difference is that inheritance models “is a”, while abstraction defines “what it can do”.

Q. Define polymorphism and abstraction in OOP.

asked 1xeasyOOPTechnical2023

Ans. Polymorphism is the ability for different object types to be treated through the same interface while providing their own behaviour. Abstraction is hiding implementation details and exposing only the essential operations. The key difference is that abstraction simplifies what a user sees, while polymorphism lets the same call behave differently depending on the object.

Q. Explain the Merge Sort algorithm in detail.

asked 1xeasySortingTechnical2023

Ans. Merge Sort is a divide and conquer sorting algorithm that recursively splits an array into two halves, sorts each half, then merges the sorted halves into one sorted array. The key step is merging by comparing the smallest remaining elements from both halves. It runs in O(n log n) time and uses O(n) extra space.

Q. Why is Unix preferred in certain scenarios?

asked 1xeasyOperating systemsTechnical2023

Ans. Unix is preferred when reliability, automation, multiuser support and strong networking are important, especially on servers and developer systems. Its simple process model, powerful shell tools and file-based design make it easy to combine small programs, script repeated tasks and manage systems remotely with predictable behaviour.

Q. How can the ambulance facility be improved in India?

asked 1xeasyProblem solvingOnline test2017

Ans. A strong answer should focus on practical, system-level improvements: faster response times, centralised emergency numbers, GPS tracking, trained paramedics, better rural coverage, and hospital coordination. Pick an example from public health, logistics, or community service. Emphasise affordability, accountability, and technology. Interviewers listen for realism, empathy, and understanding of India’s scale.

Q. Find the last digit of a given large number or expression.

asked 1xeasyLogical reasoningOnline test2016

Ans. Use cyclicity of last digits. Keep only the units digit of the base, then find its repeating pattern under powers. For example, 7 has cycle 7, 9, 3, 1. Divide the exponent by the cycle length and use the remainder to pick the digit. For sums or products, reduce each part modulo 10.

Showing 60 of 101 questions. Ranked by how often the same question came back across interviews.

Practise a FICO-style interview

A spoken interview built from these questions, scored when you finish; the feedback is yours.

Start practising

When you are ready, record The One: a single interview hiring teams watch, so you stop repeating first rounds.

Common questions

What questions does FICO ask?

Candidate interviews most often cover CS fundamentals (58%) and DSA (27%).

How many rounds does FICO interview have?

Candidate interviews show an average of 3.5 rounds per experience, with a typical sequence of Online test → Technical → HR. Individual interview paths can vary.

Is the FICO interview hard?

Among questions with a recorded difficulty, the mix is easy 57%, medium 41%, hard 2%.