3Y Health · Software Engineer
Updated · 2026-10-02

3Y Health Software Engineer
Interview Guide

THE 60-SECOND BRIEF

3Y Health is a healthcare technology employer. Candidates cite a role description that mentions healthcare products such as EHR systems and patient-facing tools. The responsibilities it lists include defining requirements with product managers and designers, code reviews, architecture discussions, testing and debugging, and documentation, with collaboration alongside healthcare professionals and adjacent data science, QA and operations teams. HIPAA awareness appears among the topics candidates are told to be ready for. For interview purposes, treat patient data, access control and auditability as part of the problem in your technical answers.

This guide is for engineers interviewing for a Software Engineer position at 3Y Health, roughly at the 3-5 years of experience the reported requirements describe. It covers the five reported stages, the reported questions across backend fundamentals (REST and GraphQL, dependency injection, SQL tuning, OOP, code quality), system design (URL shortener, caching, microservices, distributed consistency, real-time messaging), debugging and problem-solving, coding (linked lists, strings, binary search, merging) and behavioral prompts. The listed languages are Python, Java and JavaScript, with AWS or Azure and healthcare compliance experience as extras.

Candidates report five stages over about 4-6 weeks: Preliminary Screening, Coding Challenges, System Design Discussion, Behavioral Interview, and an Onsite Interview of multiple rounds that may include technical and behavioral assessments.

Backend Software EngineeringFrontend Software EngineeringFull-Stack Software Engineering

34 min read

Browse Software Engineer questions

See the practice prompts

26Practice promptsAcross five skill areas

The reported questions span five groups, and none of them is exotic: technical and domain questions on API styles, dependency injection, slow SQL, code quality and OOP; system design on a URL shortener, distributed consistency, a real-time messaging app, microservices and caching; problem-solving prompts on production troubleshooting, dataset analysis, ambiguous problems, debugging and technical debt; five classic coding problems; and five behavioral prompts. Because the reported coding set is standard, aim for clean, tested code with edge cases handled rather than hunting for a rare trick.

The requirements candidates describe are broad rather than deep in one framework: Python, Java or JavaScript, web development frameworks and tools, software engineering principles and design patterns, with AWS or Azure, healthcare technology or regulatory compliance, and data structures and algorithms listed as extras. The topic areas reported for this role cover backend, frontend and full-stack work plus fundamentals and technical leadership, so also be able to describe a patient-facing screen in your JavaScript framework: state, data fetching against a REST or GraphQL API, accessibility, and keeping PHI out of client storage and logs. Pick one language for the coding stage and be able to discuss the web stack around it: how a request reaches your code, how it is tested, and how it reaches the database.

Healthcare context is worth weaving into design and backend answers. HIPAA appears among the topics candidates are told to be ready for, and one reported example asks how you keep code compliant with healthcare regulations. In a caching answer, say which patient data never goes into a shared cache; in a messaging or microservices answer, mention encryption, access control and audit logs of who read which record. These additions take a sentence each and show you have thought about the data involved.

Candidates cite a role description that mentions working with product managers, designers, healthcare professionals and adjacent teams, and they report a dedicated behavioral stage plus possible behavioral assessments in the onsite. Prepare a small bank of real stories with your own decisions and measurable outcomes, and reuse them across the reported behavioral and problem-solving prompts such as technical debt versus deadlines.

01

Preliminary Screening

reported

Candidates list Preliminary Screening as the opening stage, an early look at whether your background suits the role. No question content is reported for it. Treat it as the place to show that your background matches the reported requirements (one of Python, Java or JavaScript, web frameworks, a few years of shipped work) and that your interest in healthcare software is real. Use it also to collect the facts the reports leave open: the format of the coding challenges, which language you may use, and how the onsite is split.

What to demonstrate

  • Your qualifications against the reported requirements: Python, Java or JavaScript, web frameworks, design patterns
  • Fit for the role, which is how candidates describe the purpose of this stage

How to prepare

  • Write a short pitch of one project: the system, your part in it, the stack, and one number that shows the result, so your summary is crisp.
  • Prepare an honest answer to why healthcare software, tied to the products candidates cite (EHR systems, patient-facing tools).
  • List questions for the recruiter: coding challenge format and language, onsite composition, team, and whether the work touches HIPAA-regulated data.
3Y Health Software Engineer candidate reports ↗
02

Coding Challenges

reported

Candidates list Coding Challenges as the second stage, where technical skill is shown through code. Whether they are live or take-home is not reported, so ask. The reports do not tie questions to stages, but the reported coding questions are classic problems: reversing a linked list, the first non-repeating character in a string, the longest substring without repeating characters, binary search, and merging two sorted arrays. Practise them in the language you will use, write the code fully, run it on edge cases, and state the time and space complexity before you are asked.

What to demonstrate

  • Technical skills, as candidates describe the purpose of this stage
  • The coding and algorithm questions reported for this role, which the reports do not tie to a specific stage

How to prepare

  • Solve the five reported coding problems from a blank file, then rewrite each without notes until the code is correct first time.
  • For each, write the edge-case tests yourself: empty list or string, one element, all duplicates, target absent, and state complexity and your choice of data structure aloud.
  • Practise the pattern behind each: pointer rewiring, hash-map counting, sliding window, binary-search invariants, two-pointer merge.
3Y Health Software Engineer candidate reports ↗
03

System Design Discussion

reported

Candidates name System Design Discussion as the third stage. The reports do not tie questions to stages, but the reported design questions are a URL shortening service, data consistency in a distributed system, a real-time messaging application, a microservices architecture, and caching in a web application. Use one repeatable structure: requirements and scale assumptions, API, data model, read and write paths, then scaling, failure modes and trade-offs. Add the healthcare angle where it applies: what data is sensitive and how it is protected and audited.

What to demonstrate

  • Architectural thinking and problem-solving, the attribution candidates give this stage
  • The system design questions reported for this role, which the reports do not tie to a specific stage

How to prepare

  • Outline the URL shortener end to end, including key generation, the 301 versus 302 choice and click analytics off the redirect path.
  • Write one page on consistency tools: transactions, saga, transactional outbox, idempotent consumers, read-your-writes, and practise naming the trade-offs (consistency versus availability, cache freshness versus load).
  • Sketch the messaging app: WebSocket gateways, session registry, per-conversation ordering, offline sync.
3Y Health Software Engineer candidate reports ↗
04

Behavioral Interview

reported

Candidates name Behavioral Interview as the fourth stage, and the reports connect it to how you would work with the team and company. The reported behavioral prompts cover a significant technical challenge, prioritising across deadlines, a difficult team member, motivation and feedback. Answer each with a specific story in STAR form, keep the situation short, and spend most of the answer on what you decided and why. Candidates cite a role description that mentions product managers, designers and healthcare professionals, so have at least one story with a non-engineering partner.

What to demonstrate

  • Fit within the team and company culture, as candidates describe this stage
  • Collaboration and communication, which the reports list among their evaluation areas

How to prepare

  • Write six stories covering a hard technical problem, competing deadlines, a conflict, feedback received, a cross-functional project and a trade-off with technical debt.
  • For each, note the decision you personally made and a measurable result, so your own ownership is clear.
  • Rehearse the reported prompts aloud, checking each story is told in the first person singular.
3Y Health Software Engineer candidate reports ↗
05

Onsite Interview

reported

Candidates describe the Onsite Interview as multiple rounds that may include technical and behavioral assessments. Its exact content is not reported, so prepare for all the reported question types in sequence: coding, design, backend fundamentals, debugging scenarios and behavioral stories. The main risk is uneven readiness, so run at least one full mock day before it.

What to demonstrate

  • Multiple rounds that may include technical and behavioral assessments
  • The exact mix of sessions is not reported, so confirm it with the recruiter

How to prepare

  • Run a mock onsite: one coding problem, one design question, one debugging scenario and two behavioral prompts back to back.
  • Prepare crisp explanations of REST versus GraphQL, dependency injection, OOP principles and slow-query tuning, and keep your depth even across coding, design and fundamentals.
  • Ask the recruiter how the onsite sessions are split so you can weight the last days of practice.
3Y Health Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Off-by-one and pointer bugs on the reported coding problems: left moving backwards in the longest-substring window, an infinite loop in binary search, a lost node in the linked-list reversal.

Write the invariant before coding (what the window or the lo/hi range means), then trace your code by hand on an empty input, a one-element input and a duplicate-heavy input before calling it done.

02

Answering the slow SQL question with "add an index" and nothing else.

Lead with reading the execution plan, then name the specific causes: non-sargable predicates, wrong composite column order, row multiplication from a one-to-many join, large OFFSET, stale statistics. Mention the write cost of every index you add.

03

Drawing boxes for the URL shortener or messaging design before stating requirements and the read/write balance.

Open every design answer with scope and rough scale, then the API and data model. Make at least one explicit trade-off per design: 301 versus 302, counter versus hash keys, fan-out on write versus on read.

04

Treating patient data like any other data in design and backend answers, for example caching records in a shared CDN or logging full payloads.

HIPAA appears among the topics candidates are told to be ready for. In caching, messaging, microservices and debugging answers, add one sentence on access control, encryption, audit logging or what must not be cached or logged.

05

Behavioral stories told in the plural with no personal decision and no result.

For each story in your bank, write the one sentence that starts with "I decided" and the number that shows the outcome. If you cannot write both, pick a different story.

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

21 technical prompts0 include a worked solution

Write a function to reverse a linked list.

medium
Coding / Algorithms

Write a function to reverse a linked list.

Approach
  1. Iterative: prev = null, curr = head; loop: save next = curr.next, set curr.next = prev, advance prev = curr and curr = next; return prev. O(n) time, O(1) space.
  2. Recursive: reverse the rest, then head.next.next = head and head.next = null. O(n) stack space; in Python the default recursion limit of 1000 makes it fail on long lists.
  3. Test empty list, single node and two nodes, and print the list after reversing to check no node is lost.
  4. Know the variants: reverse between positions m and n, reverse in groups of k, reverse a doubly linked list by swapping prev and next.
Follow-up
  • Reverse only the sublist between positions m and n.
  • Reverse the list in groups of k.
  • Check whether the list is a palindrome with O(1) extra space.

How would you find the first non-repeating character in a string?

medium
Coding / Algorithms

How would you find the first non-repeating character in a string?

Approach
  1. Two passes: count every character in a hash map (or a fixed array for ASCII), then scan the string again and return the first character with count 1. O(n) time, O(k) space for alphabet size k.
  2. Mention the brute force first: for each character, scan the rest, O(n^2).
  3. Edge cases: empty string, all characters repeating (return -1 or None), case sensitivity, and Unicode (Java chars are UTF-16 units, so surrogate pairs need code points).
  4. Streaming variant: keep counts plus an insertion-ordered structure (LinkedHashMap, OrderedDict, or a queue) and drop the front while its count exceeds 1.
Follow-up
  • Characters arrive as a stream; report the answer after each one.
  • Make the match case-insensitive.
  • How would you handle a string too large for memory?

Solve for the longest substring without repeating characters.

medium
Coding / Algorithms

Solve for the longest substring without repeating characters.

Approach
  1. Sliding window with a map from character to its last index. For each right index, if the character was last seen at or after left, move left to that index + 1; update the map; best = max(best, right - left + 1).
  2. O(n) time, O(min(n, alphabet)) space; mention the O(n^2) set-based brute force first.
  3. The common bug: moving left backwards when the repeat lies before the window. Only move left forward (left = max(left, last + 1)).
  4. Edge cases: empty string, all identical characters, all unique, spaces and symbols. If asked for the substring, track the start index of the best window.
Follow-up
  • Longest substring with at most k distinct characters.
  • Return the substring itself, not its length.
  • How does the solution change for a large Unicode alphabet?

Implement a binary search algorithm.

medium
Coding / Algorithms

Implement a binary search algorithm.

Approach
  1. Precondition: sorted input. lo = 0, hi = n - 1; while lo <= hi: compute mid with integer division, so in Python write mid = (lo + hi) // 2 because / returns a float; return mid on a match, else move lo or hi past mid; return -1. O(log n) time, O(1) space.
  2. Overflow matters only in fixed-width languages: in Java or C++, (lo + hi) / 2 can overflow int, so use lo + (hi - lo) / 2 or (lo + hi) >>> 1 in Java. Python integers do not overflow.
  3. State the loop invariant. For duplicates, write the half-open lower-bound version that returns the first index whose value is >= target, and avoid infinite loops when lo = mid.
  4. Edge cases: empty array, one element, target below or above every value, repeated targets.
Follow-up
  • Find the first and last positions of a target.
  • Search a rotated sorted array.
  • Compute an integer square root with binary search.

Write a function to merge two sorted arrays.

medium
Coding / Algorithms

Write a function to merge two sorted arrays.

Approach
  1. Two pointers into a new output array: take the smaller head each step, then append whatever remains. O(n + m) time and space.
  2. In-place variant where the first array has spare capacity at the end: fill from the back with three pointers so nothing is overwritten. O(1) extra space.
  3. Take from the first array on ties to keep the merge stable; duplicates are preserved.
  4. Edge cases: either array empty, all of one array smaller than the other, negative numbers.
  5. Extensions: merge k sorted arrays with a min-heap in O(N log k); for data larger than memory, an external merge of sorted chunks.
Follow-up
  • Merge k sorted arrays.
  • Find the intersection of two sorted arrays.
  • How would you merge two sorted files that do not fit in memory?

Each day covers one group of this guide's reported questions, moving from coding to backend fundamentals, design, debugging and behavioral stories, and ends with a mock run of the multi-session onsite.

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
01Pointer and array problems
  • Write the iterative and recursive linked-list reversal from a blank file and test empty, one-node and two-node lists.
  • Implement binary search plus a lower-bound version for duplicates; check it on an empty array and a missing target.
  • Merge two sorted arrays into a new array, then in place from the back.

Deliverable: Three tested solutions (reversal, binary search with lower bound, two merge versions), each with its complexity written above it.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
02String problems with hash maps and sliding windows
  • Solve the first non-repeating character with two passes, then the streaming variant with an ordered structure.
  • Solve the longest substring without repeating characters with a last-index map; add a test where the repeat sits before the window.
  • Re-solve all five coding problems in your interview language without notes, timing yourself.

Deliverable: Two string solutions with edge-case tests, and a list of mistakes from the re-solve to fix on day 7.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
03Backend fundamentals, SQL and a frontend sketch
  • Write a comparison table of REST and GraphQL covering caching, N+1, versioning, errors and field-level authorisation.
  • Write a small class that takes its repository through the constructor and test it with a fake; use it to explain dependency injection and the four OOP principles.
  • Take a slow query on a local Postgres table, read its EXPLAIN ANALYZE output (inside a rolled-back transaction if it modifies data), fix it with an index or rewrite, and record before and after; then do the window-function practice problem.
  • Sketch a patient-facing screen in your JavaScript framework: state and data fetching against a REST or GraphQL API, accessibility basics, and keeping PHI out of browser storage and logs.

Deliverable: The comparison table, a tested DI example, a before/after query plan, a one-paragraph code-quality answer and a short frontend sketch.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Design: URL shortener and caching
  • Outline the URL shortener: requirements, key generation, storage, cache, 301 versus 302, analytics queue, abuse controls.
  • Outline caching for a web application: layers, cache-aside with invalidation, stampede protection, and which patient data is never cached.
  • Explain both designs aloud from memory using the same structure.

Deliverable: Two one-page design outlines, each ending with a list of three trade-offs.

Practice prompt ↗Practice prompt ↗
05Design: distributed systems
  • Write a one-page reference on consistency: transactions, saga, outbox, idempotent consumers, read-your-writes, quorums.
  • Sketch the real-time messaging app: gateways, session registry, sequencing, offline sync, storage layout, security.
  • List the components of a microservices architecture and the resilience patterns, then explain how to debug a slow cross-service request.

Deliverable: A consistency reference page, a messaging diagram and a microservices checklist.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
06Debugging and problem-solving scenarios
  • Write your production-incident sequence (triage, mitigate, investigate, postmortem) and attach a real incident from your work to it.
  • Outline your debugging method with one example of a hard bug, including how you bisected it.
  • Prepare answers on analysing a dataset, approaching a problem with no clear solution, and trading deadlines against technical debt, each with a real example.

Deliverable: Five short written answers, each tied to a real example from your experience.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Behavioral stories and a mock onsite
  • Write six STAR stories and map them to the reported behavioral prompts; check each has an "I decided" sentence and a number. Include one story about Agile methods on a past project.
  • Run a mock onsite with a friend: one coding problem, one design question, one debugging scenario and two behavioral prompts back to back.
  • Revisit the mistakes list from day 2 and re-solve any problem you missed.

Deliverable: A story bank mapped to each behavioral prompt, notes from the mock onsite, and a clean re-solve of every missed problem.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗

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

Candidates report a dedicated Behavioral Interview tied to team and culture fit, and say the onsite may include behavioral assessments too. Candidates cite a role description that mentions product managers, designers, healthcare professionals and adjacent teams, so prepare stories that show your own decisions, how you worked with non-engineers, and measurable results.

Tell me about a time you faced a significant technical challenge. How did you overcome it?

medium
Behavioral / Leadership

Tell me about a time you faced a significant technical challenge. How did you overcome it?

Approach
  1. Pick a challenge with real technical depth that you drove yourself: a performance problem, a migration, a hard production bug. Give the situation and the stakes briefly.
  2. Spend most of the answer on actions: how you diagnosed it, the options you considered and why you rejected them, and how you reduced risk (feature flag, staged rollout, backfill check).
  3. End with a measured result (latency, error rate, hours saved) and what you changed afterwards.
  4. What sinks it: a team story with no clear personal contribution, or a challenge caused by your own poor planning with no reflection on it.
Follow-up
  • Which alternatives did you reject, and why?
  • What would you do differently now?
  • How did you keep non-engineering stakeholders informed?

How do you prioritize tasks when you have multiple deadlines?

medium
Behavioral / Leadership

How do you prioritize tasks when you have multiple deadlines?

Approach
  1. State your method: separate hard deadlines from soft ones, then rank by impact, cost of delay and whether the task blocks others.
  2. Show communication: you flagged early what would slip, negotiated scope (shipping a smaller first version) and confirmed priorities with your manager or product manager instead of deciding silently.
  3. Anchor it in a real collision of deadlines: what you shipped, what you deferred, and the outcome.
  4. What sinks it: saying you simply work longer hours, or answering in general terms without one example.
Follow-up
  • Tell me about a deadline you missed.
  • How do you handle an urgent request from another team that conflicts with your commitments?
  • How do you estimate a large task?

Describe a situation where you had to collaborate with a difficult team member.

medium
Behavioral / Leadership

Describe a situation where you had to collaborate with a difficult team member.

Approach
  1. Choose a professional friction (blocking code reviews, missed commitments, disagreement over design) and describe the behaviour neutrally, not the person's character.
  2. Actions: a private conversation to understand their view, a shared goal, and concrete working agreements such as writing a design doc before coding or review turnaround expectations. Escalate only after trying directly.
  3. Result: how the project and the working relationship ended up, and what you changed in your own behaviour.
  4. What sinks it: blaming, going to the manager first, or a story where you simply prove the other person wrong.
Follow-up
  • What would you have done if the direct conversation had failed?
  • What part of the friction came from you?
  • How did it affect the rest of the team?

What motivates you to perform at your best?

medium
Behavioral / Leadership

What motivates you to perform at your best?

Approach
  1. Name one or two specific motivators and back each with something you did: for example, fixing a workflow after watching users struggle, or seeking out the hardest performance problem on the team.
  2. Connect to this role only where true: the healthcare products candidates cite (EHR systems, patient-facing tools) and work alongside healthcare professionals.
  3. Mention what drains your motivation and how you manage it; it shows self-awareness.
  4. What sinks it: generic enthusiasm with no example, or a list of five motivators with nothing behind them.
Follow-up
  • Tell me about a project that did not motivate you and how you handled it.
  • Why healthcare software?
  • What kind of work would you prefer not to do?

How do you handle feedback on your work?

medium
Behavioral / Leadership

How do you handle feedback on your work?

Approach
  1. Tell a story with a specific piece of feedback (a review comment on over-engineering, a note that your updates were unclear), your first reaction, what you changed, and evidence that the change held.
  2. Show that you ask for feedback: reviewers, retrospectives, a manager check-in.
  3. Cover disagreement: ask for examples, test the feedback, push back with data if needed, and commit once a decision is made.
  4. What sinks it: feedback that is a disguised strength, or a defensive tone when telling the story.
Follow-up
  • Tell me about feedback you disagreed with.
  • How do you give hard feedback to a peer?
  • What is the most recent feedback you received?
  • 01

    Tell me about a time you faced a significant technical challenge. How did you overcome it?

  • 02

    How do you prioritize tasks when you have multiple deadlines?

  • 03

    Describe a situation where you had to collaborate with a difficult team member.

  • 04

    What motivates you to perform at your best?

  • 05

    How do you handle feedback on your work?

  • 06

    Describe your experience with Agile methodologies in past projects.

PracHub preparation framework ↗
How long does the 3Y Health Software Engineer process take?

Candidates report five stages over roughly 4-6 weeks: Preliminary Screening, Coding Challenges, System Design Discussion, Behavioral Interview and an Onsite Interview. Some reports put screen-to-offer at 4 to 8 weeks, with feedback one to two weeks after interviews. Ask the recruiter for the timeline of your specific team.

3Y Health Software Engineer candidate reports ↗
Which programming language should I use?

The requirements candidates describe list Python, Java or JavaScript. Use the one you write fastest and most correctly, and confirm with the recruiter that it is allowed for the coding challenges. Know its specifics for the reported problems: integer overflow in Java binary search, integer division and recursion limits in Python, and string encoding in Java.

PracHub Software Engineer practice ↗
Do I need healthcare or HIPAA experience?

Healthcare technology and regulatory compliance experience appear as extras rather than requirements, but HIPAA appears among the topics candidates are told to be ready for, and one reported example asks how you keep code compliant with healthcare regulations. Be ready to talk about protected health information, least-privilege access, encryption, audit logs and keeping patient data out of logs and shared caches.

PracHub Software Engineer practice ↗
How should I answer the question about Agile methodologies?

Candidates report the example "Describe your experience with Agile methodologies in past projects", and Agile or Scrum familiarity appears among the topics to be ready for. Prepare one concrete account: the team and cadence (sprints or Kanban), your part in planning, estimation and retrospectives, and one change a retrospective produced. It can double as a behavioral story.

PracHub Software Engineer practice ↗
What kind of coding questions are reported?

The reported set is classic: linked-list reversal, the first non-repeating character, the longest substring without repeating characters, binary search and merging two sorted arrays. Prepare to write each correctly with edge cases and complexity stated, and practise the related variants (k-group reversal, rotated array search, k-way merge).

PracHub Software Engineer practice ↗
Is SQL part of the loop?

Candidates report a question on optimising a slow SQL query and one on analysing a dataset for patterns. Practise reading execution plans, choosing composite indexes, rewriting non-sargable predicates and spotting row multiplication from joins, plus basic exploratory analysis in SQL or pandas.

PracHub Software Engineer practice ↗
Are there remote work options?

Candidates report a hybrid work model with both remote and in-office work. Arrangements may differ by team, so ask the recruiter during the Preliminary Screening.

3Y Health 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.