Ho presentato la mia candidatura tramite un'agenzia di reclutamento personale. La procedura ha richiesto una settimana. Ho sostenuto un colloquio presso Varonis Systems (Herzliya) nel mese di ago 2023
Colloquio
A zoom interview with two interviewers, 1 hour long. One of them briefly described the company and products, then asked some questions about my professional background, and specifically any intersting challenges or problems I solved. After that, a technical question.
Domande di colloquio [1]
Domanda 1
Implement local in-memory cache util that uses LRU as an eviction algorithm and works in a multithreaded environment. LRU means evicting the item that hasn’t been accessed the longest in case the cache is full. Each item should also hold a TTL and return Null when trying to fetch an item that its TTL passed. In addition, the cache should be limited in size. The perfomance (get, set) should be in optimal time.
Ho sostenuto un colloquio presso Varonis Systems (Herzliya)
Colloquio
3 itw:
- One with HR who was very nice
-One technical with the team leader. 2 coding questions style leetcode medium minus
- One technical with group leader- one question with sorting files content
Domande di colloquio [1]
Domanda 1
Given an integers arrays that represents price of actions. Find the best time to buy and sell. I needed to return an 2 length integer array with the indices of the price to sell and buy
Ho presentato la mia candidatura tramite un'altra fonte. La procedura ha richiesto 3 settimane. Ho sostenuto un colloquio presso Varonis Systems nel mese di feb 2025
Colloquio
Standard interview process. Regular leetcode and design questions, VP R&D, and HR interview. You are expected to be ready to answer questions in many areas, including deep multithreading and multiprocessing in Python and databases. Design questions are related to their domain. This should be enough to get you to the next stages :)
Domande di colloquio [4]
Domanda 1
Design a data structure that supports the following operations in O(1) time:
get(index: int) -> int: Retrieve the value at the specified index.
set(index: int, value: int): Update the value at the specified index.
set_all(value: int): Set all elements in the data structure to the specified value.
Requirements:
The data structure should be initialized with a fixed size, and all elements should initially be set to 0.
If set_all is called, subsequent get operations should return the globally set value unless the specific index has been updated after the set_all operation.
d = DataStructure(1000)
print(d.get(950)) # Output: 0
d.set(930, 5)
print(d.get(930)) # Output: 5
d.set_all(8)
print(d.get(950)) # Output: 8
print(d.get(930)) # Output: 8
d.set(910, 7)
print(d.get(910)) # Output: 7
print(d.get(10)) # Output: 8
What are the key differences in behavior and architecture between threading.Thread and multiprocessing.Process in Python? What are the implications for memory sharing and communication?