Backend Engineer Interview Experience and Technical Q&A at Huanju (YY)

This article shares a detailed account of a backend engineer's multi‑stage interview process at Huanju (formerly YY), covering personal background, common Java and system design questions, database and caching strategies, distributed lock handling, and reflections on preparation and outcomes.

IT Services Circle
IT Services Circle
IT Services Circle
Backend Engineer Interview Experience and Technical Q&A at Huanju (YY)

The author recounts a month‑long interview journey that culminated in an offer from Huanju, a major Chinese tech company, after completing several interview rounds.

Personal background: Graduated in 2017 with about four and a half years of experience, the author interviewed at companies such as ByteDance, Lazada, Tencent, and NetEase, ultimately receiving offers from Huanju and NetEase.

First interview (1 hour): The session began with a self‑introduction, followed by typical Java fundamentals questions—different types of locks, the upgrade process of synchronized, HashMap storage (array + linked list before Java 8, red‑black tree after), and the role of volatile (visibility and ordering via MESI). Thread‑pool parameters, rejection policies (CallerRunsPolicy, AbortPolicy, DiscardPolicy, DiscardOldestPolicy) and the use of SynchronousQueue were also discussed, as well as the keepAliveTime setting for idle threads.

Further questions covered the choice of RocketMQ over Kafka, the use of the CMS garbage collector and its drawbacks (CPU sensitivity, concurrent mode failure), and ways to mitigate CMS‑induced full GCs (e.g., -XX:CMSFullGCsBeforeCompaction).

Database topics included MySQL index structures (B‑tree), differences between primary and secondary indexes, index covering, and the behavior of composite indexes with mixed sort directions in MySQL 8.0.

Cache‑related questions explored Redis distributed locks (acquire, release, timeout), handling lock expiration, ensuring idempotency, cache penetration (empty‑object caching, Bloom filter), and cache avalanche mitigation (random TTL, mutex).

Spring AOP was briefly touched on (dynamic proxy) and the limitation of intra‑class method annotation interception.

Second interview (1 hour): Focused on project details such as coupon‑granting flow, sharding orders by user ID, using RocketMQ for async persistence, and handling high‑traffic scenarios. The author described a sharding migration using binlog subscription, considerations for data consistency, and strategies for flash‑sale (seckill) systems, including rate limiting, inventory deduction, and fallback mechanisms when Redis or MQ fails.

Third interview (2 hours): Conducted by the technical director, it was more conversational, covering company history, department responsibilities, and career advice.

HR interview: Discussed salary expectations and received the final offer.

Conclusion: The overall interview difficulty was moderate, with many standard “八股文” questions; thorough preparation allowed the author to navigate the process smoothly and secure the position.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

BackendperformanceredisThreadPoolmysqlinterview
IT Services Circle
Written by

IT Services Circle

Delivering cutting-edge internet insights and practical learning resources. We're a passionate and principled IT media platform.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.