HDFC - Golang Backend Engineer Interview Experience
Recently attended the interview process for HDFC - Golang Backend Engineer. Below are the questions asked across all the rounds.
Experience: ~4 Years (Golang Backend)
Screening Round
Golang
- What are goroutines?
- How are goroutines different from OS threads?
- What are channels?
- How do channels work internally?
- How does Go manage memory?
- What happens when a buffered channel becomes full?
- Advantages of Go over Java or Node.js for backend systems.
APIs
- Difference between REST and gRPC APIs.
- Are REST APIs stateful or stateless?
- Difference between GraphQL and REST APIs.
- Difference between JWT and session-based authentication.
System Design & Backend
- What is Docker?
- What is Kubernetes?
- What are message queues, and when are they used?
- Difference between SQL and NoSQL databases.
- In which scenarios would you use an SQL database?
- In which scenarios would you use a NoSQL database?
- Difference between Monolith and Microservices.
- When would you choose a Monolith over Microservices?
- When would you choose Microservices architecture?
- What is backpressure?
- What are the different cache write strategies?
- What are the different cache eviction policies?
- How would you prevent cache stampede?
AI
- As a senior engineer, if you are asked to work with a new framework or unfamiliar technology, how would you leverage AI to learn and deliver efficiently?
Coding Question 1
Given an array of integers, implement a solution using multiple goroutines to find all unique sums generated by adding every pair of numbers.
Example
Input:
[1, 3, 6, 8]
Possible sums:
1+3=4
1+6=7
1+8=9
3+6=9
3+8=11
6+8=14
Output:
4 7 9 11 14
Constraints
- Use multiple goroutines.
- The implementation should be synchronous.
- Duplicate sums should appear only once.
Coding Question 2
Write a program to print numbers from 0 to 9 using two separate goroutines.
Requirements:
- One goroutine should print even numbers.
- One goroutine should print odd numbers.
- The output should be synchronized so that the numbers are printed in order.
Expected Output
Technical Round
Golang
- What is bounded concurrency? How is it implemented using worker pools?
- How would you allocate the number of CPU cores to a Go program (
GOMAXPROCS)?
- What is the order of execution when multiple
defer statements are used?
- Explain Go's garbage collector.
- Which algorithm does Go's garbage collector use?
- What are the latest improvements in Go 1.26 (e.g., Green Tea GC, SwissMap,
encoding/json/v2)?
- Difference between:
- Single quotes (
' ')
- Double quotes (
" ")
- Backticks (
` `)
Maps
- Declare a global map.
- Why do we use
make()?
- How do you check whether a key exists in a map?
- What hashing algorithm is used internally by Go maps?
Environment
- How do you get all environment variables in Go?
- Difference between
GOROOT and GOPATH.
OOP & Design Principles
- Explain Object-Oriented Programming concepts with Go implementations.
- Why do we use pointer receivers instead of value receivers?
- Explain interfaces in Go.
- What benefits do interfaces provide?
- Write an example demonstrating polymorphism using interfaces.
- Explain the SOLID principles.
Microservices
- What is the SAGA pattern?
- What is the Strangler Fig pattern?
- Difference between Orchestration and Choreography.
- What is a Circuit Breaker?
- Implement a Circuit Breaker in Go.
AI
- What exposure do you have to AI?
- How are voice agents implemented? (STT → VAD → LLM → TTS)
- Where is the data stored? (PostgreSQL + pgvector)
- What latency requirements do you target?
- How do you manage concurrency and scaling?
- Are you using RAG? Explain how it works.
Coding Questions
1. Panic Recovery
- Write a panic recovery block.
- Explain the lifecycle of
panic, defer, and recover.
2. TTL Cache
- Design and implement a TTL Cache with an HTTP server.
3. Concurrency
- Write a program to print odd and even numbers alternately using two goroutines.
4. Interfaces
- Explain interfaces in Go.
- Write a program demonstrating polymorphism using interfaces.
Final Round
Mostly discussion-based.
Topics covered:
- Previous company experience
- Projects
- Golang expertise
- Previously faced Techincal problems
- Backend architecture
- Skills and future goals
- Concurrency Patterns
Overall Focus Areas
If you're preparing for the HDFC Golang Backend Engineer role, make sure you're comfortable with:
- Go internals (goroutines, scheduler, channels, memory management, GC, maps)
- Concurrency patterns (worker pools, bounded concurrency, synchronization)
- REST, gRPC, GraphQL
- Authentication & Authorization (JWT, OAuth, Sessions)
- SQL vs NoSQL and database optimization
- Docker & Kubernetes
- Caching strategies, eviction policies, and cache stampede prevention
- Message queues and backpressure
- Microservices patterns (SAGA, Strangler Fig, Orchestration vs Choreography)
- Circuit Breaker pattern
- Go interfaces, OOP concepts, and SOLID principles
- AI fundamentals (LLMs, RAG, voice agents, vector databases)
- Coding using goroutines, channels, panic recovery, and cache design
- Behavioral and project-based discussions
Overall, the interview was heavily focused on Go internals, concurrency, backend architecture, microservices, AI fundamentals, and practical problem-solving.
Good luck to everyone preparing! 🚀