16 articles with this tag
Certifying a Terminal: L1, L2, L3 and the Brand Test Tools
Shipping a payment terminal means passing three distinct certifications that most engineers conflate. A map of EMVCo Level 1 (hardware), Level 2 (kernel), and the brand-run Level 3 (end-to-end), what each actually tests, the order they happen in, and why the Brand Test Tools are where projects quietly lose months.
The ABECS Pinpad Protocol: Brazil's POS Command Language
Every card payment in Brazil passes through a pinpad speaking the ABECS protocol — a command/response state machine with its own open, get-card, go-on-chip, get-PIN, and close commands. A structural guide to how the automation talks to the secure device, why the Input/Output split exists, and where the EMV flow you know lives inside it.
The CVM List (8E): How a Card Chooses PIN vs Signature vs Nothing
The Cardholder Verification Method List is the card's ranked ballot of how it is willing to prove you are you — offline PIN, online PIN, signature, on-device biometric, or nothing at all — each gated by a condition. A byte-by-byte decode of tag 8E, the amount thresholds X and Y, and the 'try the next rule' bit that trips people up.
Track 2 and the Service Code: What the Magstripe Still Tells the Chip
Track 2 Equivalent Data (tag 57) is the magnetic stripe living inside the chip — PAN, expiry, service code, and discretionary data in one compact field. A field-by-field decode, the three-digit service code that quietly routes and restricts every transaction, and why Luhn is the cheapest validation you are probably skipping.
Contactless in 300ms: Kernels, the TTQ, and the Tap
A tap has a latency budget a chip dip never had, and EMV contactless spends it differently: a PPSE combination-selection step, six scheme kernels (and the new unified C-8), and the Terminal Transaction Qualifiers (tag 9F66) that tell the card how this reader wants to be paid. A byte-by-byte guide to the fast path.
The TVR, the TSI, and How a Terminal Decides to Decline You
The Terminal Verification Results (tag 95) and Transaction Status Information (tag 9B) are the two bit fields that decide whether your card is approved offline, sent online, or declined. A byte-by-byte decode plus the exact AND logic — IAC and TAC against the TVR — that produces the verdict.
Reading BER-TLV by Hand — and Why You Shouldn't
BER-TLV is the grammar of EMV. This is a meticulous, byte-by-byte guide to decoding a real chip-card response — tag classes, the 0x1F continuation rule, short vs long length, nested templates — and an honest argument for handing it to a deterministic decoder in production.
What Actually Happens When You Dip a Chip: The EMV Transaction Flow End-to-End
A Staff+ walkthrough of a single contact EMV transaction — SELECT, GPO, READ RECORD, offline data authentication, cardholder verification, risk management, and the cryptogram — with the real APDUs and the tags that carry the state.
Agentic Postgres: Why Agents Need Fast Forking Databases
Why traditional databases are dead for AI Agents. Understanding 'Fast Forking', Copy-on-Write (CoW), and why your database needs to be as ephemeral as a...
Git hardcore: hooks, submodules, monorepos and surviving huge codebases
Advanced Git techniques for large codebases: hooks, submodules, monorepos, performance and disaster plans.
Modern Android Development Philosophy: Beyond the Code
An epilogue that transcends the technical. Understand the philosophical principles that underpin modern Android architecture: declarative vs imperative,...
Capstone Project: Architecting a Real App from Scratch
Practical blueprint for building a complete Android app from scratch: GitHub Repository Finder. Integrates idiomatic Kotlin, Android engine, MVVM,...
Modern Architecture (MVVM): Building Robust and Testable Android Apps
Understand the MVVM pattern and how ViewModel, LiveData/StateFlow, and Repository pattern solve the fundamental problems of Android's lifecycle. Practical...
HTMX: The Future of the Web or Nostalgic Regression?
A technical analysis of HTMX, the library that proposes simplifying the modern web by trading JavaScript complexity for HTML attributes. Is it evolution...
Mastering Git Submodules: A Definitive Guide to Complex Repository Architecture
A complete guide that dissects the anatomy, workflow, and strategies behind using Git submodules, transforming a complex tool into a powerful ally for...
Distributed Philosophy: How Git Revolutionized Development
Git wasn't just a technical improvement - it was a philosophical revolution. By making each clone a complete repository, it eliminated single points of...
Receive new articles
Subscribe to receive notifications about new articles directly to your email
We won't send spam. You can unsubscribe at any time.