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)
Describe the differences between stateless and stateful applications.
Explain the concept and implications of Python's Global Interpreter Lock (GIL).
Discuss memory management and threading in Python.
Is Python single-threaded or multi-threaded, and why?
Explain the differences and use cases of ASGI and WSGI.
Define and give examples of polymorphism in programming.
Explain Python decorators and generators, including their use cases.
What is a CSRF token, and how does it protect against CSRF attacks?
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.
Explain the ACID properties (Atomicity, Consistency, Isolation, Durability) in database transactions.
How is consistency maintained in a distributed system?
Explain the differences and trade-offs between multithreading and multiprocessing.
How does Python manage multi-threading if the Global Interpreter Lock (GIL) maintains a single-threaded nature?
Explain what middleware is and describe any applications where you have used it.
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.