Posts

Showing posts from September, 2026

Measurement Error Mitigation Without a Physics Degree — Qiskit in Practice

Image
When you measure a qubit on real quantum hardware, you don't always get the truth. A qubit prepared as |0> sometimes reads back as 1 , and vice versa. These readout errors are some of the most common and controllable sources of noise in modern processors — and unlike decoherence or gate infidelity, they're comparatively easy to model and correct with classical post-processing. This post is the practical version of that correction. Where the theory of quantum error correction (which we've covered elsewhere) deals with protecting the state with logical qubits, measurement error mitigation is a lighter-weight trick: characterize how often the machine misreads, then undo that on the distribution you observe. No extra qubits, no complex codes — just calibration and a matrix multiply. Where readout errors come from A qubit is a physical device (superconducting circuit, trapped ion, etc.). When you "measure" it, the machine maps its state to a classical signal ...

Post-Quantum Cryptography in 2026 — What Developers Actually Need to Know

Image
Every developer has heard the disclaimer: "not secure for post-quantum use." Most of us have ignored it. In 2026, that's no longer a safe posture. The migration is no longer hypothetical — the new standards are public, the libraries have shipped, and "harvest now, decrypt later" attacks mean the data you send today could be broken years from now. I'm a developer, not a cryptographer. This post is the practical lay-of-the-land I've built up reading the standards, running the tools, and figuring out what actually changes in a real codebase — the algorithms, what they replace, and the concrete migration steps for a web app or a smart contract. What "quantum" actually threatens Quantum computers threaten a specific class of classical math: factoring and discrete logarithms . RSA, elliptic-curve Diffie-Hellman (ECDH), ECDSA — the workhorses of TLS, SSH, and virtually every cryptocurrency — all rest on problems a sufficiently large quantum compu...

Quantum Key Distribution for Developers — BB84 with Qiskit

Image
Quantum Key Distribution (QKD) is the rare quantum protocol that does something classical cryptography genuinely cannot: it lets two parties detect, in real time, whether an eavesdropper was listening to their key exchange. The security doesn't come from computational hardness — it comes from measurement disturbance, one of the few aspects of quantum mechanics that holds up even against an adversary with infinite computing power. This post walks through the oldest and most practical of these protocols, BB84 , from the raw qubits up to a working Qiskit implementation. No math degree required — just circuits, Python, and the willingness to re-sift a key. The problem BB84 solves Two parties, Alice and Bob, want to share a secret random bit string. A classic approach — Diffie-Hellman — is secure only if the enemy can't solve a hard math problem. But a future quantum computer (or a patient classic one) could break it. BB84 sidesteps the math entirely: Alice sends information enc...

Qiskit Runtime & the Primitives — SamplerV2 and EstimatorV2 in 2026

Image
When we first seeded Quantum Genesis, we ran circuits the old way: build a circuit, call execute() or backend.run() , and wait for a Result object with raw counts. It worked, but every run felt like negotiating with the machine directly. Since then the Qiskit SDK has moved to a model built around the primitives — first Sampler / Estimator (V1), now SamplerV2 / EstimatorV2 on Qiskit Runtime. This post is the mental model I wish I'd had, with code you can run today. If you've been following old tutorials and finding that qiskit.execute no longer exists, or that IBMQ.save_account is gone, this is the update you need. The days of manually transpiling and submitting a single circuit to backend.run() for every experiment are over. Modern Qiskit wants you to think in terms of what you want to compute , not how to shuffle bits from the QPU. Why the primitives exist The old flow forced you to become an expert in the transport layer: pick a backend, submit a job, poll for sta...