Tubitv Software Engineer Interview Experience — Passed the Coding Rounds, Then Rejected After a Mandarin-Only Screen for a US Role

Tubitv·Software Engineer·Feb 2026
Technical ScreenRejectedmedium

I mass-applied online in March, and this is how the interview came about.

The process was:

Round one: coding — a log parser question, identical to one that's already been posted on the forum. I didn't actually get it running successfully during the interview, but the interviewer said at the end that I was on the right track. I ended up passing this round anyway.

Round two: "cache design." This was also a coding question, shown below. No need to worry about cache eviction. You have to write your own tests.

# Store a value with TTL in milliseconds (0 = no expiration)
put(key, value, ttl_ms) -> :ok
# Retrieve value; return nil if missing or expired
get(key, ) -> {:ok, value} | {:ok, nil}
# Remove a key
delete(key) -> {:ok, boolean}
# Count of all keys (including expired ones)
size() -> {:ok, integer}

Follow up:

Requirements
Implement a fetch operation that loads values on cache miss:
- If key exists and valid -> return cached value
- If key missing/expired -> call loader_fn(), cache result, return value
fetch(key, loader_fn, ttl_ms) -> {:ok, value} | {:error, reason}

Behavior
- Check cache first; return immediately if valid entry exists
- On miss: execute loader_fn() to compute/load the value
- Store the result with the given TTL
- Handle errors from loader_fn() gracefully (don't cache errors)
- Return the loaded value

Mock Upstream
defmodule MockDB do
def get_user(user_id) do
:timer.sleep(100)  # Simulate 100ms latency
%{id: user_id, name: "User #{user_id}"}
end
end

There were also a few follow-ups that didn't require writing code, like how to make it thread-safe, and what to do if there's a key conflict.

The last round was supposed to be a system design round with the hiring manager. Since I got rejected after the previous round, I never found out what the question would have been.

Below is just me venting.

After finishing round one, the recruiter emailed asking for my availability for round two. But it had to be after 9pm, because apparently the interviewer was in Beijing. I assumed the interviewer was just traveling or on vacation there, and thought: does it really have to be this specific person? Can't we just wait until they're back? I figured interviewing at 9pm would leave me tired and not in great shape, but job hunting leaves you no choice, so I just went along with it.

Once the interview started, I realized the interviewer actually worked out of Beijing. Tubi does have a team in China, but there's no China-facing product — so they're building the US product out of China. I'm not totally sure why they're set up this way.

The interviewer wanted to do the interview in Mandarin, but I didn't know the Mandarin terms for a lot of technical vocabulary, like "thread safe." There was probably some communication friction because of that. I don't know why a role for North America would require the interview to be conducted in Mandarin. I also don't know what happens if the candidate doesn't speak Mandarin at all.

The interviewer explicitly said that as long as I got the 3 basic functions working, that would be enough — the follow-up was optional. I did get all 3 functions working, and I thought they were bug-free, so I don't know why I still got rejected if that was the bar. (I really didn't finish the follow-up, because I forgot how to pass a function into another function at that moment, so I said I'd need to Google the syntax. Then the interviewer said, okay, let's skip it then.)

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Tubitv
Role
Software Engineer
Rounds
Technical Screen
Outcome
Rejected
Difficulty
medium
Interview date
Feb 2026
Questions from this interview
2 questions

Real Tubitv interview experiences

First-hand reports from Tubitv candidates — the rounds, the questions they were asked, and how it went.

All 6 Tubitv interview experiences