PracHub
QuestionsLearningGuidesInterview Prep
|Home/System Design/Flexport

Design Container Assignment with Incompatible Goods

Last updated: Jul 26, 2026

Quick Overview

Design a shipment-planning service that assigns goods to ocean containers under weight, volume, and incompatibility constraints. Cover versioned plans, deterministic optimization, explainable infeasibility, asynchronous solving, approval races, stale-input protection, overrides, and auditability.

  • hard
  • Flexport
  • System Design
  • Software Engineer

Design Container Assignment with Incompatible Goods

Company: Flexport

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

# Design Container Assignment with Incompatible Goods Design a service that assigns goods in a shipment to ocean containers while respecting capacity and incompatibility rules. The detailed product rules below are practice assumptions added to make the abbreviated source prompt actionable. ### Constraints & Assumptions - Each item has weight, volume, quantity, handling attributes, and a shipment ID. - Each container type has weight and volume limits. - Some item pairs or hazard classes cannot share a container. - Plans can be drafted, recomputed, approved, and later adjusted before loading. - The optimization goal prioritizes feasibility, then container cost, then unused capacity. ### Clarifying Questions to Ask - Are items divisible across containers? - Are incompatibilities pairwise, class-based, directional, or route-specific? - Must weight distribution or physical geometry be modeled? - Is an exact optimum required, and how much planning latency is available? - Can multiple planners edit the same shipment? ### Part 1: API and Data Model Define goods, compatibility rules, container types, plans, assignments, plan versions, and validation results. Cover create, solve, inspect, approve, and modify operations. #### Hints - Preserve the rules and inputs used to produce an approved plan. #### What This Part Should Cover - Versioned domain model - Auditable validation - Concurrent-edit semantics ### Part 2: Planning Engine Describe feasibility checks, a practical assignment algorithm, exact-solver boundaries, deterministic output, and behavior when no plan is feasible. #### Hints - Separate a fast construction step from improvement. - Treat incompatibility and capacity as different constraints. #### What This Part Should Cover - Correct constraint representation - Scalable optimization approach - Explainable infeasibility ### Part 3: Reliability and Operations Explain asynchronous execution, retries, cancellation, approval races, rule changes, monitoring, and manual override. #### Hints - A solver result can become stale before it is approved. #### What This Part Should Cover - Idempotent jobs and state transitions - Safe publication - Operational and quality signals ### What a Strong Answer Covers - A precise, versioned planning contract - A feasible algorithm with honest optimality trade-offs - Deterministic, auditable plans and useful infeasibility reports - Concurrency control, stale-input protection, and production observability ### Follow-up Questions - How would you add multi-port unloading order constraints? - When would you use integer programming rather than a heuristic? - How would you replan after one container becomes unavailable? - How do you test that rule changes never permit a forbidden pairing?

Quick Answer: Design a shipment-planning service that assigns goods to ocean containers under weight, volume, and incompatibility constraints. Cover versioned plans, deterministic optimization, explainable infeasibility, asynchronous solving, approval races, stale-input protection, overrides, and auditability.

|Home/System Design/Flexport

Design Container Assignment with Incompatible Goods

Flexport logo
Flexport
Jun 28, 2026, 12:00 AM
hardSoftware EngineerOnsiteSystem Design
2
0

Design Container Assignment with Incompatible Goods

Design a service that assigns goods in a shipment to ocean containers while respecting capacity and incompatibility rules. The detailed product rules below are practice assumptions added to make the abbreviated source prompt actionable.

Constraints & Assumptions

  • Each item has weight, volume, quantity, handling attributes, and a shipment ID.
  • Each container type has weight and volume limits.
  • Some item pairs or hazard classes cannot share a container.
  • Plans can be drafted, recomputed, approved, and later adjusted before loading.
  • The optimization goal prioritizes feasibility, then container cost, then unused capacity.

Clarifying Questions to Ask Guidance

  • Are items divisible across containers?
  • Are incompatibilities pairwise, class-based, directional, or route-specific?
  • Must weight distribution or physical geometry be modeled?
  • Is an exact optimum required, and how much planning latency is available?
  • Can multiple planners edit the same shipment?

Part 1: API and Data Model

Define goods, compatibility rules, container types, plans, assignments, plan versions, and validation results. Cover create, solve, inspect, approve, and modify operations.

Hints

  • Preserve the rules and inputs used to produce an approved plan.

What This Part Should Cover Guidance

  • Versioned domain model
  • Auditable validation
  • Concurrent-edit semantics

Part 2: Planning Engine

Describe feasibility checks, a practical assignment algorithm, exact-solver boundaries, deterministic output, and behavior when no plan is feasible.

Hints

  • Separate a fast construction step from improvement.
  • Treat incompatibility and capacity as different constraints.

What This Part Should Cover Guidance

  • Correct constraint representation
  • Scalable optimization approach
  • Explainable infeasibility

Part 3: Reliability and Operations

Explain asynchronous execution, retries, cancellation, approval races, rule changes, monitoring, and manual override.

Hints

  • A solver result can become stale before it is approved.

What This Part Should Cover Guidance

  • Idempotent jobs and state transitions
  • Safe publication
  • Operational and quality signals

What a Strong Answer Covers Guidance

  • A precise, versioned planning contract
  • A feasible algorithm with honest optimality trade-offs
  • Deterministic, auditable plans and useful infeasibility reports
  • Concurrency control, stale-input protection, and production observability

Follow-up Questions Guidance

  • How would you add multi-port unloading order constraints?
  • When would you use integer programming rather than a heuristic?
  • How would you replan after one container becomes unavailable?
  • How do you test that rule changes never permit a forbidden pairing?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Flexport•More Software Engineer•Flexport Software Engineer•Flexport System Design•Software Engineer System Design

Your design canvas — auto-saved

PracHub

Master your tech interviews with 9,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.