Interview guides · Sberbank
Sberbank Software Engineer Interview Guide
Sberbank Software Engineer interview guide: reported rounds, questions and how candidates describe the process.
The 60-second brief
As a Software Engineer at Sberbank, you play a central role in building, scaling, and maintaining the core technological infrastructure that powers one of the largest financial and technological ecosystems. Your day-to-day contributions directly influence high-availability distributed systems, secure transaction processing platforms, and cutting-edge data services used by millions of customers daily. This position bridges complex architectural vision with robust implementation, requiring you to write performant code while keeping security, scalability, and maintainability at the forefront. The work spans diverse domains, from high-load banking microservices and enterprise backend platforms to specialized data pipelines and automated tooling.
This guide is scoped to a Software Engineer candidate at Sberbank.
Focus areas
- Java
- Data Structures & Algorithms (DSA)
- System Design
The Sberbank interview process
Sberbank candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.
Profile Screening
Initial screening of your profile and resume by HR, including preliminary scheduling checks.
What to demonstrate
- Initial screening of your profile and resume by HR
- Including preliminary scheduling checks
How to prepare
- Answer aloud and timed: What are the key differences between various smart pointer implementations in C++, and how do they manage memory safety?
- Answer aloud and timed: Can you explain how Java memory management works, particularly regarding garbage collection tuning and memory leaks?
Technical Evaluations
Candidates undergo technical evaluations, including language-specific screenings and coding challenges.
What to demonstrate
- Candidates undergo technical evaluations
- Including language-specific screenings and coding challenges
How to prepare
- Answer aloud and timed: How do you implement thread-safe operations in multithreaded applications using mutexes and atomic variables?
- Answer aloud and timed: What are the behavioral and structural differences between
std::vectorand other standard containers under high-load conditions?
Multi-Stage Technical Rounds
In-depth technical rounds covering algorithms, databases, and system design.
What to demonstrate
- In-depth technical rounds covering algorithms, databases, and system design
- Depth in Java
How to prepare
- Answer aloud and timed: How do you handle stream processing and optional values effectively in modern backend applications?
- Answer aloud and timed: How do Spring Transactions manage propagation levels and isolation behaviors under heavy concurrent loads?
Hiring Manager Conversation
Discussion with the hiring manager or team lead about cultural fit, past experience, and team alignment.
What to demonstrate
- Discussion with the hiring manager or team lead about cultural fit, past experience, and team alignment
- Depth in Java
How to prepare
- Prepare two projects you led end to end, each with the decision you owned and what it cost.
- Have three questions about the team's roadmap and how success is measured in the first six months.
Where candidates lose points
Brush up on your core language internals
Do not rely solely on framework magic; make sure you understand memory models, garbage collection, concurrency primitives, and standard library implementations for your primary language.
Structure your behavioral answers
Use the STAR method (Situation, Task, Action, Result) when discussing past projects, production incidents, or teamwork challenges to keep your stories concise and impactful.
Practice live coding and articulation
Practice writing code while talking through your logic out loud. Interviewers care as much about how you think and troubleshoot as they do about the final syntax on the screen.
Prepare thoughtful questions for your interviewers
Asking insightful questions about the team's tech stack, deployment frequency, and scalability challenges demonstrates genuine engagement and senior-level maturity.
Questions & practice
What are the key differences between various smart pointer implementations in C++, and how do they manage memo
Medium · Core Programming & Language Mechanics
What are the key differences between various smart pointer implementations in C++, and how do they manage memory safety?
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
Can you explain how Java memory management works, particularly regarding garbage collection tuning and memory
Medium · Core Programming & Language Mechanics
Can you explain how Java memory management works, particularly regarding garbage collection tuning and memory leaks?
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
How do you implement thread-safe operations in multithreaded applications using mutexes and atomic variables?
Medium · Core Programming & Language Mechanics
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
What are the behavioral and structural differences between std::vector and other standard containers under h
Medium · Core Programming & Language Mechanics
What are the behavioral and structural differences between std::vector and other standard containers under high-load conditions?
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
How do Spring Transactions manage propagation levels and isolation behaviors under heavy concurrent loads?
Medium · Frameworks & System Components
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
How do you configure and optimize thread pools within enterprise application servers?
Medium · Frameworks & System Components
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
Write a function to process and filter a collection of items using functional stream operations.
Medium · Algorithms & Coding Challenges
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Given a dataset with irregular distribution, how would you optimize an algorithmic search for a specific targe
Medium · Algorithms & Coding Challenges
Given a dataset with irregular distribution, how would you optimize an algorithmic search for a specific target value?
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Can you solve a classic LeetCode Medium algorithmic challenge while explaining your time and space complexity
Medium · Algorithms & Coding Challenges
Can you solve a classic LeetCode Medium algorithmic challenge while explaining your time and space complexity trade-offs?
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
Review this snippet of provided code, identify potential concurrency bottlenecks, and rewrite it for thread sa
Medium · Algorithms & Coding Challenges
Review this snippet of provided code, identify potential concurrency bottlenecks, and rewrite it for thread safety.
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
Implement a custom data structure that supports insert, delete, and random retrieval operations in constant ti
Medium · Algorithms & Coding Challenges
Implement a custom data structure that supports insert, delete, and random retrieval operations in constant time.
Approach
- Restate the input: its shape, its size, and what is guaranteed about it.
- Name the brute-force solution and its complexity before improving on it.
- Choose the data structure from the access pattern, not from familiarity.
- State the target complexity and say which constraint rules the naive version out.
Follow-up
- How does this change if the input no longer fits in memory?
- What is the worst case, and how likely is it on real data?
What would you do if a critical production deployment caused unexpected memory fragmentation or thread deadloc
Medium · Behavioral & Situational Scenarios
What would you do if a critical production deployment caused unexpected memory fragmentation or thread deadlocks?
Approach
- Say what the runtime actually does before reasoning about the code.
- Name what is shared across threads and what owns each piece of state.
- Identify the window where an invariant is briefly untrue.
- Distinguish a value from a reference to it, and say which one you handed out.
Follow-up
- What happens if two callers reach this at the same time?
- Where could this allocate more than you expect?
How do you approach optimizing a complex, slow-running SQL query involving multiple joins and aggregations?
Medium · Databases & Data Architecture
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
Walk me through your background, key career accomplishments, and what motivates you to join our engineering te
Medium · Behavioral & Situational Scenarios
Walk me through your background, key career accomplishments, and what motivates you to join our engineering team.
Approach
- Name the grain you start from and join outward from it.
- Check whether any join is one-to-many before aggregating, or the sums inflate.
- Say which index the query would use, and what makes it unusable.
- Handle the rows that do not match: that is usually the actual question.
Follow-up
- How does the query change if that join becomes one-to-many?
- What happens to this when the table is ten times larger?
What are the core architectural differences between REST and GraphQL APIs regarding payload efficiency and cac
Medium · Frameworks & System Components
What are the core architectural differences between REST and GraphQL APIs regarding payload efficiency and caching?
Approach
- Say who the caller is and what they do when the call fails halfway.
- Define the identity of a request so a retry cannot double-apply it.
- Separate accepted, pending, failed and confirmed; they are different facts.
- Design the error taxonomy before the success shape; callers branch on it.
Follow-up
- What happens if the caller retries after a timeout?
- How does a client discover it is on an old version of this contract?
Can you explain how Hibernate caching mechanisms work and how you prevent N+1 select problems?
Medium · Frameworks & System Components
Approach
- Clarify what is being asked and what a complete answer contains.
- State your assumptions explicitly before working the problem.
- Say what you would check first and why it is the highest-information step.
- Work from the requirement backwards to the design.
Follow-up
- What assumption would you test first?
- How would you know your answer was wrong?
What strategies do you use for connection pooling and transaction management in distributed database environme
Medium · Frameworks & System Components
What strategies do you use for connection pooling and transaction management in distributed database environments?
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How do database indexing strategies impact query performance in high-throughput transactional systems?
Medium · Databases & Data Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
Can you explain the practical differences between DDL, DML, DCL, and TCL commands in relational databases?
Medium · Databases & Data Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
What role do database partitioning and vacuum processes play in maintaining large-scale database health?
Medium · Databases & Data Architecture
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
How do you ensure data consistency across multiple microservices without relying exclusively on distributed lo
Medium · Databases & Data Architecture
How do you ensure data consistency across multiple microservices without relying exclusively on distributed locks?
Approach
- Fix the scope first: who calls this, how often, and what they do when it fails.
- Name the read and write paths separately; they rarely have the same bottleneck.
- Choose a partition key and say what query it makes expensive.
- State the consistency you need, and where you are willing to be stale.
Follow-up
- What breaks first when traffic grows ten times?
- How does this behave when that dependency is down for an hour?
One customer endpoint stalls deliveries to every other destination
Medium · bulkhead · timeouts · saturation
The egress service delivers about 1.5k webhooks/second across 40,000 destinations, with a per-destination concurrency cap of 4 and a 10-second connect-plus-read timeout. Throughput falls to 300/second, queue depth climbs, and p99 delivery latency for unaffected destinations goes from 200 ms to minutes, while the error rate barely moves. One tenant holds 900 destination rows whose URLs share a hostname that now answers in 9.5 seconds. Explain the mechanism with the arithmetic, then give the containment in the order you would apply it.
Approach
- Look at saturation before errors. A flat error rate with collapsing throughput says nothing is failing, things are waiting, so the first signal to pull is in-flight request count or pool wait time rather than the error counter. This is the distinction that decides the whole investigation.
- Group in-flight work by resolved host, not by destination id. The cap is keyed per destination row, so 900 rows sharing one hostname buy 3,600 concurrent slots against a single host, each held for 9.5 seconds. The bulkhead was never a bulkhead for that host, and grouping by the wrong dimension is why the dashboard looked healthy.
- Do the arithmetic in both directions. Required concurrency is arrival rate times latency, so 1.5k/second at 200 ms needs about 300 in flight, which is entirely consumed by 3,600 slow slots; conversely whatever concurrency is left sustains rate equals concurrency divided by 9.5 seconds, which is the 300/second you are seeing. Matching both numbers is what promotes this from a plausible story to the mechanism.
- Explain why the circuit breaker never helped. It opens on consecutive failures, and a 9.5-second response inside a 10-second timeout is a success. Slow is not failing, so an error-rate breaker cannot see this; you need a slow-call ratio, a deadline propagated from the caller's remaining budget, or a concurrency limiter.
Follow-up
- The host recovers to 80 ms. How long does the queue take to drain, and what does the drain do to the recovered host?
- Where should the 10-second timeout number actually come from?
Suggested practice checklist
Built from the rounds and topics Sberbank candidates report.
Day 1 — Map the Sberbank loop
- Write out the reported sequence: Profile Screening, Technical Evaluations, Multi-Stage Technical Rounds, Hiring Manager Conversation.
- For each round, write one sentence on what it is judging, from the description above, and mark the one you are least ready for.
Deliverable: A one-page map of the 4 reported rounds, with the weakest marked.
Day 2 — Work Java
- Spend the session on Java, which Sberbank candidates report being tested on.
- Write one worked example in Java and time yourself on it.
Deliverable: One timed worked example in Java.
Day 3 — Work Data Structures & Algorithms (DSA)
- Spend the session on Data Structures & Algorithms (DSA), which Sberbank candidates report being tested on.
- Write one worked example in Data Structures & Algorithms (DSA) and time yourself on it.
Deliverable: One timed worked example in Data Structures & Algorithms (DSA).
Day 4 — Work System Design
- Spend the session on System Design, which Sberbank candidates report being tested on.
- Write one worked example in System Design and time yourself on it.
Deliverable: One timed worked example in System Design.
Day 5 — Answer out loud: Core Programming & Language Mechanics
- Answer aloud, timed: What are the key differences between various smart pointer implementations in C++, and how do they manage memory safety?
- Answer aloud, timed: Can you explain how Java memory management works, particularly regarding garbage collection tuning and memory leaks?
Deliverable: Spoken answers to 2 reported Core Programming & Language Mechanics question(s), under time.
Day 6 — Answer out loud: Frameworks & System Components
- Answer aloud, timed: How do Spring Transactions manage propagation levels and isolation behaviors under heavy concurrent loads?
- Answer aloud, timed: What are the core architectural differences between REST and GraphQL APIs regarding payload efficiency and caching?
Deliverable: Spoken answers to 2 reported Frameworks & System Components question(s), under time.
Day 7 — Answer out loud: Databases & Data Architecture
- Answer aloud, timed: How do database indexing strategies impact query performance in high-throughput transactional systems?
- Answer aloud, timed: Can you explain the practical differences between DDL, DML, DCL, and TCL commands in relational databases?
Deliverable: Spoken answers to 2 reported Databases & Data Architecture question(s), under time.
Behavioural preparation
Behavioural rounds judge the decision you made and what it cost.
How do you handle stream processing and optional values effectively in modern backend applications?
Medium · Core Programming & Language Mechanics
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
How do you handle disagreements with a team member regarding architectural choices or code style?
Medium · Behavioral & Situational Scenarios
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
Tell me about a time you had to optimize a legacy system under severe time constraints.
Medium · Behavioral & Situational Scenarios
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?
How do you prioritize your tasks when managing multiple competing feature requests and bug fixes?
Medium · Behavioral & Situational Scenarios
Approach
- Pick a story where you made the decision, not one where you watched it.
- State the situation in two sentences and spend the rest on the reasoning.
- Give the blast radius: what could have broken, and what you measured.
- Name the disagreement and how you resolved it with evidence.
Follow-up
- What would you do differently if you ran that again?
- How did you know your change caused the improvement?