Interview Benchmark Guidelines
Interview Benchmark Guidelines
Page 1 of 20
PERSISTENT SYSTEMS LIMITED
Introduction
This document describes a set of guidelines which can be used by interviewers to rate the different
skills and competencies of candidates on a scale of 1 to 5.
The objective of this activity is to bring in uniformity and consistency in the interview process for
various job descriptions. This will help to bring all the stakeholders on the same page regarding
expectations of competencies and different skills by the candidates.
This section defines a general guideline around which benchmarks for various competencies and skills can be
defined. The rating scale is kept similar to the one followed by PSL IFF template.
PSL IFF Template Competency Scale: (1= Poor, 2= Average, 3= Good, 4=Very Good, 5=Outstanding)
The above are general guidelines, however there could be exceptions towards above based on specific
skills requirement.
Page 2 of 20
PERSISTENT SYSTEMS LIMITED
Tech Lead:
Lead (5.3/7.x)
Design
CS Fundamentals OOPS Programming Communication
principles
Developer:
Developer (3.x/5.2)
Design
CS Fundamentals OOPS Programming Communication
principles
Cut Off capabilities level for different skills
Page 3 of 20
PERSISTENT SYSTEMS LIMITED
CS Fundamentals (Data Structures and Problem Solving)
Note: Candidates can use their preferred programming language but not allowed to use built-in methods AFAP.
Competency (1 Description
- 5)
1 (Poor) Person has not used data structures
2 (Average) Person understands data structures but has not used in a project, or unable to solve the
coding assignment
3 (Good) Person can write programs to traverse collections and understands time and space
complexity
Examples
1. Write a program to traverse a linked list to find smallest and largest number
2. Write a program to add n (say n=10) integer elements to the queue from rear and
consume k (say k=3) elements from the front. Sort the consumed elements in desc
order and print.
INPUT: q = [1,2,3,4,5,6,7,8,9,9]
q1 = [8,9,9]
q2 = [9,9,8]
3. Input: List with a dictionary of album name and band name
INPUT: arr = [{‘metal’, ‘rock’}, {‘metallica’, ‘masti’}, {‘master’, ‘masti’}, {‘blaster’, ‘rock’}]
Find all band names whose album names start with metal.
OUPUT: [rock, masti]
4. Find nearest elements to a given element by +/- 10%
Input: [100, 120, 80, 90, 110]
k = 100
output: [90, 100, 110]
5. Find variations wrt min or max value
Input: [100, 120, 80, 90, 110]
min = 80
variation_min: [+25%,+50%,0%,12.5%,37.5%]
max = 120
variation_max: [-16%,0%,33%,-25%,-8%]
4 (Very Good) Person can apply different data structure concepts and use them to solve problems
describing certain scenarios
Examples
1. Given an array of integers, create a 2-dimensional array where the first element is a
distinct value from the array and the second element is with the value's frequency
within the array. Sort the resulting array descending by frequency. If multiple values
have the same frequency, they should be sorted ascending.
2. Bucket and sort the elements to get topper in each subject. Assume suitable data
structure.
Input data below
Page 4 of 20
PERSISTENT SYSTEMS LIMITED
John Eng 88
Expected output
Student Exam Grade
Phy Dave 67
Maths John 91
Eng John 88
5 (Outstanding) • Person understands concepts around advance data structures and write algorithms
around AVL trees, B+trees, Red Black trees.
Examples
1. Write a program to get the list of all children from a given node up to the bottom of
that hierarchy.
a. Case-1: if root node 1 is input and then return all children [2,3,4,5]
b. Case-2: if leaf most node 3 or 4 or 5 is input then return empty []
c. Case-3: if 2 is input then return [4,5]
2. Print level wise sum of all elements in above tree and level having maximum sum.
Output: [Level0:1, Level1:5, Level2: 9]
Output: Level2: 9
Page 5 of 20
PERSISTENT SYSTEMS LIMITED
3. Print all parents of a given node
4. Create a tree data structure and add few elements to it up to level 3. Now write a
logic to cut the tree at a given level and print all elements which were left off. In
above tree if we cut the tree at level1, then output = [4,5]
5. Write a program to find linkages of a given element
Col1 Col2
A B
C A
B D
E F
G D
G H
K J
Search element = A
A is linked to B, A is also linked to C (from col2)
B is linked to D
D is linked to G
G is linked to H
2 (Average) • Person understands following areas well but is not able to give practical examples
o Polymorphism
o Inheritance
o Abstraction
o Different types of variables such as constant, static variables, global variables
o Constructors, destructors
o Overloading operators
o Overloading functions
3 (Good) • Person can demonstrate working knowledge on various OOPS features.
E.g.,
- Explain Inheritance with sample classes. Any Live examples
in your project which you can provide.
Page 6 of 20
PERSISTENT SYSTEMS LIMITED
- C++: What is Virtual function? How does the late binding
works?
-
4 (Very Good) • Person has knowledge and experience on advanced areas with Live examples
- How does garbage collection work? What are the best practices
for avoiding memory leaks?
-
Multi- • Person understands multithreading and is able to demonstrate hands-
threading on expertise
• Able to write code or debug using threads (e.g. producer,
consumer problem with a fixed size buffer using condition
variables and mutex)
• Able to talk about executor life cycle – what order tasks are
executed, how many tasks may be queued
5 (Outstanding) • Person has knowledge on advanced areas like Templates with Live examples
Programming
Competency (1 Description
- 5)
1 (Poor) Person has not coded in the programming
2 (Average) Person understands basics of the programming language but has not used in a project, or
unable to solve the coding assignment in this programming language
3 (Good) Person can write correct code around most of these areas
C# .Net programming
//Q:
What is the difference between ArrayList and Array?
Page 8 of 20
PERSISTENT SYSTEMS LIMITED
that the enQueue and deQueue operations are
performed in constant time?
A: Node next to the front
Classes, Generics, Interfaces, //Q: What is the difference between Equality operator
Delegates, Reflection (==) and Equals() method in C#?
Input:
numberOfPoints = 3
Pune City 10.0 20.0
PuneAirport Airport 15.0 25.0
PuneStation Station 10.0 20.0
Yes
Func used when Lambda expression returns a value
Func<int, int> square = x => x * x;
[Link](square(5));
Page 10 of 20
PERSISTENT SYSTEMS LIMITED
A: Compile Time error as static variables cannot be
accessed using instance reference
Exception handling, finally //Q: What will the code print when we call divide(4, 0)?
try {
c = a / b;
}
catch (Exception e) {
[Link]("Exception ");
}
finally {
[Link]("Finally ");
}
return c;
}
A: Exception
Finally
General concepts (Reflection, //Q: Explain Reflection in .Net. Scenarios where .NET
Automapper) Reflection used by the Visual Studio IDE itself
Microservices framework
RESTful services development using //Q: How to prevent a network or service failure
Web API from cascading to other services?
Page 11 of 20
PERSISTENT SYSTEMS LIMITED
A:
Circuit Breaker pattern must be implemented
How to test services? //Q: How do write unit test cases for your Web
API application?
4 (Very Good) Person can write correct code around these areas
C# .Net programming
public class C : A{
public void printName(){
[Link]("Value-C");
}
}
}
Page 13 of 20
PERSISTENT SYSTEMS LIMITED
/
Garbage collection //Q: Study below code. When does the “Demo” object
instantiated at line 6 become eligible for garbage
collection?
class Test
{
private Demo d;
void start()
{
d = new Demo(); /* Line 6 */
[Link](d); /* Line 7 */
} /* Line 8 */
void takeDemo(Demo demo)
{
demo = null;
demo = new Demo();
}
}
A: When the instance running this code is made
eligible for garbage collection
API Development (.Net Core Web //Q: Explain different 40x response status codes in
API) RESTful API Design?
[Link] Core (MVC) //Q: Explain dependency Injection. How have you
implemented in your MVC application. If using .Net
core explain difference between AddSingleton,
AddScoped, AddTransient
Configure Middleware
Tracing, Best Practices //Q: How to add swagger support to the Web API
How .NET libraries like Swashbuckle works internally
Page 16 of 20
PERSISTENT SYSTEMS LIMITED
Avoid cartesian explosion when loading related
entities
Load related entities eagerly when possible
Beware of lazy loading
Buffering and streaming
Efficient updates by Batching
Bulk updates when possible
//Q: What are EF Core migrations and how did you perform
these migrations.
Non-functional aspects
Area Example questions
Unit test automation (nUnits, //Q: Write a xunit / nunit test class to test following
xunit, Moq) singleton class
private SomeSingletonClass() { }
Source code management (git //Q: git clone, checkout, pull, push, merge, branch
commands)
Performance testing and //Q: How to perform concurrent user testing?
monitoring tools //Q: How to generate test data?
//Q: How are the builds created in your project
Build tools used (MS Build, //Q: Explain how your project is deployed? Questions on
Deployment etc) deployment architecture. MS Build etc.
CI/CD tools (Jenkins) //Q: How is CI/CD Pipelines configured in your project.
How have you written the build files?
//Q: Have you created Jenkinsfile? What is the difference
between pipeline and agent directives?
Service Registry, Discovery, Configuration, //Q: Explain the use of Dapr for
Monitoring Microservices. Different features of Dapr
like –
Service Invocation, Traceability,
Observability, Scalability,
Design Principles
Competency (1 Description
- 5)
1 (Poor) • Person knows few names of the design patterns but unable to explain the use
2 (Average) • Person can explain few design patterns but is unable to map to real life requirements
3 (Good) • Person can explain and map design patterns and SOLID principles
Area Example Capabilities
Page 18 of 20
PERSISTENT SYSTEMS LIMITED
Design Patterns 1. Use case for Singleton – e.g., when initializing a Logger
class, or a database connection
2. Use of Factory – e.g., when you need to support
multiple database systems (SQL Server and Oracle) in
future, or when you have multiple file formats to be
supported with almost similar processing logic
3. Use of Builder – e.g., when constructing a large object
like a Virtual Machine which is built using different
objects like network, storage etc.
4. Use case for Façade pattern – hide complexity of the
larger system and provide a simple interface to the
client (E.g., Customer care is a façade for their
customers for different services)
5. For a given scenario, which design pattern makes most
sense? E.g., Façade vs Adaptor vs Decorator
SOLID Principles 1. Able to explain how Dependency Inversion works and
what benefits it can give (reusability, testability etc.)
2. Able to explain Open Closed Principle and how to
practice it using inheritance and interfaces
3. Define a class that follows Single Responsibility
principle
4. State some advantages of following SOLID principles
(e.g., extensibility, readability, testability)
5. How do you enforce Dependency Inversion? E.g.,
coding against interfaces rather than implementations
4 (Very Good) • Person has practical experience implementing design patterns and SOLID principles
• Person can explain the advantages and disadvantages of using these principles
• Person understands best practices for developing reliable code/system
Area Example Capabilities
Design Patterns 1. Able to write a Singleton class and
can explain how it works in multi-
threading context, whether it can be
inherited/cloned etc. (look for
private constructor, sealed/final
keywords etc.)
2. Shows how factory pattern is
implemented with a practical
example from project
3. Able to explain various design
patterns used in the project (current
or previous) with proper justification
4. Can think through project design to
see where a design pattern makes
sense and justify the same
5. Draw UML diagram of a design
pattern
SOLID Principles 1. Able to relate to project context -
E.g., how Open/Closed principle is
followed
2. How Interface Segregation principle
is applied in a working project
3. Able to explain with real project
experience on which SOLID
principles are strictly followed and
which one are not followed with
proper reasoning (legacy code with
Page 19 of 20
PERSISTENT SYSTEMS LIMITED
not much control over it etc. are
typical reasons)
4. What are some of the best practices
that are checked during code
reviews?
5. How to ensure that best practices
and guidelines are followed for a
new project development?
(Response should include creating
a base framework that follows
SOLID principles etc.)
5 (Outstanding) • Person also understands latest patterns like Microservices
Area Example Capabilities
Microservices 1. Talk about some of the design
patterns followed during
Microservices implementation (e.g.,
CQRS, Aggregator, API Gateway)
2. How to implement Observability
pattern/Distributed tracing in
microservices?
3. Talk about database patterns
followed in microservices
implementation and justify the use
of it
4. Explain the thought process when
breaking a monolith to microservice
based architecture
5. Advantages of using microservice
based architecture over monolithic
architecture?
Communication
Competency (1 Description
- 5)
1 (Poor) • English speaking and articulation not good. Is not able to understand the question
5 (Outstanding) • Very good articulation, confident. Also has good written communication. Has created
blogs and approaches.
Page 20 of 20