Sharing my full TikTok/ByteDance (TT) loop. I interviewed at the 2-2 level.
Round 1 was coding: Word Search II, with a tech lead — probably a 3-1 or 3-2. The experience was good, no different from a big-tech interview, and his English was good too. The call software had a built-in coding pad. I nailed it with a trie, ran it to test it, no problems. I don't think they have a fixed question bank for this role. I think for senior interviews you need the high-frequency hard problems down cold, especially advanced data structures and algorithms. Near the end I started the reverse Q&A early, and the questions I'd carefully prepared also went well — he clearly knew his stuff.
Then the recruiter said "awesome." A week later they said the role had been filled. I'd booked a bit late — the best I could do was schedule for the following week, because I had a release to ship at work that week.
The recruiter said they weren't moving forward.
Then, plot twist, they said there was another opening, so I kept going — no need to interview again. In the middle of this, another recruiter also reached out to me, but you can only interview for one role at a time and would have to start over (ridiculous). Even though they could see the feedback, I paused that one and went back to this team.
Round 2 was with the hiring manager, in Chinese — a standard deep dive on my AI project. The manager was decent, technically sharp, and easy to talk to. It went smoothly because I'd already practiced this deep dive and AI-call pitch a few rounds by then, so I introduced it well and could answer everything. He probably learned something from it too — all valuable first-hand experience. Then he asked me to design an auction system, which isn't simple either — a hot item means high read and high write. Basically the standard stack: Redis as the primary store, plus Kafka, WebSocket, and SQL. WebSocket pushes the real-time highest price / bid history, Redis holds the current highest bid and the auction lock, Kafka asynchronously logs bids, and MySQL persists the final sale. I use Redis and Kafka daily so I'm very familiar with them, and I talked through the data flow and consistency for a hot-item scenario.
Feedback was good, so I moved to the final round. They schedule rounds one at a time.
Round 3 was with the big boss. This round didn't go well, and I have to complain about this manager. It was pure behavioral plus Q&A. From a product angle he questioned the effectiveness of my project, questioned the scope, asked a few questions with a mediocre attitude, didn't introduce himself at the start, and his tone was too aggressive. I felt like, as a high-caliber candidate, I wasn't shown respect.
In the end, almost two weeks with no feedback, just template responses. I followed up a few times, and it was slow. I'm guessing they'll say my experience has a gap or my background doesn't match, or something along those lines — it's always the same playbook.
Edit (2026-05-21 04:03 +08:00): I got the system design part wrong above — I actually used SSE. Users bid via REST; at high bid frequency it switches to WebSocket, for example in the tense final 30 seconds of an auction:
Auction Service (REST entry point) → Kafka (partitioned by auction ID, so bids within the same auction stay ordered) → Bid Worker (validates + updates MySQL + publishes to Redis) → SSE Server (Redis Pub/Sub → pushes to clients). MySQL stores all bids plus a state machine, not just the final sale.
Discussion
Loading comments…