cswork / libraryOpen practice workspace

Interview guides · Justanswer

Justanswer Software Engineer Interview Guide

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

The 60-second brief

A Software Engineer at JustAnswer plays a critical role in powering a global marketplace that connects millions of users with verified professional experts in real-time. From doctors and lawyers to mechanics and tech support specialists, the platform facilitates rapid, high-stakes communication. As an engineer, you are not just writing code; you are architecting and optimizing the high-throughput systems, real-time messaging frameworks, matching algorithms, and payment gateways that make these instant connections possible. The impact of this position is immense. Every optimization you make directly reduces the latency of a user receiving urgent medical or legal advice. You will work on complex distributed systems that handle millions of concurrent requests, requiring a deep understanding of database performance, system scalability, and algorithmic efficiency.

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

Focus areas

  • Coding Challenges / Competitive Programming Style
  • Algorithms
  • SQL (Query Writing)

The Justanswer interview process

Justanswer candidates report 4 rounds over 3-5 weeks. The stages below are what candidates describe, not a published process.

Online Coding Assessment

Candidates start with an online coding assessment to evaluate their technical skills.

What to demonstrate

  • Candidates start with an online coding assessment to evaluate their technical skills
  • Depth in Coding Challenges / Competitive Programming Style

How to prepare

  • Answer aloud and timed: Implement a solution to a greedy scheduling or resource allocation problem.
  • Answer aloud and timed: Write an algorithm to solve a network connectivity or grouping problem using a Disjoint Set Union (DSU) or Union-Find structure.

Technical Phone Screens

Successful candidates will participate in a series of technical phone screens to further assess their capabilities.

What to demonstrate

  • Successful candidates will participate in a series of technical phone screens to further assess their capabilities
  • Depth in Coding Challenges / Competitive Programming Style

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.

Virtual or Onsite Loop

Candidates who progress enter a loop that may include multiple rounds with peer engineers and managers.

What to demonstrate

  • Candidates who progress enter a loop that may include multiple rounds with peer engineers and managers
  • Depth in Coding Challenges / Competitive Programming Style

How to prepare

  • Answer aloud and timed: Write a complex SQL query utilizing GROUP BY, inner/outer joins, and window functions to aggregate user interaction data.
  • Answer aloud and timed: How would you design the database schema for a real-time chat application connecting users with experts?

Conversations with Leadership

Candidates may have discussions with senior leadership, including VPs or the CEO, to evaluate cultural alignment.

What to demonstrate

  • Candidates may have discussions with senior leadership
  • Including VPs or the CEO, to evaluate cultural alignment

How to prepare

  • Answer aloud and timed: Explain how you would optimize a slow-running query on a table with millions of rows.
  • Answer aloud and timed: Design a scalable notifications service that can handle push, email, and SMS alerts dynamically.

Where candidates lose points

Clarify compensation expectations early

Ensure you have an explicit, transparent conversation about salary ranges with your recruiter during the very first call to avoid misalignment at the offer stage.

Over-communicate during coding rounds

Do not code in silence. Talk through your logic, explain the trade-offs of your chosen data structures, and state your assumptions clearly.

Do not neglect SQL

Database performance is critical to the platform. Practice writing complex queries, understanding indexing, and discussing database optimization strategies.

Be ready for rapid-fire questions

Some technical rounds may feature quick, foundational questions on basic data structures (e.g., arrays vs. linked lists). Answer these concisely and confidently.

Questions & practice

Implement a solution to a greedy scheduling or resource allocation problem.

Medium · Coding & Algorithmic Problem Solving

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

Write an algorithm to solve a network connectivity or grouping problem using a Disjoint Set Union (DSU) or Uni

Medium · Coding & Algorithmic Problem Solving

Write an algorithm to solve a network connectivity or grouping problem using a Disjoint Set Union (DSU) or Union-Find structure.

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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 stream of real-time user requests, write a function to rate-limit or queue them efficiently.

Medium · Coding & Algorithmic Problem Solving

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

Optimize an algorithm to find the shortest path or minimum cost in a weighted graph representing expert availa

Medium · Coding & Algorithmic Problem Solving

Optimize an algorithm to find the shortest path or minimum cost in a weighted graph representing expert availability.

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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 is the difference between an Array and a Linked List? When would you use one over the other in a producti

Medium · Core Computer Science Concepts

What is the difference between an Array and a Linked List? When would you use one over the other in a production environment?

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

Explain the concept of Big-O notation and how you analyze the time and space complexity of your code.

Medium · Core Computer Science Concepts

Approach

  1. Restate the input: its shape, its size, and what is guaranteed about it.
  2. Name the brute-force solution and its complexity before improving on it.
  3. Choose the data structure from the access pattern, not from familiarity.
  4. 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?

How does garbage collection work in your primary programming language, and how can you prevent memory leaks?

Medium · Core Computer Science Concepts

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?

Write a complex SQL query utilizing GROUP BY, inner/outer joins, and window functions to aggregate user inte

Medium · System Design & Databases

Write a complex SQL query utilizing GROUP BY, inner/outer joins, and window functions to aggregate user interaction data.

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 would you design the database schema for a real-time chat application connecting users with experts?

Medium · System Design & Databases

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 how you would optimize a slow-running query on a table with millions of rows.

Medium · System Design & Databases

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?

Design a scalable notifications service that can handle push, email, and SMS alerts dynamically.

Medium · System Design & Databases

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?

Compare and contrast Stacks and Queues. Provide real-world system examples where each is appropriate.

Medium · Core Computer Science Concepts

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 your most recent project. What were the biggest technical challenges you f

Medium · Project & Experience Deep Dives

Walk me through the architecture of your most recent project. What were the biggest technical challenges you faced, and how did you resolve them?

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?

Edge instances grow 400 MB per hour until the nightly restart

Hard · memory leak · heap analysis · metric cardinality

Edge API instances start at 700 MB resident and grow about 400 MB/hour; a nightly rolling restart has hidden it for weeks. Growth continues unchanged when request rate halves overnight, p99 degrades in the last hours before an instance is recycled, and heap used immediately after a forced full GC rises monotonically. The service holds no product state. Name the discriminating measurement that separates the plausible causes, give the most likely cause, and give the fix and how you would verify it.

Approach

  1. Separate resident memory from live heap first, because they fail differently. Resident size can grow from fragmentation, native buffers or thread stacks while the heap is flat; heap used after a full GC rising monotonically is the measurement that says objects are reachable and not being released. You already have it, so this is retention, not fragmentation, and that closes off half the candidate list.
  2. Use the rate's independence from traffic as the discriminator. Growth that continues at half the request rate rules out per-request objects that are merely slow to collect and points at a structure that grows with distinct values observed rather than with call volume. Write the candidates that have that property: a metrics registry keyed on a high-cardinality label, an unevicted cache, an interner, a per-key lock map.
  3. Take two heap snapshots an hour apart and diff by retained size, reading the dominator tree, not by allocation count or instance count. Expect one root holding a map with millions of entries, then follow the reference chain to the code that inserts and never removes. Allocation profilers point at churn, which is the wrong signal here.
  4. The candidate that fits this service is an observability label carrying an identifier, such as a request path recorded before templating so that /v1/resources/48213 becomes its own metric series. That grows with distinct ids seen, is independent of rate, and explains the late p99 degradation, since GC cost rises with the size of the live set.

Follow-up

  • Post-GC heap is now flat but resident size still creeps. What are you looking at, and does it matter?
  • How would you have detected this before an OOM, given the nightly restart masked the trend?

Suggested practice checklist

Built from the rounds and topics Justanswer candidates report.

Day 1 — Map the Justanswer loop

  • Write out the reported sequence: Online Coding Assessment, Technical Phone Screens, Virtual or Onsite Loop, Conversations with Leadership.
  • 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 Coding Challenges / Competitive Programming Style

  • Spend the session on Coding Challenges / Competitive Programming Style, which Justanswer candidates report being tested on.
  • Write one worked example in Coding Challenges / Competitive Programming Style and time yourself on it.

Deliverable: One timed worked example in Coding Challenges / Competitive Programming Style.

Day 3 — Work Algorithms

  • Spend the session on Algorithms, which Justanswer candidates report being tested on.
  • Write one worked example in Algorithms and time yourself on it.

Deliverable: One timed worked example in Algorithms.

Day 4 — Work SQL (Query Writing)

  • Spend the session on SQL (Query Writing), which Justanswer candidates report being tested on.
  • Write one worked example in SQL (Query Writing) and time yourself on it.

Deliverable: One timed worked example in SQL (Query Writing).

Day 5 — Answer out loud: Coding & Algorithmic Problem Solving

  • Answer aloud, timed: Implement a solution to a greedy scheduling or resource allocation problem.
  • Answer aloud, timed: Write an algorithm to solve a network connectivity or grouping problem using a Disjoint Set Union (DSU) or Union-Find structure.

Deliverable: Spoken answers to 2 reported Coding & Algorithmic Problem Solving question(s), under time.

Day 6 — Answer out loud: System Design & Databases

  • Answer aloud, timed: Write a complex SQL query utilizing GROUP BY, inner/outer joins, and window functions to aggregate user interaction data.
  • Answer aloud, timed: How would you design the database schema for a real-time chat application connecting users with experts?

Deliverable: Spoken answers to 2 reported System Design & Databases question(s), under time.

Day 7 — Answer out loud: Core Computer Science Concepts

  • Answer aloud, timed: What is the difference between an Array and a Linked List? When would you use one over the other in a production environment?
  • Answer aloud, timed: Compare and contrast Stacks and Queues. Provide real-world system examples where each is appropriate.

Deliverable: Spoken answers to 2 reported Core Computer Science Concepts question(s), under time.

Behavioural preparation

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

Describe a time when you had to make a difficult trade-off between system performance and development speed.

Medium · Project & Experience Deep Dives

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 testing and deploying critical code in a high-traffic production environment?

Medium · Project & Experience Deep Dives

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 system failure or outage you experienced. How did you diagnose the issue, and what did you do

Medium · Project & Experience Deep Dives

Tell me about a system failure or outage you experienced. How did you diagnose the issue, and what did you do to prevent it from happening again?

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?