Qiskit’s 0.x → 1.0 → 2.x transition invalidated most tutorials on the internet: execute(), opflow, qiskit.algorithms, and the old backend .run() idioms are gone. This series documents the stack as it exists now — verified against Qiskit 2.x — for readers who already know the quantum mechanics and want the engineering model.

The organizing idea throughout is IBM’s four-step “Qiskit patterns” workflow: map a problem to circuits and operators, optimize via the transpiler, execute through the V2 primitives, analyze the results.

The parts so far#

  • Part 0 — Primitives and the patterns workflow (2026-07-10). Bell, Ψ⁺, and GHZ states through SamplerV2 and EstimatorV2, and why the two primitives exist at all.

  • Part 1 — The compiler is the subject (2026-07-13). Parameterized circuits, a hand-built hardware-efficient ansatz, and a transpiler benchmark: linear vs. all-to-all entanglement across optimization levels on two device topologies.

  • Part 2 — A simulator is a data structure (2026-07-25). PUBs, precision, and noise models, then statevector, density matrix, MPS, and stabilizer benchmarked on one circuit — with the MPS/statevector crossover measured rather than assumed.

More parts are in progress — variational algorithms (VQE, QAOA) built directly on the primitives are next.

Companion code#

Full notebooks for every part are on GitHub.