B&H Photo Video · Software Engineer
Updated · 2026-10-02

B&H Photo Video Software Engineer
Interview Guide

THE 60-SECOND BRIEF

B&H Photo Video is a retailer that sells photography, video and electronics, and candidates describe the Software Engineer role as work on the web applications and systems customers use to shop. The reported responsibilities are building and maintaining those web applications, turning product managers' requirements into technical specifications, taking part in code reviews, and fixing bugs and performance problems. The requirements candidates describe name one programming language such as Java or Python, a web framework such as React or Angular, and database experience with MySQL or MongoDB. Cloud platforms such as AWS or Azure, DevOps tooling and Agile practice are listed as extras.

This guide is for software engineers preparing for the B&H Photo Video Software Engineer loop. It covers the three reported rounds (Phone Screen, Technical Interviews, Leadership Interview), the sixteen questions candidates report, and a seven-day plan. Candidates describe the target experience as roughly three to five years, ideally in e-commerce or retail technology, so the preparation leans on web application fundamentals, coding basics, performance and debugging, two system design prompts, and stories about your own projects and teamwork.

Candidates report three rounds over about three to five weeks: a recruiter Phone Screen, several Technical Interviews that mix team-member discussions with technical assessments, and a Leadership Interview with someone such as the CIO.

Programming Problem SolvingCode Writing / Coding ExercisesTechnical Project Discussion

33 min read

Browse Software Engineer questions

See the practice prompts

18Practice promptsAcross five skill areas

The reported questions fall into five groups: general technical questions (a hard problem you solved, your languages, MVC, code quality, a technology trend), problem-solving cases (a slow application, a high traffic web application, debugging a complex system issue), behavioral prompts, three coding fundamentals, and two design prompts (a URL shortening service and a scalable e-commerce platform). Topics candidates list for the loop are programming problem solving, code writing exercises, technical project discussion, software engineering fundamentals and resume-based technical discussion.

Two things follow from that mix. First, a good share of the loop is you talking about your own work, so every project on your resume needs a short account of the problem, your part, the technical choices and the result. Second, the coding questions reported are classic fundamentals: reverse a linked list, find two numbers that add up to a target, and compare a stack with a queue. Candidates describe the difficulty as average to easy, which makes clean, correct code and clear explanation the goal rather than exotic algorithms.

Because the role is about a shopping website, performance and reliability cases are worth extra rehearsal. For the slow application and high traffic questions, practise a fixed order: measure first, find the bottleneck (database queries, missing indexes, repeated calls, no caching, blocking work in the request path), fix the largest cost, then verify with the same measurement. Since the requirements mention MySQL and MongoDB, be ready to discuss indexes and query shape in at least one of them.

The Leadership Interview is reported to involve someone such as the CIO. Prepare to describe technical work in terms of what it changed for users or the business, and keep stories ready about collaborating with a hard colleague, prioritising under a deadline and leading a project.

01

Phone Screen

reported

Candidates report that the first stage is a call with a recruiter about your background and fit for the role. No technical questions are reported for this call, so treat it as a conversation about your resume and the role's listed requirements: one programming language, a web framework and a database. Have a clear, short account of what you have built and why a retailer of photography, video and electronics interests you.

What to demonstrate

  • Your background against the requirements candidates describe: a language such as Java or Python, a framework such as React or Angular, a database such as MySQL or MongoDB
  • How clearly you summarise your experience and your reason for applying
  • Logistics fit, including questions about the later stages

How to prepare

  • Write a short walkthrough of your career with one line per project: the problem, your part and the result.
  • Match your stack to the listed requirements and note any gap (for example MongoDB if you only used MySQL) with the closest thing you have done.
  • Prepare your answer to 'What programming languages are you most comfortable with, and why?' and tie it to a project you shipped.
  • Write questions for the recruiter: what the technical sessions contain, who conducts them, and how flexible the working arrangement is for the team.
B&H Photo Video Software Engineer candidate reports ↗
02

Technical Interviews

reported

Candidates report several sessions in this stage: discussions with team members and technical assessments. Reported topics for the loop include programming problem solving, code writing exercises, technical project discussion, software engineering fundamentals and resume-based technical discussion. Reports do not tie particular questions to particular sessions, so prepare every type: the coding fundamentals, the explain-and-compare questions, the performance and debugging cases, and the two design prompts.

What to demonstrate

  • Working code written live, since code writing exercises are a reported topic
  • Command of fundamentals such as MVC, stacks and queues, and code quality practices
  • Ability to discuss your own projects and technical decisions in detail
  • Structured reasoning on performance, debugging and design cases

How to prepare

  • Write reverse a linked list (iterative and recursive), two-sum (hash map) and a stack versus queue explanation in your main language without an IDE helper.
  • Prepare spoken answers for MVC, code quality and maintainability, and a recent technology trend, each tied to a project you worked on.
  • Rehearse a fixed sequence for the slow application, the high traffic web application and the complex system bug: measure, locate, fix, verify.
  • Sketch both design prompts, the URL shortening service and the scalable e-commerce platform, with requirements, data model, read and write paths and failure handling.
B&H Photo Video Software Engineer candidate reports ↗
03

Leadership Interview

reported

Candidates report an interview with leadership, such as the CIO, to assess fit and skills. Reported behavioral prompts cover working with a difficult team member, prioritising under tight deadlines and leading a project, and candidates also report being asked about a recent technology trend. Expect to describe your work at a higher level than in the technical sessions: what the problem was, why it mattered, what you decided and what happened.

What to demonstrate

  • Overall fit and skills for the Software Engineer role, as the stage is described
  • Teamwork and communication, which candidates list as evaluation areas
  • How you explain technical work and decisions to a senior, non-peer audience

How to prepare

  • Build three stories with a clear result and your own decisions in them: a difficult collaborator, a deadline you had to prioritise under, and a project you led.
  • Prepare a short answer on a recent technology trend that connects it to something you have actually built or would apply to a shopping website.
  • Practise explaining one project in business terms first (customer, cost, reliability) and technical terms second.
  • Prepare two questions for leadership about the engineering roadmap and how the team works with product managers.
B&H Photo Video Software Engineer candidate reports ↗

PracHub editorial advice for the preparation topics above.

01

Losing the rest of the list while reversing it

In the reverse-a-linked-list question, save the next node before you repoint the current one, keep previous, current and next pointers, and test an empty list, a single node and two nodes. Know the recursive version too and say it costs O(n) stack space against O(1) for the iterative one.

02

Giving the nested-loop answer to the two-numbers-that-add-up-to-a-target question and stopping

State the O(n squared) version, then move to a hash map of seen values for O(n) time and O(n) space. Settle duplicates, using the same element twice, no valid pair and what you return before you write code.

03

Answering the slow application and high traffic cases with a list of fixes such as 'add a cache' without measuring

Open with how you would find the bottleneck: profile or trace the request path, check slow queries and missing indexes, N+1 queries and blocking calls. Pick the biggest cost, fix it, and re-measure. Then discuss caching, queues and horizontal scaling with the trade-offs each brings.

04

Telling project stories that stay at team level, so your own contribution and decisions never appear

Technical project discussion and resume-based discussion are reported topics. For each project, prepare the problem, your specific part, one technical decision with the alternative you rejected, and the result.

05

Jumping into boxes and arrows on the URL shortening and e-commerce design prompts

Start from requirements and rough load, then separate the read path from the write path. For the URL shortener cover key generation, collisions, redirect latency and caching. For the e-commerce platform cover catalog and search, cart, checkout and inventory consistency, and what happens when a dependency is down.

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

14 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 three-pointer reversal: prev = null, curr = head; while curr is not null, save next = curr.next, set curr.next = prev, move prev = curr and curr = next; return prev. O(n) time, O(1) extra space.
  2. Recursive version: reverse the rest of the list, then set head.next.next = head and head.next = null, and return the new head from the base case. Still O(n) time, but O(n) call-stack depth, which can overflow on long lists (CPython's default recursion limit is 1000).
  3. Edge cases: an empty list returns null, a single node returns itself, and a two-node list makes a good dry run. Check that the old head's next ends up null so the result has no cycle.
  4. Test it by building a list from an array, reversing it, walking the result back into an array, and comparing that with the reversed input. For a doubly linked list, swap prev and next on every node and return the old tail.
Follow-up
  • Reverse only the nodes between positions m and n in one pass.
  • Reverse the list in groups of k nodes, leaving a final short group as it is.
  • Check whether the list is a palindrome using O(1) extra space.

Given a list of integers, find two numbers that add up to a specific target.

medium
Coding / Algorithms

Given a list of integers, find two numbers that add up to a specific target.

Approach
  1. Clarify first: return indices or values, exactly one answer or possibly none, whether duplicates appear, whether one element may be used twice, whether the input is sorted, and whether negatives are allowed.
  2. Brute force: check every pair with two nested loops, O(n^2) time and O(1) space. State it, then improve it.
  3. One-pass hash map from value to index: for each x at index i, if target - x is already in the map return (map[target - x], i), otherwise store x -> i. O(n) average time and O(n) space. Checking before inserting stops an element pairing with itself and still handles [3, 3] with target 6.
  4. Alternative: sort, then move two pointers inward from both ends. O(n log n) time and no hash map, but sorting loses the original indices unless you sort (value, index) pairs. On input that is already sorted it runs in O(n).
  5. Edge cases: return an explicit empty result when there is no pair, and in Java watch for int overflow in target - x near the type's limits (use long).
Follow-up
  • Return all unique pairs that sum to the target, without duplicates.
  • Design a structure with add(number) and find(target) for a stream of numbers, and say which operation you make cheap.
  • Count the pairs whose sum is below the target in a sorted array.

Explain the difference between a stack and a queue, and provide examples of their use cases.

medium
Coding / Algorithms

Explain the difference between a stack and a queue, and provide examples of their use cases.

Approach
  1. Define both precisely. A stack is LIFO: push, pop and peek all work at the top in O(1). A queue is FIFO: enqueue at the back and dequeue at the front, both O(1) with the right implementation.
  2. Implementation details: a dynamic array gives a stack amortized O(1) push. A queue needs a linked list or a circular buffer. In Java, use ArrayDeque for both, because Stack is a legacy synchronized class that extends Vector. In Python, use a list for a stack (append/pop) and collections.deque for a queue, since list.pop(0) is O(n).
  3. Stack use cases: the function call stack, undo history, matching brackets, iterative DFS, expression evaluation, and the browser back button.
  4. Queue use cases: BFS, job and message queues (for example order events processed by background workers), print spooling, and buffering requests under load. A priority queue is a heap ordered by priority, not a FIFO queue.
  5. Know the classic conversion: a queue built from two stacks moves items from the inbox stack to the outbox stack only when the outbox is empty, which gives amortized O(1) per operation.
Follow-up
  • Implement a queue with two stacks and explain why the cost is amortized O(1).
  • Design a stack that also returns its minimum in O(1).
  • When would you use a deque or a priority queue instead?

The plan moves from your own project stories to the reported coding fundamentals, then explain-and-compare topics, performance and debugging, design, and behavioral prompts, and ends with a full mock of the three rounds.

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
01Map the three rounds and your project inventory
  • Write the reported sequence (Phone Screen, Technical Interviews, Leadership Interview) and list what you will be asked to talk about at each.
  • List every project on your resume with its stack, your role, one technical decision and the result.
  • Write out your answer to the challenging technical problem question in a problem, action, result shape, using the strongest project.

Deliverable: A one-page loop map, a project inventory table, and a written answer to the challenging technical problem question.

Practice prompt ↗
02Coding fundamentals in your main language
  • Write reverse a linked list iteratively and recursively, and test it on empty, single-node and longer lists.
  • Write the two-numbers-that-add-up-to-a-target solution with a hash map, and handle duplicates and the no-answer case.
  • Write a stack and a queue, with use cases for each (undo and call stacks against task queues and breadth-first search).

Deliverable: Three working, tested solutions plus a short comparison of stack and queue with two use cases each.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
03Fundamentals and personal technical stories
  • Write a model, view, controller trace for one request in a framework you used, including where validation lives.
  • Write a short answer on how you keep code quality and maintainability high: reviews, tests, naming, small changes.
  • Write your language answer and a technology trend answer, each tied to something you built.

Deliverable: Four spoken-length answers (MVC, code quality, languages, trend), each referring to a real project.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
04Performance and debugging cases
  • Write a bottleneck checklist for the slow application: measure, trace, queries and indexes, N+1, caching, blocking work.
  • Add what changes for the high traffic web application: horizontal scaling, caches, queues, graceful degradation, monitoring.
  • Write a debugging sequence for a complex system issue: what changed, reproduce, bisect, confirm the cause, add a regression test.
  • Work PracHub's keyset-paging SQL practice drill to rehearse a query-shape fix for slow list pages.

Deliverable: A one-page performance playbook and a debugging sequence, plus the completed keyset-paging drill.

Practice prompt ↗Practice prompt ↗Practice prompt ↗Practice prompt ↗
05System design prompts
  • Design the URL shortening service: requirements, key generation, storage, redirect path, caching and collisions.
  • Design a scalable e-commerce platform: catalog and search, cart, checkout, inventory consistency, database choice.
  • For each design, write what breaks first at ten times the traffic and how you would find out.

Deliverable: Two annotated design sketches, each with a failure and scaling note.

Practice prompt ↗Practice prompt ↗
06Behavioral stories
  • Write a story for collaborating with a difficult team member, centred on behaviour and the working change you agreed.
  • Write a prioritisation story with a scope cut you negotiated, and your general method in three sentences.
  • Write a project-lead story with the goal, your decisions, a hard moment and a result you can verify.

Deliverable: Three structured stories, each with your own decisions, an outcome and one thing you would do differently.

Practice prompt ↗Practice prompt ↗Practice prompt ↗
07Full mock of the three rounds
  • Run a recruiter-call mock: resume walkthrough, language answer, and your questions for the recruiter.
  • Run a technical block: one coding problem written live, one performance case and one design prompt, spoken out loud.
  • Run a leadership-style conversation: one project in business terms, one behavioral story and the trend answer.

Deliverable: A list of the weakest answers from the mock, each with a rewritten version.

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 Leadership Interview with someone such as the CIO, and behavioral prompts about collaboration, prioritisation and leading a project. Teamwork and communication are also listed among the evaluation areas. Prepare stories where you made the decisions, with an outcome you can verify, and practise explaining technical work in terms of customers and the business.

Explain the MVC architecture and your experience with it.

medium
Technical / Domain Questions

Explain the MVC architecture and your experience with it.

Approach
  1. Define the three parts in one breath: the model holds data and business rules, the view renders the output, and the controller receives the request, calls the model and chooses the view. Then trace one request, such as adding an item to a cart: route to controller, controller calls a service that checks stock and saves, then a template or JSON response.
  2. Anchor the answer in a framework you used (Spring MVC, Django, Rails, ASP.NET MVC, Express with a template engine) and say where your files lived. Note that Django names its pattern model-template-view, which shows you know the pattern is looser than the acronym.
  3. Show judgment: keep controllers thin, put business rules in the model or a service layer so they can be unit tested without HTTP, and keep logic out of templates. Name the failure modes, namely a fat controller and an anemic model that is only a bag of fields.
  4. Compare with relatives: MVP and MVVM, and component-based front ends like React or Angular, where the view is derived from state and the controller role is split between components, services and the server API.
  5. Close with one concrete experience of your own, such as moving pricing or validation logic out of a controller into a service so it could be tested and reused, and say what it improved.
Follow-up
  • Where do input validation and authorization belong in an MVC application?
  • How does the pattern change when the front end is a single-page app talking to a JSON API?
  • How would you unit test a controller, and what would you mock?

Tell me about a time you had to collaborate with a difficult team member.

medium
Behavioral / Leadership

Tell me about a time you had to collaborate with a difficult team member.

Approach
  1. Choose a conflict that affected the work, such as slow or dismissive code reviews, missed handoffs or repeated unresponsiveness, and describe it by behaviour and impact. Do not label the person; a story built on 'he was impossible' reads as blame.
  2. Use a STAR shape with little time on the situation: your first action should be a private, direct conversation where you ask what is driving their behaviour (constraints, priorities, a different view of the design) and restate the shared goal.
  3. Show a concrete working change you agreed on, such as review turnaround, a written interface contract, or recording design decisions in the ticket, rather than a vague 'we got along better'.
  4. Show escalation judgment: say when you involved your lead or the product manager and why, after the direct attempt and not in place of it.
  5. Report the result in work terms (delivery, rework, review quality) and name what you changed in your own approach. Stories where you win by going around the person sink the answer.
Follow-up
  • What would you have done if the conversation had not changed anything?
  • At what point is it right to bring in your manager?
  • What did the situation teach you about your own part in it?

How do you prioritize tasks when faced with tight deadlines?

medium
Behavioral / Leadership

How do you prioritize tasks when faced with tight deadlines?

Approach
  1. Lead with your method and prove it with a story: list everything due, estimate effort, then rank by impact on customers or the business, how firm each deadline is, what blocks other people, and the risk of getting it wrong.
  2. Make the cost visible. Tell the product manager or lead what fits, what does not, and offer a scope cut (ship the core path first, defer polish) instead of quietly working longer hours.
  3. Protect verification inside the reduced scope: cut features, not tests and code review on the critical path. For a shopping site, give a concrete ranking example, such as a defect that blocks purchase outranking a new feature.
  4. Give one real case with what you dropped, who agreed to it and what happened, then say how you re-planned when new information arrived midway.
Follow-up
  • Two stakeholders each insist their task comes first. What do you do?
  • What exactly did you drop, and who signed off on dropping it?
  • What changes if the deadline is moved earlier halfway through?

Describe a situation where you took the lead on a project. What was the outcome?

medium
Behavioral / Leadership

Describe a situation where you took the lead on a project. What was the outcome?

Approach
  1. Pick a project where you owned the outcome, even without a manager title, and say in one sentence what the goal and the finish line were.
  2. Show leadership as actions: you set the scope and done criteria, split the work into pieces matched to people, set checkpoints, made and recorded the key design decisions, unblocked teammates and kept reviews moving.
  3. Include one hard moment, such as a slipping piece or a disagreement over the approach, and explain how you resolved it with evidence or a trade-off rather than rank.
  4. State the outcome with facts you can defend: shipped against the plan, defects or latency reduced, adoption by users. If you lack numbers, name the observable result instead of inventing one.
  5. Use 'I' for your decisions and credit teammates by role for theirs; a story that is all 'the team' hides your contribution, and one that is all 'I' undercuts the lead claim. End with what you would change.
Follow-up
  • How did you handle a teammate who fell behind?
  • Which decision did you make that others disagreed with, and how did it turn out?
  • What would you change if you ran the project again?
  • 01

    Tell me about a time you had to collaborate with a difficult team member.

  • 02

    How do you prioritize tasks when faced with tight deadlines?

  • 03

    Describe a situation where you took the lead on a project. What was the outcome?

  • 04

    Describe a challenging technical problem you faced and how you resolved it.

  • 05

    Tell me about a time you changed your approach after feedback in a code review.

PracHub preparation framework ↗
How many rounds are there and how long does the loop take?

Candidates report three rounds over about three to five weeks: a Phone Screen, Technical Interviews, and a Leadership Interview. The pace depends on scheduling, so ask the recruiter in the first call what to expect next.

B&H Photo Video Software Engineer candidate reports ↗
Who conducts each round?

Candidates report that the Phone Screen is a recruiter call, the Technical Interviews are sessions with team members plus technical assessments, and the Leadership Interview is with leadership, such as the CIO. Ask the recruiter for the names and formats of the sessions on your schedule.

PracHub Software Engineer practice ↗
How hard is the loop and how long should I prepare?

Candidates generally describe the difficulty as average to easy, and some suggest one to two weeks of preparation. The seven-day plan in this guide covers the reported coding fundamentals, performance and debugging cases, two design prompts and the behavioral prompts.

B&H Photo Video Software Engineer candidate reports ↗
Which languages and tools should I review?

The requirements candidates describe name one language such as Java or Python, a web framework such as React or Angular, and databases such as MySQL or MongoDB. AWS or Azure, DevOps tools and Agile practice are listed as extras. Be ready to write code in your strongest language and to discuss a project that used a framework and a database.

PracHub Software Engineer practice ↗
What coding questions do candidates report?

The reported coding questions are reversing a linked list, finding two numbers in a list that add up to a target, and explaining stacks versus queues with use cases. Practise writing each one without autocomplete, state time and space complexity, and test edge cases aloud.

PracHub Software Engineer practice ↗
Do I need e-commerce experience?

Candidates describe the target as roughly three to five years of experience, ideally in e-commerce or retail technology. If you lack retail experience, translate your projects into shopping-site terms such as catalog browsing, search, cart and checkout reliability, and use the e-commerce design prompt to show that thinking.

PracHub Software Engineer practice ↗
Is the role remote or on-site?

Candidates report that remote work exists but expectations vary by team. Ask the recruiter during the Phone Screen about the arrangement for the specific team.

B&H Photo Video 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.