Cracking the CRED Backend Engineer Interview
Backend Engineers at CRED build the complex, highly secure infrastructure that processes massive volumes of credit card data, rewards, and UPI transactions. The interview process is extremely rigorous, focusing on high-level system architecture, database ACID properties, concurrency, and distributed systems.
Phase 1: Machine Coding and Concurrency
Before designing systems, you must prove you can write optimal, thread-safe code.
- Machine Coding: You may be asked to design and code a small application in 90 minutes. Example: "Design an in-memory queue system with publisher/subscriber models."
- Concurrency: This is crucial for fintech. You must deeply understand locks, mutexes, thread pools, and handling race conditions. "How do you handle a scenario where two requests try to deduct CRED coins from the same account simultaneously?"
Phase 2: Database Design and Internals
CRED relies heavily on data consistency; losing a transaction or a reward point is unacceptable.
- Database Internals: You must understand how databases work under the hood. "Explain the difference between Read Committed and Serializable isolation levels."
- ACID Properties: Expect deep questions on transaction management. "What is a distributed transaction? Explain the Two-Phase Commit (2PC) protocol or the Saga pattern."
- SQL vs. NoSQL: "When would you use Redis vs. DynamoDB vs. PostgreSQL for a reward claiming system?"
Phase 3: High-Level System Design (The Decider)
This round defines your level (SDE II vs. SDE III).
- The Scenario: "Design the backend architecture for CRED's Flash Rewards drops."
- Key Components to Discuss:
- High Throughput: How do you handle millions of users pinging the server at exactly 8:00 PM to claim a reward? (Hint: Load balancing, Rate Limiting, Kafka for asynchronous processing).
- Consistency: How do you ensure you don't award a single MacBook to two different users? (Hint: Distributed locks via Redis/Zookeeper, Optimistic locking in the database).
- Security: How do you encrypt sensitive financial data in transit and at rest?
Top 3 Technical Questions to Prepare
- Explain how you would handle a distributed transaction where money is deducted from a user's bank account but the bill payment API to the credit card company times out.
- Explain the concept of Optimistic vs. Pessimistic locking in a database. Which one would you use for a highly concurrent rewards claiming system?
- Design a distributed Rate Limiter that allows a maximum of 100 API requests per minute per user.



