Meta Backend Engineer Interview Real Questions Collection: From Java Fundamentals to System Design

Technical InterviewAuthor: BeautyResume Team

Complete 3-round Meta backend engineer interview review for 3-year experienced Java developer, covering technical rounds 1&2 and HR interview with real questions on JVM, concurrency, Spring, MySQL, Redis, and system design

Background

I have 3 years of Java backend development experience, currently working on a food delivery dispatch system at a mid-size tech company. My tech stack includes Spring Boot + Spring Cloud + MySQL + Redis + RocketMQ. I applied to Meta in April this year through their careers page, targeting a Backend Engineer position. Honestly, Meta's interview reputation is polarizing — some say it's easy, others say it's hard. My experience was that they balance fundamentals and project depth equally. Unlike some companies that drill into source code, Meta really wants you to have meaningful project experience to discuss.

I spent about two weeks preparing, focusing on JVM, concurrency, Spring, MySQL, and Redis as high-frequency topics. For algorithms, I practiced LeetCode Hot 100 medium problems, emphasizing linked lists, trees, and dynamic programming. After applying, I waited 6 days before receiving the first interview notification. The entire process took about two and a half weeks.

Round 1: Technical Interview 1 (Video Call, ~65 minutes)

April 10th, 10 AM, Meta video call. The interviewer was a backend tech lead, looked to be in their early thirties, very direct. Started with self-introduction, then dove straight into technical questions.

1. Self-introduction

I briefly covered my work experience and tech stack, focusing on the core business of the dispatch system — order scheduling and driver assignment. About 3 minutes.

2. HashMap's underlying implementation

I explained JDK 1.8's HashMap: array + linked list + red-black tree, initial capacity 16, load factor 0.75. The interviewer asked why the threshold for converting linked list to red-black tree is 8 — I said it's based on Poisson distribution, where 8 collisions is extremely unlikely, and exceeding 8 indicates hash distribution issues or a potential attack.

3. ConcurrentHashMap implementation

JDK 1.7 uses Segment-based segmented locking, JDK 1.8 uses CAS + synchronized locking on bucket head nodes. The interviewer asked why JDK 1.8 doesn't use ReentrantLock — I said synchronized has been optimized with lock escalation since JDK 1.6, performing similarly to ReentrantLock while reducing object overhead.

4. Thread pool working principles

I covered the flow: core threads, task queue, non-core threads, rejection policy. The interviewer asked if core threads can be reclaimed — I said not by default, but setting allowCoreThreadTimeOut to true enables it. They also asked how to set thread pool size — I said CPU-intensive tasks use CPU cores + 1, IO-intensive tasks use CPU cores * 2.

5. Spring Boot auto-configuration

I explained @EnableAutoConfiguration within @SpringBootApplication, which loads configuration classes from META-INF/spring.factories via SpringFactoriesLoader, then filters using @Conditional annotations. The interviewer asked how to create a custom starter — I said write a configuration class and register it in spring.factories.

6. MySQL transaction isolation levels

I covered four: Read Uncommitted, Read Committed, Repeatable Read, Serializable. MySQL defaults to Repeatable Read. The interviewer asked if phantom reads can occur under RR isolation — I said snapshot reads are handled by MVCC, current reads by Next-Key Locks.

7. Why is Redis fast

I listed several reasons: 1) Pure in-memory operations; 2) Single-threaded avoids context switching and lock contention; 3) I/O multiplexing; 4) Efficient data structures. The interviewer asked how single-threaded Redis handles time-consuming operations — I said Redis 4.0+ uses child threads for deletion operations, and Redis 6.0 uses multi-threading for network I/O.

8. Algorithm: 3Sum (LeetCode 15)

Sorting + two pointers, finished in 15 minutes. The interviewer asked for time complexity analysis — O(n^2). I'd practiced this one before, so it went smoothly.

Received the Round 2 notification 3 days later.

Round 2: Technical Interview 2 (Video Call, ~80 minutes)

April 14th, 2 PM. This interviewer was the team's tech lead — questions focused more on system design and project depth.

1. Design a food delivery order dispatch system

I covered multiple layers: 1) Driver state management: online/offline/delivering; 2) Order scheduling strategy: proximity + load balancing + direction consistency; 3) Exception handling: auto-reassignment on timeout, re-dispatch on driver cancellation; 4) Data storage: driver real-time location in Redis GEO, order status in MySQL. The interviewer asked how to optimize the scheduling algorithm — I said genetic algorithms or reinforcement learning for intelligent scheduling, but rule engines suffice initially.

2. How to handle distributed transactions

I covered TCC and message-based eventual consistency. I focused on our project's use of RocketMQ transaction messages: send half message first, execute local transaction, commit or rollback based on results. The interviewer asked what happens if the consumer fails — I said retry mechanism + dead letter queue + manual compensation.

3. MySQL index optimization

I covered several principles: 1) Choose columns with high cardinality for indexes; 2) Composite indexes follow leftmost prefix rule; 3) Avoid index invalidation scenarios (functions, implicit conversion, LIKE starting with %); 4) Covering indexes reduce table lookups. The interviewer asked how to check if an index is being used — I said use EXPLAIN to check the type and Extra fields in the execution plan.

4. Redis cache breakdown, penetration, and avalanche

Breakdown: hot key expires, overwhelming requests hit the database — use mutex lock or never expire; Penetration: querying non-existent data — use Bloom filter or cache empty values; Avalanche: many keys expire simultaneously — use random expiration times. The interviewer asked about Bloom filter principles — I said bit array + multiple hash functions, with a false positive rate but no false negatives.

5. Project Deep-dive: Peak QPS and handling traffic spikes

I said lunch peak QPS is about 5,000, and extreme weather can push it to 8,000. Countermeasures: 1) Redis caching for driver status and order info; 2) RocketMQ peak shaving; 3) K8s elastic scaling; 4) Degradation strategy — disable non-core features. The interviewer asked how degradation is specifically implemented — I said using Sentinel to configure degradation rules, auto-degrading when QPS exceeds thresholds.

6. Most technically impressive optimization you've done

I described optimizing the order scheduling algorithm. Originally using simple nearest-match, driver utilization was low during peak hours. After introducing a direction consistency factor that prioritizes drivers heading toward the order destination, orders completed per driver per hour increased by 12%. The interviewer asked how direction consistency is calculated — I said using cosine similarity of vectors from origin to destination and from driver's current position to destination.

7. Algorithm: Longest Increasing Subsequence (LeetCode 300)

I used the DP + binary search O(nlogn) solution, finished in 20 minutes. The interviewer asked me to explain the binary search logic — I described maintaining a tails array where tails[i] represents the smallest tail element of an increasing subsequence of length i+1. The interviewer confirmed the understanding was correct.

8. Reverse Q&A

I asked about the team's tech stack and business direction. The interviewer said it's mainly Meta's delivery dispatch system, with Java + Spring Cloud + Redis + RocketMQ.

Round 3: HR Interview (Video Call, ~25 minutes)

April 18th, 11 AM. The HR round was relatively relaxed.

1. Why Meta

I said Meta's business scenarios are incredibly diverse — delivery, marketplace, and travel each present unique technical challenges that greatly benefit backend developer growth. Plus, Meta's tech blog quality is high, indicating a strong engineering culture.

2. Your strengths and weaknesses

Strength: strong execution skills, love solving real problems with code. Weakness: sometimes too focused on technical implementation while neglecting business value thinking — I'm learning to clarify business goals before diving into code.

3. Salary expectations

I stated my expectation, and HR said they'd provide a specific package after leveling.

4. Anything you'd like to ask

I asked about the team assignment process after onboarding. HR said it's based on project needs and personal preferences.

Interview Questions Summary

1. HashMap underlying implementation — Java Fundamentals — Medium

2. ConcurrentHashMap implementation — Java Concurrency — Medium

3. Thread pool working principles — Java Concurrency — Medium

4. Spring Boot auto-configuration — Spring — Medium

5. MySQL transaction isolation levels — Database — Medium

6. Why Redis is fast — Middleware — Medium

7. 3Sum — Algorithm — Medium

8. Food delivery dispatch system design — System Design — Hard

9. Distributed transaction handling — Architecture — Hard

10. MySQL index optimization — Database — Medium

11. Redis cache breakdown/penetration/avalanche — Middleware — Medium

12. Longest Increasing Subsequence — Algorithm — Medium

13. Delivery system peak QPS and countermeasures — Project — Hard

14. Order scheduling algorithm optimization — Project — Hard

Insights and Advice

1. Meta interviews emphasize project depth: Unlike some companies that drill into JVM source code, Meta digs deep into your projects. Order scheduling algorithm optimization and peak QPS handling — the interviewer asked very detailed questions. Project experience must be backed by data — don't just say "optimized," say "improved by 12%."

2. System design questions need real-world grounding: For designing a delivery dispatch system, don't jump straight into high-concurrency architecture. First explain the business logic and scheduling strategy, then discuss technical implementation. Interviewers value your ability to understand the business.

3. Java fundamentals must be solid but no source code drilling: HashMap, ConcurrentHashMap, and thread pools are guaranteed topics, but Meta won't ask about red-black tree rotation implementation details. Understanding principles and application scenarios is sufficient.

4. Medium algorithm problems must be stable: 3Sum and Longest Increasing Subsequence — these classics are mandatory, and you must be able to explain your approach clearly. For the LIS binary search optimization in Round 2, the interviewer specifically asked me to explain the logic.

Final Result: Received the offer on April 22nd, leveled at E4, based in Menlo Park. 12 days total from application to offer. Overall positive experience — interviewers were pragmatic throughout.

FAQ

Q: How many rounds are in Meta's backend interview?
A: Typically 3 rounds: technical round 1, technical round 2, and HR round. Some roles may have a cross-functional round.

Q: What does Meta's backend interview focus on?
A: Java fundamentals, concurrency, Spring, MySQL, and Redis are guaranteed topics. System design and project depth are also key focuses.

Q: Are Meta's algorithm requirements high?
A: Above average. LeetCode medium problems should be doable. Focus on arrays, linked lists, trees, and dynamic programming.

Q: Can I join Meta without big-tech experience?
A: Yes, but you need impressive project experience. I know someone from a traditional industry who passed based on an open-source project they built.

Q: What's the approximate salary for Meta's backend engineer?
A: E4 total compensation is roughly 180K-250K USD (including base, bonus, and RSUs), depending on leveling and negotiation.

#Meituan#Backend Development#面试 Real Questions#Java