I knew I wouldn't pass the interview within the first 5 minutes. The interviewer spoke very little English and kept telling me that my microphone "sucked." I connected three different microphones, and he complained about all of them. This took roughly 10 minutes to resolve.
He then asked about a project on my resume. Specifically, he asked what data structure Redis uses for its sorted set and what algorithm would be used for insertion. I misspoke initially, saying "binary search" before correcting myself and mentioning a skip list (knowing inserts were O(log n)). He seemed unimpressed that I didn't know the answer off the top of my head.
Next, he asked about Cassandra and its benefits. I mentioned high availability, scalability, low latency, linear scalability, and a few other points, though I've forgotten the details. I also compared these benefits with PostgreSQL.
After mentioning PostgreSQL, he asked about primary and secondary indexes, read performance, and considerations when choosing a primary key. I detailed index size, the tradeoffs of common data types (int, UUID, string, etc.), and the difference between sequential scans and index scans, along with performance at scale.
He also briefly asked about concurrency and some other minor topics regarding database locking. While answering these questions, he was looking around his office/workspace and clearly wasn't paying attention. He also made no comments about my answers.
After about 25-35 minutes, we moved to the coding section. He gave me the question and said nothing, simply pulling it up and sitting there. I read the question aloud and asked clarifying questions, to which he responded only with "mhm."
The question was "Merge Two Sorted Lists." As I hadn't completed this question in a while, I walked through my solution and explained it to the interviewer. He just said "yeah" and added nothing further.
I coded the solution in Go and made a few syntax mistakes, which cost about 5 minutes. He seemed unimpressed that I forgot some minor Go syntax details. I completed the problem with test cases, but I'm certain the two syntax mistakes cost me a chance at moving to the next round.
Next, he asked me to solve it recursively. With about 10 minutes remaining, I was unsure if I could complete it, as 5 minutes were needed for the question portion. I wrote pseudocode and walked him through the recursive solution. He said it was correct but we needed to move on.
I asked about the company's work culture, the use of Go and procedural programming, and the best aspects of the job and company. His answers were each about 10 words or less.
Hopefully, others interviewing have a more positive experience than I did.
Green Flags:
Red Flags:
TL;DR: The interviewer didn't speak much English and wasn't engaged at all. He ignored my answers to most questions and provided no input. The coding question was easy, but two syntax problems, which took roughly 1.5 minutes to solve, cost me. Sydney engineers are expected to come into the office (Salesforce Tower, Circular Quay) four days a week.
Redis: What data structure is a sorted set?
Redis: What algorithm is used for inserting into a ZSet?
What are some benefits of Cassandra over other databases?
PostgreSQL: Can you explain the benefits of a primary key?
Database: What considerations do we need to make for a concurrent environment?
Coding Question: Merge Two Sorted Lists
The following metrics were computed from 1 interview experience for the TikTok Junior Backend Software Engineer role in Sydney, Australia.
TikTok's interview process for their Junior Backend Software Engineer roles in Sydney, Australia is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for TikTok's Junior Backend Software Engineer interview process in Sydney, Australia.