Fynd | Python Developer I/II | Mumbai
Summary
I underwent a two-round interview process for a Python Developer I/II role at Fynd in Mumbai. The experience was noteworthy due to an unexpected repetition of technical questions across rounds, leading to my rejection.
Full Experience
Round #1
I started my interview process at Fynd with the first round, which primarily focused on Python fundamentals, web concepts, and computer science basics. I was asked to explain:
- The differences between stateless and stateful applications.
- Concepts related to the Global Interpreter Lock (GIL) in Python.
- Python's memory management and threading mechanisms.
- Whether Python is single-threaded or multi-threaded and why.
- The roles and differences of ASGI and WSGI.
- The principle of polymorphism.
- How Python decorators and generators work.
- What a CSRF token is and its purpose.
Following these conceptual questions, I proceeded to a coding section where I was presented with two LeetCode problems:
Round #2
For the second round, I was told to expect system design and database-related questions. While these topics were indeed covered, I was quite surprised when several questions from Round #1 were repeated. The questions I encountered included:
- An explanation of the ACID properties.
- How consistency is maintained in distributed systems.
- The differences between multithreading and multiprocessing.
- A follow-up on how Python manages multi-threading given the GIL's single-threaded nature.
- Discussion about middleware and any applications where I had used it.
- A description of the HTTP Request-Response cycle.
- Additionally, there were questions specifically related to my resume.
Ultimately, I was rejected after these rounds. The experience was indeed interesting, primarily due to the unexpected repetition of technical questions across the rounds.
Interview Questions (16)
Stateless vs Stateful Applications
Describe the differences between stateless and stateful applications.
Python Global Interpreter Lock (GIL)
Explain the concept and implications of Python's Global Interpreter Lock (GIL).
Python Memory Management and Threading
Discuss memory management and threading in Python.
Python Single-threaded vs Multi-threaded Nature
Is Python single-threaded or multi-threaded, and why?
ASGI vs WSGI
Explain the differences and use cases of ASGI and WSGI.
Polymorphism
Define and give examples of polymorphism in programming.
Python Decorators and Generators
Explain Python decorators and generators, including their use cases.
CSRF Token
What is a CSRF token, and how does it protect against CSRF attacks?
Valid Parenthesis String
Given a string s containing only three types of characters: '(', ')', and '*', return true if s is valid. The string is valid if: Any left parenthesis '(' must have a corresponding right parenthesis ')'. Any right parenthesis ')' must have a corresponding left parenthesis '('. Left parenthesis '(' must appear before the corresponding right parenthesis ')'. '*' could be treated as a single right parenthesis ')', a single left parenthesis '(', or an empty string. An empty string is also valid.
Daily Temperatures
Given an array of integers temperatures represents the daily temperatures, return an array answer such that answer[i] is the number of days you have to wait after the ith day to get a warmer temperature. If there is no future day for which this is possible, keep answer[i] == 0 instead.
ACID Properties
Explain the ACID properties (Atomicity, Consistency, Isolation, Durability) in database transactions.
Consistency in Distributed Systems
How is consistency maintained in a distributed system?
Multithreading vs Multiprocessing
Explain the differences and trade-offs between multithreading and multiprocessing.
Python Multithreading with GIL
How does Python manage multi-threading if the Global Interpreter Lock (GIL) maintains a single-threaded nature?
Middleware Concepts and Experience
Explain what middleware is and describe any applications where you have used it.
HTTP Request-Response Cycle
Describe the typical HTTP request-response cycle.
Preparation Tips
My key takeaway from this experience is the importance of thoroughly preparing for and reviewing any questions I struggled with in earlier rounds, as there's a possibility of them being repeated. I should also ensure a strong grasp of Python internals, web fundamentals, and system design basics to handle both expected and unexpected topics.