I applied online. I interviewed at Riverside.FM in Jun 2026
Interview
The interview followed a live coding format — 45 minutes of coding followed by a review with the interviewer. The live coding portion started with a challenge to build a simplified version of the Jest testing framework from scratch. I had to implement the it, expect, and toEquals functions, making sure that failed assertions would throw an error containing the test name along with a reason for the failure. The interviewer then asked me to extend the implementation to support asynchronous tests using a done callback pattern, with the additional requirement that the test should automatically fail if the done callback was not invoked within 5 seconds. After the coding portion, the conversation shifted to questions based on my CV. The interviewer was particularly interested in my experience with data management approaches, asking me to compare Context API and Zustand — when I would choose one over the other and what trade-offs I considered in past projects. They also asked about my experience with WebSockets, digging into projects where I had used real-time communication and how I handled challenges like reconnection, state synchronization, and scaling. We then discussed frontend performance optimization strategies, including patterns around memoization, rendering, and code splitting that I had applied in production. They also asked about the AI assistants and tools I use in my daily workflow — what my practices are, how I integrate them into development, and how they have changed my productivity. Toward the end, they dug into my career trajectory, asking about the biggest technical challenges I had faced, how I approach architectural decisions, and the reasoning behind some of the shorter tenures on my resume. The tone throughout was conversational and collaborative rather than interrogative.
Interview questions [1]
Question 1
Build a simplified version of the Jest testing framework from scratch — implement the it, expect, and toEquals functions with proper error messages containing the test name. Then extend it to support asynchronous tests using a done callback pattern with a 5-second timeout.
The interview process included an initial conversation with a recruiter focused heavily on a feature I had built, followed by a technical interview with a team lead. The second interview felt less relevant to the role, with an emphasis on general questions rather than my actual experience or technical depth. Afterward, I received a rejection email that appeared to reference a take-home assignment, even though the process I went through was an interview-based process.
I applied through an employee referral. The process took 1 week. I interviewed at Riverside.FM (Tel Aviv-Yafo) in Mar 2025
Interview
The first interview involved implementing the following functions:
- **Implement `Array.prototype.forEach`**
- **Implement `Array.prototype.map` using your `forEach`**
- **Implement `Array.prototype.reduce` using your `map` function**
- **Implement the debounce concept (using `setTimeout`)**
Additionally, there was a section where I had to **explain the architecture of a large project** I had worked on in my previous company.
The second interview was an **architecture interview**, which included:
1. **Designing a database** to implement a **products and discounts** concept.
2. **Architecting a solution for Riverside**, where a video is recorded, stored in high quality in the **browser**, and then uploaded in **chunks** to a server (e.g., storing it in **S3**).
The interviewer expected me to suggest storing the videos in the **browser's IndexDB**, which I was unfamiliar with and felt was very **specific to their product**.
An **HR interview** was scheduled alongside the second interview. The recruiter was supposed to get back to me with an answer by **Thursday**, to confirm whether I actually had the HR interview on **Sunday at 10 AM**.
She **didn’t do that** and instead called me on **Friday morning, during my day off**, to inform me that I hadn’t passed.
When I shared my concerns with her, I pointed out **two issues with their process**:
1. I was explicitly told that the interview would be in **Hebrew**, but it was conducted in **English**.
2. There were **two air raid sirens** that day, which affected my performance, so I asked for **another opportunity**.
She said she would get back to me by **Monday**—but she **never did**.
This isn’t something I would normally do, but I felt it was worth trying, and I was **disappointed to be ignored**.
Interview questions [2]
Question 1
The first interview involved implementing the following functions:
Implement Array.prototype.forEach
Implement Array.prototype.map using your forEach
Implement Array.prototype.reduce using your map function
Implement the debounce concept (using setTimeout)
The second interview was an architecture interview, which included:
1. Designing a database to implement a products and discounts concept.
2. Architecting a solution for Riverside, where a video is recorded, stored in high quality in the browser, and then uploaded in chunks to a server (e.g., storing it in S3).