cswork / libraryOpen practice workspace

Interview guides · Sun Life Financial

Sun Life Financial Software Engineer Interview Guide

Sun Life Financial Software Engineer interview guide: reported rounds, questions and how candidates describe the process.

The 60-second brief

As a Software Engineer at Sun Life Financial, you are at the forefront of digital transformation within one of the world's leading financial services organizations. Sun Life relies heavily on its engineering teams to build, modernize, and maintain the complex digital infrastructure that supports millions of clients globally. Whether you are developing robust APIs using Spring Boot, designing responsive frontends with React, or leveraging cloud-native architectures on AWS, your work directly impacts how clients manage their wealth, insurance, and retirement plans. The engineering culture at Sun Life Financial balances the stability and security of a highly regulated financial institution with the agility of modern software development practices. Teams are tasked with solving complex problems around data integrity, system optimization, and global scalability.

This guide is scoped to a Software Engineer candidate at Sun Life Financial.

Focus areas

  • Object-Oriented Programming (OOP)
  • Java
  • Database Management Systems (DBMS)

The Sun Life Financial interview process

Sun Life Financial candidates report 8 rounds over 4-6 weeks. The stages below are what candidates describe, not a published process.

Recruiter Phone Screen

Initial call with a recruiter to discuss your background and assess fit for the role.

What to demonstrate

  • Initial call with a recruiter to discuss your background and assess fit for the role
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Be able to walk your CV end to end in two minutes, and say why this company specifically.
  • Have your salary expectations, notice period and location constraints ready, and ask for the rest of the loop in writing.

Technical Assessment

An online assessment that may include multiple-choice questions on OOP and basic web concepts.

What to demonstrate

  • An online assessment that may include multiple-choice questions on OOP and basic web concepts
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Answer aloud and timed: How does memory management work in Java, and what are the key differences between different collection types?
  • Answer aloud and timed: What are immutable classes in Java, and how do you create one?

Interviews with Hiring Managers

One or two rounds of interviews focusing on technical skills and cultural fit.

What to demonstrate

  • One or two rounds of interviews focusing on technical skills and cultural fit
  • Depth in Object-Oriented Programming (OOP)

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.

Online Assessment (India/Philippines)

A comprehensive online assessment covering aptitude, core computer science concepts, and coding.

What to demonstrate

  • A comprehensive online assessment covering aptitude, core computer science concepts, and coding
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Answer aloud and timed: What are the differences between primary keys, foreign keys, and unique constraints in DBMS?
  • Answer aloud and timed: Explain the concept of database normalization and when you might choose to denormalize a database.

Group Discussion (India/Philippines)

A collaborative discussion to evaluate communication and teamwork skills.

What to demonstrate

  • A collaborative discussion to evaluate communication and teamwork skills
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Answer aloud and timed: Write a SQL query to find duplicate records in a client database.
  • Answer aloud and timed: How do you optimize a slow-performing SQL query?

Multiple Technical Rounds

Several rounds of technical interviews focusing on coding and problem-solving skills.

What to demonstrate

  • Several rounds of technical interviews focusing on coding and problem-solving skills
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Answer aloud and timed: Walk me through the architecture of a project on your resume. What was the data flow, and why did you choose this specific tech stack?
  • Answer aloud and timed: What was your individual contribution to the API development in your last role?

Managerial Round

An interview with a manager to assess fit within the team and company culture.

What to demonstrate

  • An interview with a manager to assess fit within the team and company culture
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Answer aloud and timed: How did you handle code migration or performance optimization in a previous project?
  • Answer aloud and timed: Explain how your application integrated with external services or APIs.

Final HR Evaluation

A final discussion with HR to review the overall fit and discuss potential offer.

What to demonstrate

  • A final discussion with HR to review the overall fit and discuss potential offer
  • Depth in Object-Oriented Programming (OOP)

How to prepare

  • Answer aloud and timed: Describe a time when you had to debug a complex production issue. What was your process?
  • Answer aloud and timed: Why do you want to work as a Software Engineer at Sun Life Financial?

Where candidates lose points

Master Your Resume Details

Be ready to explain every single technology, project, and bullet point on your resume. If you list a technology, expect to be asked how and why you used it.

Brush Up on AWS Basics

Since Sun Life Financial utilizes AWS for its cloud infrastructure, having a foundational understanding of services like EC2, S3, and Lambda can set you apart from other candidates.

Be Transparent About Your Experience

If you are a student or recent graduate, be honest about your internship or co-op experiences. Be prepared to explain non-traditional timelines or academic projects clearly and confidently.

Questions & practice

How does memory management work in Java, and what are the key differences between different collection types?

Medium · Core Software Engineering & OOP

Approach

  1. Say what the runtime actually does before reasoning about the code.
  2. Name what is shared across threads and what owns each piece of state.
  3. Identify the window where an invariant is briefly untrue.
  4. 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 immutable classes in Java, and how do you create one?

Medium · Core Software Engineering & OOP

Approach

  1. Say what the runtime actually does before reasoning about the code.
  2. Name what is shared across threads and what owns each piece of state.
  3. Identify the window where an invariant is briefly untrue.
  4. 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?

Find overlapping job attempts and peak concurrency from lease records

Medium · sweep line · intervals · leases

A day of job_run history yields about 50,000,000 attempt records: (job_run_id, job_type, attempt, started_at, finished_at which is NULL when the worker died, lease_expires_at). Leases expire on a clock, so a job that outran its lease ran twice. Produce (a) every job_run_id whose attempts overlapped in wall-clock time and (b) the peak number of simultaneously running attempts per job_type with the minute it occurred. Target O(n log n). State how you treat a NULL finished_at and what clock skew does to your answer.

Approach

  1. Define the interval before sorting anything: an attempt occupies [started_at, COALESCE(finished_at, lease_expires_at)). finished_at is observed and lease_expires_at is only a promise, so every attempt without a finish contributes an estimate and the whole result is a lower bound on overlap rather than an exact count.
  2. For peak concurrency, sweep: emit 2n endpoints, sort by (timestamp, kind) with ends ordered before starts at equal timestamps, then walk the sequence maintaining a counter per job_type and record each type's maximum with its timestamp. O(n log n) dominated by the sort, O(n) space, or O(1) extra if the sort is external and the walk streams.
  3. For overlap detection, do not compare attempts pairwise. A single global sort by (job_run_id, started_at) gives both the grouping and the order; within a group, keep the maximum end seen so far and report an overlap exactly when the next start is less than that running maximum, which is one linear pass after the sort.
  4. Half-open intervals matter and are easy to get wrong: with closed intervals an attempt ending at the same millisecond another begins reads as concurrency two, and across 50,000,000 records that artefact swamps the real signal.

Follow-up

  • A handler is not idempotent and you have found 400 overlapping jobs. Which of them actually caused damage, and what would you query to find out?
  • Peak concurrency for one job_type is 4 against a configured cap of 4. Is the cap working, or is the data hiding attempts that never started?

Explain the concept of database normalization and when you might choose to denormalize a database.

Medium · Database Management & Querying

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. 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?

Write a SQL query to find duplicate records in a client database.

Medium · Database Management & Querying

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. 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?

How do you optimize a slow-performing SQL query?

Medium · Database Management & Querying

Approach

  1. Name the grain you start from and join outward from it.
  2. Check whether any join is one-to-many before aggregating, or the sums inflate.
  3. Say which index the query would use, and what makes it unusable.
  4. 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?

Explain the core concepts of Object-Oriented Programming (OOP) and how you have applied them in a recent proje

Medium · Core Software Engineering & OOP

Explain the core concepts of Object-Oriented Programming (OOP) and how you have applied them in a recent project.

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. 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 is the difference between a GET and a POST request in a REST API?

Medium · Core Software Engineering & OOP

Approach

  1. Say who the caller is and what they do when the call fails halfway.
  2. Define the identity of a request so a retry cannot double-apply it.
  3. Separate accepted, pending, failed and confirmed; they are different facts.
  4. 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 the difference between client-side rendering and server-side rendering?

Medium · Core Software Engineering & OOP

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

How would you design a relational database schema for a basic insurance policy system?

Medium · Database Management & Querying

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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 are the differences between primary keys, foreign keys, and unique constraints in DBMS?

Medium · Database Management & Querying

Approach

  1. Clarify what is being asked and what a complete answer contains.
  2. State your assumptions explicitly before working the problem.
  3. Say what you would check first and why it is the highest-information step.
  4. Work from the requirement backwards to the design.

Follow-up

  • What assumption would you test first?
  • How would you know your answer was wrong?

Walk me through the architecture of a project on your resume. What was the data flow, and why did you choose t

Medium · Project Architecture & Resume Deep Dives

Walk me through the architecture of a project on your resume. What was the data flow, and why did you choose this specific tech stack?

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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 was your individual contribution to the API development in your last role?

Medium · Project Architecture & Resume Deep Dives

Approach

  1. Say who the caller is and what they do when the call fails halfway.
  2. Define the identity of a request so a retry cannot double-apply it.
  3. Separate accepted, pending, failed and confirmed; they are different facts.
  4. 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?

How did you handle code migration or performance optimization in a previous project?

Medium · Project Architecture & Resume Deep Dives

Approach

  1. Fix the scope first: who calls this, how often, and what they do when it fails.
  2. Name the read and write paths separately; they rarely have the same bottleneck.
  3. Choose a partition key and say what query it makes expensive.
  4. 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?

Explain how your application integrated with external services or APIs.

Medium · Project Architecture & Resume Deep Dives

Approach

  1. Say who the caller is and what they do when the call fails halfway.
  2. Define the identity of a request so a retry cannot double-apply it.
  3. Separate accepted, pending, failed and confirmed; they are different facts.
  4. 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?

Describe a time when you had to debug a complex production issue. What was your process?

Medium · Project Architecture & Resume Deep Dives

Approach

  1. Establish what changed and when, before forming any theory.
  2. Pick a bisection that eliminates candidates whichever way it turns out.
  3. Check the instrumentation before believing the symptom.
  4. Separate the trigger from the cause; the deploy is rarely the bug.

Follow-up

  • What would you look at first, and what would it rule out?
  • How would you tell a cause from a coincidence here?

Suggested practice checklist

Built from the rounds and topics Sun Life Financial candidates report.

Day 1 — Map the Sun Life Financial loop

  • Write out the reported sequence: Recruiter Phone Screen, Technical Assessment, Interviews with Hiring Managers, Online Assessment (India/Philippines), Group Discussion (India/Philippines), Multiple Technical Rounds.
  • 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 8 reported rounds, with the weakest marked.

Day 2 — Work Object-Oriented Programming (OOP)

  • Spend the session on Object-Oriented Programming (OOP), which Sun Life Financial candidates report being tested on.
  • Write one worked example in Object-Oriented Programming (OOP) and time yourself on it.

Deliverable: One timed worked example in Object-Oriented Programming (OOP).

Day 3 — Work Java

  • Spend the session on Java, which Sun Life Financial candidates report being tested on.
  • Write one worked example in Java and time yourself on it.

Deliverable: One timed worked example in Java.

Day 4 — Work Database Management Systems (DBMS)

  • Spend the session on Database Management Systems (DBMS), which Sun Life Financial candidates report being tested on.
  • Write one worked example in Database Management Systems (DBMS) and time yourself on it.

Deliverable: One timed worked example in Database Management Systems (DBMS).

Day 5 — Answer out loud: Core Software Engineering & OOP

  • Answer aloud, timed: Explain the core concepts of Object-Oriented Programming (OOP) and how you have applied them in a recent project.
  • Answer aloud, timed: What is the difference between a GET and a POST request in a REST API?

Deliverable: Spoken answers to 2 reported Core Software Engineering & OOP question(s), under time.

Day 6 — Answer out loud: Database Management & Querying

  • Answer aloud, timed: How would you design a relational database schema for a basic insurance policy system?
  • Answer aloud, timed: What are the differences between primary keys, foreign keys, and unique constraints in DBMS?

Deliverable: Spoken answers to 2 reported Database Management & Querying question(s), under time.

Day 7 — Answer out loud: Project Architecture & Resume Deep Dives

  • Answer aloud, timed: Walk me through the architecture of a project on your resume. What was the data flow, and why did you choose this specific tech stack?
  • Answer aloud, timed: What was your individual contribution to the API development in your last role?

Deliverable: Spoken answers to 2 reported Project Architecture & Resume Deep Dives question(s), under time.

Behavioural preparation

Behavioural rounds judge the decision you made and what it cost.

Why do you want to work as a Software Engineer at Sun Life Financial?

Medium · Behavioral & Culture Fit

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 work with a difficult team member or handle a disagreement during a project.

Medium · Behavioral & Culture Fit

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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 manage your workload when faced with tight deadlines or competing priorities?

Medium · Behavioral & Culture Fit

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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?

Are you comfortable working on-call rotations or collaborating with teams across different time zones?

Medium · Behavioral & Culture Fit

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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?

Describe a situation where you had to learn a new technology quickly to solve a problem.

Medium · Behavioral & Culture Fit

Approach

  1. Pick a story where you made the decision, not one where you watched it.
  2. State the situation in two sentences and spend the rest on the reasoning.
  3. Give the blast radius: what could have broken, and what you measured.
  4. 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?