As a Software Engineer at Poshmark, you sit at the intersection of e-commerce, social networking, and high-scale distributed systems. Poshmark powers a vibrant marketplace serving millions of active users who buy, sell, and discover fashion and lifestyle products. Engineers here build and scale the critical backend systems, search pipelines, listing engines, and interactive feed services that turn item discovery into seamless real-time social transactions. The impact of a Software Engineer at Poshmark is directly visible in platform reliability, user engagement, and core revenue mechanics. Whether you are optimizing search and indexing workflows using Elasticsearch, architecting robust database schemas for high-volume transactions, or implementing backend microservices that handle live social interactions, your engineering decisions directly influence millions of daily active users. The engineering culture at Poshmark combines fast-paced product delivery with rigorous computer science fundamentals. Candidates are expected to bring strong algorithmic problem-solving capabilities, solid database knowledge, and a pragmatic approach to system design and maintainability.
Online Assessment
reportedInitial coding challenge to evaluate coding agility, especially for university graduates or junior roles.
What to demonstrate
- Initial coding challenge to evaluate coding agility, especially for university graduates or junior roles
- Depth in Data Structures & Algorithms (DSA)
How to prepare
- Answer aloud and timed: Given an array of integers, write an algorithm to find the maximum product subarray.
- Answer aloud and timed: Given an array of strings, write a function to group anagrams together.
Recruiter Call
reportedDiscussion with a recruiter to review your background and the role.
What to demonstrate
- Discussion with a recruiter to review your background and the role
- Depth in Data Structures & Algorithms (DSA)
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 Phone Screens
reportedOne or two phone screens that include live coding and resume discussion.
What to demonstrate
- One or two phone screens that include live coding and resume discussion
- Depth in Data Structures & Algorithms (DSA)
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.
Onsite Interview
reportedRigorous virtual or in-person loop consisting of 3 to 5 rounds focusing on technical and behavioral evaluations.
What to demonstrate
- Rigorous virtual or in-person loop consisting of 3 to 5 rounds focusing on technical and behavioral evaluations
- Depth in Data Structures & Algorithms (DSA)
How to prepare
- Answer aloud and timed: Design a relational or document database schema for an e-commerce marketplace order and listing system.
- Answer aloud and timed: How would you index and search millions of product listings efficiently using tools like Elasticsearch?
Deep Dives
reportedIn-depth discussions on data structures, algorithms, and system design for mid-level and above.
What to demonstrate
- In-depth discussions on data structures, algorithms, and system design for mid-level and above
- Depth in Data Structures & Algorithms (DSA)
How to prepare
- Answer aloud and timed: Explain how you would structure a distributed backend architecture for real-time feed generation.
- Answer aloud and timed: Discuss strategies for database query optimization, indexing, and connection pooling under heavy read/write traffic.
Behavioral Interview
reportedAssessment of cultural fit and behavioral competencies.
What to demonstrate
- Assessment of cultural fit and behavioral competencies
- Depth in Data Structures & Algorithms (DSA)
How to prepare
- Prepare three examples from your own work, each with a decision you made and an outcome you can quantify.
- Re-read the description of the behavioral interview above and write down what you would ask to confirm before it.
Final Round
reportedPotential round with a Director of Engineering or founder for senior roles.
What to demonstrate
- Potential round with a Director of Engineering or founder for senior roles
- Depth in Data Structures & Algorithms (DSA)
How to prepare
- Answer aloud and timed: Explain object-oriented programming (OOP) principles and demonstrate how you apply them to code maintainability.
- Answer aloud and timed: Describe how fundamental Operating System (OS) concepts like multithreading, process scheduling, and memory management impact application performance.
PracHub editorial advice for the preparation topics above.
Structure your coding thought process
Before writing any code, explicitly state your proposed algorithm, time complexity, and space complexity to your interviewer. Gain consensus before implementation.
Prepare for database schema design
Don't treat system design rounds solely as high-level box-drawing exercises. Be ready to write out exact table columns, primary/foreign key relationships, and query indexing strategies.
Don't skip graph and matrix preparation
Candidates often expect basic string or array questions and are caught off-guard by 2D grid traversals or graph connectivity problems.
Prepare concise project walk-throughs
Practice explaining your past architecture projects using a clear structure: state the technical problem, your specific engineering contribution, the design trade-offs made, and the final impact.
Choose a category, try a prompt, then open its approach, worked solution or follow-up when you need it.
Given an array of integers, write an algorithm to find the maximum product subarray.
Given an array of integers, write an algorithm to find the maximum product subarray.
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 an array of strings, write a function to group anagrams together.
Given an array of strings, write a function to group anagrams together.
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?
Implement a algorithm to reverse a linked list or perform targeted node manipulations.
Implement a algorithm to reverse a linked list or perform targeted node manipulations.
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?
Solve array traversal and window optimization problems using sliding window and two-pointer techniques.
Solve array traversal and window optimization problems using sliding window and two-pointer techniques.
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 2D matrix, solve grid traversal, search, and path-finding problems.
Given a 2D matrix, solve grid traversal, search, and path-finding problems.
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?
Demonstrate graph traversal algorithms (BFS/DFS) to solve connectivity and shortest path problems.
Demonstrate graph traversal algorithms (BFS/DFS) to solve connectivity and shortest path problems.
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?
How would you index and search millions of product listings efficiently using tools like Elasticsearch?
How would you index and search millions of product listings efficiently using tools like Elasticsearch?
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?
Describe how fundamental Operating System (OS) concepts like multithreading, process scheduling, and memory ma
Describe how fundamental Operating System (OS) concepts like multithreading, process scheduling, and memory management impact application performance.
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?
Discuss strategies for database query optimization, indexing, and connection pooling under heavy read/write tr
Discuss strategies for database query optimization, indexing, and connection pooling under heavy read/write traffic.
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?
Find version gaps and relay lag with window functions
outbox_event holds event_id, aggregate_type, aggregate_id, aggregate_version, event_type, payload, status ('pending','published','dead'), attempts, created_at, published_at. A projection is missing rows and you must decide whether the relay skipped events or the consumer dropped them. Write three queries over the last seven days: one listing every aggregate_id whose published aggregate_version sequence has a hole, one giving per-day counts with a running total, and one returning the newest published event per aggregate. For each, say where the window function is evaluated relative to WHERE and LIMIT. PostgreSQL 16.
Approach
- Gaps: compute lead(aggregate_version) OVER (PARTITION BY aggregate_id ORDER BY aggregate_version) in a subquery, then filter next_version <> aggregate_version + 1 in the outer query. Window functions are evaluated after WHERE, GROUP BY and HAVING and before the outer ORDER BY and LIMIT, so the predicate cannot sit in the same WHERE clause and PostgreSQL 16 has no QUALIFY.
- Say what the seven-day filter does to the answer: it truncates every partition, so the first row per aggregate has no predecessor inside the window and a hole spanning the boundary is invisible. Widen the window, or join to resource.version as the authority for the true maximum.
- Running total: SELECT date_trunc('day', created_at) AS d, count() AS n, sum(count()) OVER (ORDER BY date_trunc('day', created_at) ROWS UNBOUNDED PRECEDING). An aggregate inside a window call is legal because grouping runs before windowing. The grouping key is unique per row here so ROWS and RANGE agree, but write the frame anyway — over ungrouped rows with tied timestamps the default RANGE frame pulls in every peer row and the total jumps.
- Newest per aggregate: DISTINCT ON (aggregate_id) ... ORDER BY aggregate_id, aggregate_version DESC is the cheap PostgreSQL-only form when an index matches that order; row_number() OVER (PARTITION BY aggregate_id ORDER BY aggregate_version DESC) = 1 is the portable form and needs a subquery for the same evaluation-order reason as the gap query.
Follow-up
- Relay failover redelivers events. Does a duplicate break the gap query, and how would you detect one from this table alone?
- Turn the gap check into a continuous monitor rather than a query someone runs after an incident. What does it watch?
Design a relational or document database schema for an e-commerce marketplace order and listing system.
Design a relational or document database schema for an e-commerce marketplace order and listing system.
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?
Explain how you would structure a distributed backend architecture for real-time feed generation.
Explain how you would structure a distributed backend architecture for real-time feed generation.
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?
Walk me through the architecture of a complex feature or system you built in a previous role.
Walk me through the architecture of a complex feature or system you built in a previous role.
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?
Explain object-oriented programming (OOP) principles and demonstrate how you apply them to code maintainabilit
Explain object-oriented programming (OOP) principles and demonstrate how you apply them to code maintainability.
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?
How do you manage source control using Git commands and manage continuous delivery pipelines?
How do you manage source control using Git commands and manage continuous delivery pipelines?
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?
Explain a difficult production bug you encountered, how you diagnosed it, and your resolution strategy.
Explain a difficult production bug you encountered, how you diagnosed it, and your resolution strategy.
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?
Edge instances grow 400 MB per hour until the nightly restart
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
- 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.
- 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.
- 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.
- 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?
Built from the rounds and topics Poshmark candidates report.
Prepare, practise & reflect
One practical outcome each day. Spend longer where you need it.
0 / 7 done01Map the Poshmark loop
- Write out the reported sequence: Online Assessment, Recruiter Call, Technical Phone Screens, Onsite Interview, Deep Dives, Behavioral Interview.
- 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 7 reported rounds, with the weakest marked.
02Work Data Structures & Algorithms (DSA)
- Spend the session on Data Structures & Algorithms (DSA), which Poshmark 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).
03Work Coding Interviews
- Spend the session on Coding Interviews, which Poshmark candidates report being tested on.
- Write one worked example in Coding Interviews and time yourself on it.
Deliverable: One timed worked example in Coding Interviews.
04Work System Design
- Spend the session on System Design, which Poshmark 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.
05Answer out loud: Data Structures & Algorithms
- Answer aloud, timed: Given an array of integers, write an algorithm to find the maximum product subarray.
- Answer aloud, timed: Given an array of strings, write a function to group anagrams together.
Deliverable: Spoken answers to 2 reported Data Structures & Algorithms question(s), under time.
06Answer out loud: System Design & Database Architecture
- Answer aloud, timed: Design a relational or document database schema for an e-commerce marketplace order and listing system.
- Answer aloud, timed: How would you index and search millions of product listings efficiently using tools like Elasticsearch?
Deliverable: Spoken answers to 2 reported System Design & Database Architecture question(s), under time.
07Answer out loud: Project & Engineering Fundamentals
- Answer aloud, timed: Walk me through the architecture of a complex feature or system you built in a previous role.
- Answer aloud, timed: Explain object-oriented programming (OOP) principles and demonstrate how you apply them to code maintainability.
Deliverable: Spoken answers to 2 reported Project & Engineering Fundamentals question(s), under time.
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.
How do you handle database migration, risk assessment, and zero-downtime schema updates?
How do you handle database migration, risk assessment, and zero-downtime schema updates?
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 pivot technical priorities due to changing business or production requirements
Tell me about a time you had to pivot technical priorities due to changing business or production requirements.
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 technical disagreements with team members or technical leads?
How do you handle technical disagreements with team members or technical leads?
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?
Describe a project where you collaborated closely with product managers and cross-functional teams to deliver
Describe a project where you collaborated closely with product managers and cross-functional teams to deliver a deadline-driven release.
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 situation where you had to learn a new framework or technology quickly to solve an immediate p
Tell me about a situation where you had to learn a new framework or technology quickly to solve an immediate problem.
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?
- 01
How do you handle database migration, risk assessment, and zero-downtime schema updates?
- 02
Tell me about a time you had to pivot technical priorities due to changing business or production requirements.
- 03
How do you handle technical disagreements with team members or technical leads?
- 04
Describe a project where you collaborated closely with product managers and cross-functional teams to deliver a deadline-driven release.
How difficult are the technical interviews at Poshmark?
The technical difficulty is generally average to challenging. While some questions focus on fundamental data structures like array manipulation and linked lists, rounds frequently touch on advanced topics like graph algorithms, matrix traversals, and detailed database schema design.
Poshmark Software Engineer candidate reports ↗How much preparation time should I plan for before my interviews?
Most candidates benefit from 2 to 3 weeks of focused preparation. Dedicate time to practicing data structure problems (arrays, stacks, matrices, graphs), reviewing system design patterns for e-commerce, and structuring clear explanations of your previous engineering projects.
Poshmark Software Engineer candidate reports ↗What is the typical response timeline after an interview round?
Candidates generally hear back from the recruiting team within a few business days to a week following a round. However, timeline speeds can fluctuate depending on team capacity and active hiring cycles.
Poshmark Software Engineer candidate reports ↗Will I receive detailed feedback if my application is not successful?
Like many tech companies, Poshmark recruiters may not always provide granular written technical feedback post-rejection. Focus on self-evaluating your algorithmic speed, communication clarity, and system design trade-offs during practice.
Poshmark Software Engineer candidate reports ↗What topics does Poshmark test in interviews?
Poshmark interviews most often cover Data Structures & Algorithms (DSA), SQL, Problem Solving, System Design, and Sliding Window Technique. The exact emphasis depends on the specific role you apply for.
Poshmark 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.
- 01Poshmark Software Engineer candidate reports ↗
Company-reported rounds, questions and FAQ.
Candidate reports · Accessed 2026-09-22 - 02PracHub Software Engineer practice ↗
PracHub practice material, not company-reported.
PracHub page · Accessed 2026-09-22 - 03PracHub preparation framework ↗
PracHub preparation guidance.
PracHub page · Accessed 2026-09-22