Specsavers · Software Engineer
Updated · 2026-10-02

Specsavers Software Engineer
Interview Guide

THE 60-SECOND BRIEF

As a Software Engineer at Specsavers, you are at the intersection of cutting-edge healthcare technology and large-scale retail operations. You are not just writing code; you are building the digital infrastructure that enables millions of customers to access eye and hearing care. Your work directly impacts how clinical data is managed, how appointments are streamlined, and how the global Specsavers brand maintains its reputation for excellence. The role involves navigating a complex ecosystem of legacy systems and modern cloud-native architectures. You will contribute to high-impact projects that range from internal diagnostic tools used by optometrists to consumer-facing platforms that drive global engagement.

This guide is scoped to a Software Engineer candidate at Specsavers.

No round sequence has been reported for Specsavers. Confirm the format with your recruiter.

STAR method (Situation, Task, Action, Result)Behavioral interview preparationPresentation skills

22 min read

Browse Software Engineer questions

See the practice prompts

13Practice promptsAcross five skill areas

As a Software Engineer at Specsavers, you are at the intersection of cutting-edge healthcare technology and large-scale retail operations. You are not just writing code; you are building the digital infrastructure that enables millions of customers to access eye and hearing care. Your work directly impacts how clinical data is managed, how appointments are streamlined, and how the global Specsavers brand maintains its reputation for excellence. The role involves navigating a complex ecosystem of legacy systems and modern cloud-native architectures. You will contribute to high-impact projects that range from internal diagnostic tools used by optometrists to consumer-facing platforms that drive global engagement. Because Specsavers operates at a significant scale, you will be expected to balance technical rigor with a deep understanding of user needs, ensuring that your solutions are as robust as they are intuitive. ##### Tip The role is deeply collaborative. Expect to work closely with cross-functional teams, including product managers, clinicians, and data scientists, to translate business requirements into scalable technical solutions.

01

Preparation focus

editorial

No round sequence has been reported for this company, so confirm the format with your recruiter and work the reported questions below.

What to demonstrate

  • Breadth across the topics this company reports testing
  • Whether you confirm the format before preparing for it

How to prepare

  • Ask the recruiter for the sequence, the duration of each stage and whether you will be writing code
  • Work the reported questions below and time yourself
PracHub preparation framework ↗

PracHub editorial advice for the preparation topics above.

01

Prepare for the STAR method

When answering behavioral questions, use the Situation, Task, Action, Result framework to keep your answers concise and impactful.

02

Research the company

Understand Specsavers' business model. Being able to connect your technical work to the company’s goal of providing accessible eye and hearing care will set you apart.

03

Demonstrate curiosity

During the interview, ask insightful questions about their technology stack, their challenges with scaling, and how they handle technical debt.

04

Be ready to demonstrate your work

Have a few specific examples of code or projects you are proud of ready to discuss in detail.

Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.

8 technical prompts0 include a worked solution

Archive a resource graph without breaking live references or recursing

medium
graph traversaltopological ordertenant isolation

Resources reference other resources within a tenant; for the largest tenant the reference table holds up to 2,000,000 nodes and 8,000,000 edges. Archiving a resource must archive everything reachable from it that nothing outside the set still references, refuse when a live external referrer exists, and terminate when references form cycles, which they legitimately do. Produce the archive order and the refusal list, targeting O(V+E). Say what stops the traversal crossing a tenant boundary, and why recursion is the wrong control structure at this size.

Approach
  1. Load the subgraph with the tenant predicate on both endpoints of the edge, not only on the side you started from. Scoping the left table alone is the classic cross-tenant leak: one mis-entered edge then pulls another tenant's resources into the traversal and, worse, into the archive.
  2. Traverse iteratively with an explicit stack. A 2,000,000-node graph can hold a chain deep enough to exhaust a native stack in the low tens of thousands of frames, and that failure is a process crash rather than an error you can return.
  3. Treat cycles as data rather than corruption: compute strongly connected components with Tarjan in O(V+E) using its own explicit stack, then condense. The condensation is a DAG, so a topological order over it gives the archive order, and every member of a component archives in one transaction because no order within a cycle is valid.
  4. Decide refusals with reverse edges. A candidate is archivable only if every in-edge originates inside the candidate set, so build the transpose or count in-degrees restricted to the visited set, and emit each blocked resource with the id of the external referrer, which is the only part of the answer an operator can act on.
Follow-up
  • The graph is read in one query and the archive writes a minute later. What can change in between, and how do you make the write safe?
  • The candidate set is 400,000 resources. Is that one transaction, and if not, what does a half-finished archive look like to a reader?

Identify the heaviest tenants in a five-minute window under memory pressure

medium
top-kheavy hittersstreaming

The edge service handles about 3,000 requests per second across roughly 50,000 tenants, peaking near 9,000. Expose the 50 heaviest tenants by request count over the trailing five minutes so limits can be tightened before one tenant's backfill starves the fleet. You may not retain five minutes of raw records. Give the exact solution and its memory, then the bounded-memory approximation with its error stated as a formula, and say which you would ship and at what tenant cardinality that choice changes.

Approach
  1. Do the exact version first, because it is affordable at this cardinality: a ring of 300 one-second counters per tenant, advanced lazily, is 1,200 bytes of counters per tenant and roughly 60 to 90 MB for 50,000 tenants with overhead. Carry a running total and subtract the bucket you overwrite so a window read is O(1) rather than 300 adds.
  2. Extract the top 50 with a size-k min-heap over the tenant sums: O(d log k) for d tenants, against O(d log d) to sort them all. Maintaining the heap continuously instead of on query requires a tenant-to-heap-index map, because incrementing a count already inside the heap means sifting from a known position, and without that map you rebuild the heap on every request.
  3. State the approximation precisely rather than gesturing at sketches. Misra-Gries with m counters retains every item whose true count exceeds N/(m+1), and each retained count underestimates the truth by at most N/(m+1). With m = 1,000 and N = 900,000 requests in the window the error is roughly 900 requests, which is fine for spotting a tenant sending 50,000 and useless for ranking two tenants 200 apart.
  4. Say what breaks when the window slides: Misra-Gries and Space-Saving are insert-only and cannot be decremented as records age out. The workable construction is one summary per sub-window, say ten seconds, with 30 summaries merged at query time, and the merged error is the sum of the per-summary errors, so the bound degrades linearly in the number of sub-windows.
Follow-up
  • The heaviest tenant is heavy because of one export job rather than user traffic. Should the limiter treat those as the same tenant?
  • Two tenants sit tied at the boundary of the top 50. Does your answer flap, and does the flapping matter?

Merge partitioned event streams into one ordered feed with bounded lateness

hard
k-way mergewatermarksout-of-order streams

The read-model service consumes 64 log partitions carrying about 4,000 events per second in total. Each partition is ordered within itself, but partitions drift by up to 30 seconds, and the activity feed must present a tenant's events in occurred_at order. Produce the merge. State its complexity, the buffer it requires in events and in bytes, what happens when one partition is idle, and what you do with an event that arrives after you have already emitted its position. Payloads average 1 KB.

Approach
  1. Merge with a min-heap over the 64 partition heads keyed on (occurred_at, event_id): O(log P) per event and O(n log P) overall. The tie-break on event_id is what makes the output deterministic when two partitions carry the same millisecond, which matters because the feed is paginated and a non-deterministic order reorders pages under the reader.
  2. Emitting the heap head is only correct once every partition has produced everything up to that timestamp, so the emit condition is a watermark: the minimum across partitions of the highest occurred_at seen, less the allowed lateness. Events are held until the watermark passes them, which is what turns individually ordered streams into a jointly ordered one.
  3. Size the buffer from the lateness rather than guessing: 4,000 events per second times 30 seconds is 120,000 buffered events, and at 1 KB each about 120 MB of heap. That number is the real price of the ordering guarantee and belongs in front of whoever asked for it.
  4. Handle the idle partition explicitly, because it fails the feed rather than corrupting it: a partition with no traffic never advances its own maximum, so the watermark freezes and output stops entirely. Either every partition emits a periodic idle marker carrying the broker's current time, or the watermark falls back to wall clock for a partition silent beyond a threshold.
Follow-up
  • The lateness budget is raised to five minutes. What is the new buffer, and what besides memory changes?
  • The consumer restarts. Where does it resume from, and what does the feed look like for the first 30 seconds?

Built from the topics and questions Specsavers candidates report; no round sequence has been reported.

Small steps. Visible outcomes.0 / 7 completed
ONE WEEK · YOUR PACE

Prepare, practise & reflect

One practical outcome each day. Spend longer where you need it.

0 / 7 done
01Establish the Specsavers format
  • No round sequence has been reported, so ask your recruiter for the sequence, the duration of each stage and whether you will write code.

Deliverable: A written reply from your recruiter confirming the format.

02Work STAR method (Situation, Task, Action, Result)
  • Spend the session on STAR method (Situation, Task, Action, Result), which Specsavers candidates report being tested on.
  • Write one worked example in STAR method (Situation, Task, Action, Result) and time yourself on it.

Deliverable: One timed worked example in STAR method (Situation, Task, Action, Result).

03Work Behavioral interview preparation
  • Spend the session on Behavioral interview preparation, which Specsavers candidates report being tested on.
  • Write one worked example in Behavioral interview preparation and time yourself on it.

Deliverable: One timed worked example in Behavioral interview preparation.

04Work Presentation skills
  • Spend the session on Presentation skills, which Specsavers candidates report being tested on.
  • Write one worked example in Presentation skills and time yourself on it.

Deliverable: One timed worked example in Presentation skills.

05Answer out loud: Behavioral and STAR-Method Questions
  • Answer aloud, timed: Tell us about a time you had to handle a conflict within your development team.
  • Answer aloud, timed: Describe a challenging project you worked on and the specific role you played in its success.

Deliverable: Spoken answers to 2 reported Behavioral and STAR-Method Questions question(s), under time.

06Rehearse your own examples
  • Prepare three examples from your own work where you made the decision, each with the outcome you can quantify.

Deliverable: Three examples written out, each with a number attached.

07Dry run for Specsavers
  • Run one full mock under time, then write down the two questions you most want to ask your interviewers.

Deliverable: A completed timed mock and two questions to ask.

Expand any day for tasks and deliverables. Your progress is saved on this device.

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

Tell us about a time you had to handle a conflict within your development team.

medium
Behavioral and STAR-Method Questions

Tell us about a time you had to handle a conflict within your development team.

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 challenging project you worked on and the specific role you played in its success.

medium
Behavioral and STAR-Method Questions

Describe a challenging project you worked on and the specific role you played in its success.

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 handle situations where you have to balance technical debt with the need for new feature delivery?

medium
Behavioral and STAR-Method Questions

How do you handle situations where you have to balance technical debt with the need for new feature delivery?

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?

Can you provide an example of a time you had to explain a complex technical concept to a non-technical stakeho

medium
Behavioral and STAR-Method Questions

Can you provide an example of a time you had to explain a complex technical concept to a non-technical stakeholder?

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 us about a mistake you made in a project and how you went about resolving it.

medium
Behavioral and STAR-Method Questions

Tell us about a mistake you made in a project and how you went about resolving it.

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?
  • 01

    Tell us about a time you had to handle a conflict within your development team.

  • 02

    Describe a challenging project you worked on and the specific role you played in its success.

  • 03

    How do you handle situations where you have to balance technical debt with the need for new feature delivery?

  • 04

    Can you provide an example of a time you had to explain a complex technical concept to a non-technical stakeholder?

PracHub preparation framework ↗
How difficult are the technical interviews?

The difficulty is generally considered average to challenging. The focus is less on "trick" algorithmic questions and more on your ability to solve practical, real-world engineering problems.

Specsavers Software Engineer candidate reports ↗
What is the company culture like?

Specsavers is known for being a helpful, collaborative, and professional environment. They value team players who are invested in the company's long-term mission.

Specsavers Software Engineer candidate reports ↗
How long does the hiring process take?

While it can vary, the process often spans several weeks. It is important to stay proactive and keep in touch with your recruiter if you haven't heard back after an assessment.

Specsavers Software Engineer candidate reports ↗
Are there opportunities for growth?

Yes, Specsavers invests in their talent. They look for engineers who are eager to learn and grow, and they often provide pathways for career development within their engineering organization.

Specsavers Software Engineer candidate reports ↗
What topics does Specsavers test in interviews?

Specsavers interviews most often cover Problem Solving, Time Management, Communication skills, Communication Skills, and Communication Skills (Verbal). The exact emphasis depends on the specific role you apply for.

Specsavers Software Engineer candidate reports ↗
Sources & methodology 3 sources ↗

No official company page is cited. Rounds and questions come from candidate reports and PracHub editorial material; each source shows the date it was read.