Persistent Systems Limited interview experience Real time questions & tips from candidates to crack your interview

Fullstack Developer

Persistent Systems Limited
upvote
share-icon
3 rounds | 17 Coding problems

Interview preparation journey

expand-icon
Preparation
Duration: 4 Months
Topics: Data Structures, Algorithms, System Design, Aptitude, Python, Django, MongoDB, OOPS
Tip
Tip

Tip 1 : Must do Previously asked Interview as well as Online Test Questions.
Tip 2 : Go through all the previous interview experiences from Codestudio and Leetcode.
Tip 3 : Do at-least 2 good projects and you must know every bit of them.

Application process
Where: Referral
Eligibility: Atleast 6 months of experience
Resume Tip
Resume tip

Tip 1 : Have at-least 2 good projects explained in short with all important points covered.
Tip 2 : Every skill must be mentioned.
Tip 3 : Focus on skills, projects and experiences more.

Interview rounds

01
Round
Medium
Video Call
Duration60 Minutes
Interview date9 Sep 2020
Coding problem7

This round was heavily inclined towards some basic fundamentals of Python and its libraries.

1. Python Question

What is the key difference b/w Lists and Tuples in Python?

Problem approach

The key difference between the two is that while lists are mutable, tuples on the other hand are immutable objects. This means that lists can be modified, appended or sliced on the go but tuples remain constant and cannot be modified in any manner.

2. Python Question

What is __init__ in Python?

Problem approach

"__init__" is a contructor method in Python and is automatically called to allocate memory when a new object/instance is created. All classes have a "__init__" method associated with them. It helps in distinguishing methods and attributes of a class from local variables.

3. Python Question

What is lambda in Python? Why is it used?

Problem approach

Lambda is an anonymous function in Python, that can accept any number of arguments, but can only have a single expression. It is generally used in situations requiring an anonymous function for a short time period. Lambda functions can be used in either of the two ways:

Assigning lambda functions to a variable :

mul = lambda a, b : a * b
print(mul(4, 6)) # output => 24

Wrapping lambda functions inside another function :

def myWrapper(n):
return lambda a : a * n
mulFive = myWrapper(4)
print(mulFive(6)) # output => 24

4. Python Question

What is the difference between .py and .pyc files?

Problem approach

1) .py files contain the source code of a program. Whereas, .pyc file contains the bytecode of your program. We get bytecode after compilation of .py file (source code). .pyc files are not created for all the files that you run. It is only created for the files that you import.

2) Before executing a python program python interpreter checks for the compiled files. If the file is present, the virtual machine executes it. If not found, it checks for .py file. If found, compiles it to .pyc file and then python virtual machine executes it.

3) Having .pyc file saves you the compilation time.

5. Python Question

How Python is interpreted?

Problem approach

1) Python as a language is not interpreted or compiled. Interpreted or compiled is the property of the implementation. Python is a bytecode(set of interpreter readable instructions) interpreted generally.

2) Source code is a file with .py extension.

3) Python compiles the source code to a set of instructions for a virtual machine. The Python interpreter is an implementation of that virtual machine. This intermediate format is called “bytecode”.

4) .py source code is first compiled to give .pyc which is bytecode. This bytecode can be then interpreted by the official CPython or JIT(Just in Time compiler) compiled by PyPy.

6. Python Question

How are NumPy arrays advantageous over python lists?

Problem approach

1) The list data structure of python is very highly efficient and is capable of performing various functions. But, they have severe limitations when it comes to the computation of vectorized operations which deals with element-wise multiplication and addition. 

2) The python lists also require the information regarding the type of every element which results in overhead as type dispatching code gets executes every time any operation is performed on any element. This is where the NumPy arrays come into the picture as all the limitations of python lists are handled in NumPy arrays.

3) Additionally, as the size of the NumPy arrays increases, NumPy becomes around 30x times faster than the Python List. This is because the Numpy arrays are densely packed in the memory due to their homogenous nature. This ensures the memory free up is also faster.

7. Python Question

Define GIL.

Problem approach

GIL stands for Global Interpreter Lock. This is a mutex used for limiting access to python objects and aids in effective thread synchronization by avoiding deadlocks. GIL helps in achieving multitasking (and not parallel computing).

There are three threads in GIL representation. First Thread acquires the GIL first and starts the I/O execution. When the I/O operations are done, thread 1 releases the acquired GIL which is then taken up by the second thread. The process repeats and the GIL are used by different threads alternatively until the threads have completed their execution. The threads not having the GIL lock goes into the waiting state and resumes execution only when it acquires the lock.

02
Round
Medium
Video Call
Duration60 Minutes
Interview date9 Sep 2020
Coding problem8

This round had questions revolving around Django and Python and some questions from MongoDB.

1. Django Question

Explain Django Architecture

Problem approach

Django follows the MVT (Model View Template) pattern which is based on the Model View Controller architecture. It’s slightly different from the MVC pattern as it maintains its own conventions, so, the controller is handled by the framework itself. The template is a presentation layer. It is an HTML file mixed with Django Template Language (DTL). The developer provides the model, the view, and the template then maps it to a URL, and finally, Django serves it to the user.

2. Django Question

What is Django ORM?

Problem approach

This ORM (an acronym for Object Relational Mapper) enables us to interact with databases in a more pythonic way like we can avoid writing raw queries, it is possible to retrieve, save, delete and perform other operations over the database without ever writing any SQL query. It works as an abstraction layer between the models and the database.

3. Django Question

What are different model inheritance styles in the Django?

Problem approach

1) Abstract Base Class Inheritance: Used when you only need the parent class to hold information that you don’t want to write for each child model.

2) Multi-Table Model Inheritance: Used when you are subclassing an existing model and need each model to have its own table in the database.

3) Proxy Model Inheritance: Used when you want to retain the model's field while altering the python level functioning of the model.

4. Python Question

How is memory managed in Python?

Problem approach

1) Memory management in Python is handled by the Python Memory Manager. 

2) The memory allocated by the manager is in form of a private heap space dedicated to Python. 

3) All Python objects are stored in this heap and being private, it is inaccessible to the programmer. Though, python does provide some core API functions to work upon the private heap space.

4) Additionally, Python has an in-built garbage collection to recycle the unused memory for the private heap space.

5. Python Question

What is pickling and unpickling?

Problem approach

Pickling:

Pickling is the name of the serialization process in Python. Any object in Python can be serialized into a byte stream and dumped as a file in the memory. The process of pickling is compact but pickle objects can be compressed further. Moreover, pickle keeps track of the objects it has serialized and the serialization is portable across versions.
The function used for the above process is pickle.dump().



Unpickling:

Unpickling is the complete inverse of pickling. It deserializes the byte stream to recreate the objects stored in the file and loads the object to memory.
The function used for the above process is pickle.load().

6. Python Question

What are decorators? Write a decorator that logs the functions arguments.

Problem approach

Decorator is any function that takes in another function and adds functionality to it without manipulating the function itself. It does this by using a wrapper function.


def decorator(func):
def wrapper(*args):
print("Logging the parameter of ", func, " is ", args)
return func
return wrapper

@decorator
def operation(x, y):
return x+y

operation(5,20)


@decorator is just a syntactic sugar, it is equivalent to
res = decorator(operation(5,20))

7. MongoDB Question

What is a Collection in MongoDB?

Problem approach

A collection in MongoDB is a group of documents. If a document is the MongoDB analog of a row in a relational database, then a collection can be thought of as the analog to a table.
Documents within a single collection can have any number of different “shapes.”, i.e. collections have dynamic schemas. 
For example, both of the following documents could be stored in a single collection:

{"greeting" : "Hello Ninjas!", "views": 5}
{"signoff": "Have a nice day"}

8. MongoDB Question

Explain the process of Sharding.

Problem approach

1) Sharding is the process of splitting data up across machines. 
2) We also use the term “partitioning” sometimes to describe this concept. 
3) We can store more data and handle more load without requiring larger or more powerful machines, by putting a subset of data on each machine.
4) MongoDB’s sharding allows you to create a cluster of many machines (shards) and break up a collection across them, putting a subset of data on each shard. 
5) This allows your application to grow beyond the resource limits of a standalone server or replica set.

03
Round
Easy
HR Round
Duration30 Minutes
Interview date9 Sep 2020
Coding problem2

This is a cultural fitment testing round .HR was very frank and asked standard questions. Then we discussed about my role.

1. Basic HR Question

Why should we hire you ?

Problem approach

Tip 1 : The cross questioning can go intense some time, think before you speak.
Tip 2 : Be open minded and answer whatever you are thinking, in these rounds I feel it is important to have opinion.
Tip 3 : Context of questions can be switched, pay attention to the details. It is okay to ask questions in these round, like what are the projects currently the company is investing, which team you are mentoring. How all is the work environment etc.
Tip 4 : Since everybody in the interview panel is from tech background, here too you can expect some technical questions. No coding in most of the cases but some discussions over the design can surely happen.

2. Basic HR Question

Why are you looking for a job change?

Problem approach

Tip : For an experienced professional seeking a change, this is a common question. The easiest method to respond to this question is to state that you are leaving your current work in order to advance your career. Make sure you don't criticize or speak poorly about the company where you now work.

Here's your problem of the day

Solving this problem will increase your chance to get selected in this company

Skill covered: Programming

What is recursion?

Choose another skill to practice
Similar interview experiences
Analyst
3 rounds | 13 problems
Interviewed by Persistent Systems Limited
901 views
0 comments
0 upvotes
SDE - 1
3 rounds | 10 problems
Interviewed by Persistent Systems Limited
1341 views
0 comments
0 upvotes
Test Module Lead
3 rounds | 12 problems
Interviewed by Persistent Systems Limited
814 views
0 comments
0 upvotes
SDE - 1
2 rounds | 3 problems
Interviewed by Persistent Systems Limited
945 views
0 comments
0 upvotes
Companies with similar interview experiences
company logo
Fullstack Developer
3 rounds | 5 problems
Interviewed by HashedIn
1023 views
0 comments
0 upvotes
company logo
Fullstack Developer
3 rounds | 5 problems
Interviewed by CIS - Cyber Infrastructure
817 views
0 comments
0 upvotes
company logo
Fullstack Developer
4 rounds | 3 problems
Interviewed by Newgen Software
1062 views
0 comments
0 upvotes