>_ Analyst Engineering

Articles

No-fluff playbooks for technical analysts.

Business AnalystSystems AnalystQA Analyst

Non-Functional Requirements: The Categories, With Measurable Examples

What non-functional requirements are, the categories that matter, and how to write NFRs that are testable: measurable targets instead of adjectives. With examples.

Developer AnalystBusiness AnalystSystems Analyst

Slowly Changing Dimensions: Type 1 vs Type 2, and When History Matters

What slowly changing dimensions are, how SCD Type 1 and Type 2 differ, how a Type 2 table works with valid_from and valid_to, and how to query it correctly.

QA AnalystDeveloper Analyst

Smoke, Sanity, and Regression Testing: What Each One Proves

Smoke testing proves the build is testable, sanity testing proves a fix landed, regression testing proves nothing else broke. How the three differ and when each runs.

Developer AnalystBusiness AnalystQA Analyst

SQL Window Functions for Analysts: Latest Record, Event Timing, Running Totals

What SQL window functions do and the three patterns analysts use daily: ROW_NUMBER for latest record per group, LAG for event timing, SUM OVER for running totals.

QA AnalystBusiness AnalystFunctional Analyst

User Acceptance Testing: What UAT Proves That QA Cannot

What user acceptance testing is, how UAT differs from SIT and QA testing, who writes the scenarios, and the entry and exit criteria that make a UAT cycle real.

Functional AnalystQA AnalystSystems Analyst

ISO 20022 Payment Status Codes: What ACSP, ACCP, and RJCT Really Mean

The ISO 20022 payment transaction statuses explained: RCVD, ACTC, ACCP, ACSP, ACSC, PDNG, RJCT, and more, with the lifecycle order and what each guarantees.

Functional AnalystQA AnalystBusiness Analyst

ISO 20022 Reason Codes: AC01 to RR04, the Rejection Codes That Matter

The ISO 20022 reason codes analysts meet daily: account codes (AC01, AC04, AC06), amount codes (AM04, AM05), agent and regulatory codes, with the action each implies.

Functional AnalystSystems AnalystBusiness Analyst

ISO 20022 Structured Addresses: The November 2026 Deadline, Explained

CBPR+ ends fully unstructured addresses in November 2026. What structured and hybrid addresses are, the elements that matter, and how to migrate without rejections.

Systems AnalystFunctional AnalystQA Analyst

MT to ISO 20022: The Message Mapping Every Payments Analyst Needs

Which ISO 20022 message replaces each SWIFT MT: MT103 to pacs.008, MT202 to pacs.009, MT940 to camt.053, and the traps in the mapping. A reference table.

Functional AnalystSystems AnalystQA Analyst

Payment Returns, Reversals, and Recalls: pacs.004, pacs.007, and camt.056

When money must come back, ISO 20022 gives three distinct mechanisms: returns, reversals, and recalls. Who initiates each, which message carries it, and how to model them.

Systems AnalystDeveloper AnalystQA Analyst

Airflow vs Dagster: Orchestrating Tasks vs Orchestrating Assets

Airflow schedules tasks; Dagster declares the data assets those tasks produce. What the task vs asset split means for lineage, testing, and debugging pipelines.

Business AnalystDeveloper AnalystFunctional Analyst

Business Analyst vs Technical Business Analyst: The Difference Is Verification

A business analyst describes intended behavior; a technical BA verifies it against the running system. What separates the roles and how to cross the gap.

Developer AnalystBusiness AnalystSystems Analyst

Data Engineer vs Analytics Engineer: Who Does What in the Data Team

Data engineers build the pipelines and platforms that move data; analytics engineers model it in the warehouse so it means something. The split, explained.

Systems AnalystBusiness AnalystQA Analyst

Data Lineage: Trace Every Number Back to Its Source

Data lineage maps how each field flows from source through transformations to the report that shows it, enabling impact analysis, trust, and audit. With a diagram.

Systems AnalystBusiness AnalystDeveloper Analyst

What Is a Data Mesh? Domain Ownership of Data, Explained

A data mesh decentralizes data: domains own and publish their data as products, on a self-serve platform, under federated governance. Explained with a diagram.

Developer AnalystQA AnalystSystems Analyst

Reading a dbt DAG: The Map of How Your Data Is Built

A dbt DAG is the dependency graph of your transformations, built from ref() calls. How to read one, the staging to marts convention, and why tests live on nodes.

Developer AnalystSystems AnalystQA Analyst

dbt vs SQLMesh: Two Ways to Build the Same Warehouse

dbt and SQLMesh both turn SQL into tested, versioned transformation pipelines. Where they differ: SQL parsing, environments, incremental state, and lineage.

Developer AnalystQA AnalystSystems Analyst

Developer Analyst vs Backend Developer: Same Tools, Different Accountability

Both write code against the same systems. The backend developer owns the production system; the developer analyst uses code to verify and automate analysis.

Systems AnalystDeveloper AnalystBusiness Analyst

Fivetran vs Airbyte: Managed Connectors vs Open-Source Control

Fivetran and Airbyte both move source data into your warehouse. They differ on openness, hosting, pricing, and who fixes the connector when the API changes.

Functional AnalystBusiness AnalystQA Analyst

Functional Analyst vs Product Owner: Correct Behavior vs Valuable Priority

A functional analyst is accountable for exact system behavior; a product owner for what gets built and in what order. The split, and which seat fits you.

Systems AnalystBusiness AnalystDeveloper Analyst

Kimball vs Inmon: Bottom-Up Marts vs the Top-Down Warehouse

Kimball builds dimensional marts first and integrates through conformed dimensions; Inmon builds a normalized enterprise warehouse first. The classic debate, mapped.

Systems AnalystDeveloper AnalystBusiness Analyst

Lakehouse vs Data Warehouse: Open Tables on a Lake vs the Managed Database

A warehouse is a managed analytical database; a lakehouse adds warehouse guarantees to open files on object storage. The real differences, with a diagram.

Business AnalystDeveloper AnalystSystems Analyst

Looker vs Tableau: Governed Metrics vs Visual Exploration

Looker is a code-defined semantic layer that governs metrics; Tableau is the strongest visual exploration tool. What each optimizes for and when each fits.

Systems AnalystDeveloper AnalystQA Analyst

Medallion Architecture: Bronze, Silver, and Gold, Explained

The medallion architecture organizes a lakehouse into bronze (raw), silver (cleaned), and gold (business-ready) layers. What each layer owns, with a diagram.

Systems AnalystDeveloper AnalystFunctional Analyst

Medallion Architecture vs Data Vault: Layers vs a Modeling Method

Medallion and Data Vault answer different questions: medallion says how many quality layers, Data Vault says how to model history inside them. With diagrams.

QA AnalystDeveloper AnalystFunctional Analyst

QA Analyst vs Test Engineer: What to Test vs How to Test It at Scale

A QA analyst derives what must be tested from requirements and risk; a test engineer builds the automation that runs it at scale. The split and the overlap.

Developer AnalystSystems AnalystBusiness Analyst

Snowflake vs BigQuery: The Warehouse You Size vs the One You Don't

Snowflake and BigQuery are both elastic cloud warehouses. They differ on compute models, pricing units, cloud lock-in, and the knobs your team must operate.

Developer AnalystBusiness AnalystSystems Analyst

Star Schema vs Snowflake Schema: Which Shape Fits Your Warehouse

Star and snowflake schemas differ in one thing: whether dimensions are denormalized. What each looks like, when each fits, and how to read one. With diagrams.

Systems AnalystDeveloper AnalystBusiness Analyst

Systems Analyst vs Solutions Architect: Mapping the System vs Owning the Design

A systems analyst maps how systems connect and behave; a solutions architect decides how they should, and answers for it. The line, the overlap, and the jump.

Business AnalystFunctional AnalystQA AnalystDeveloper AnalystSystems Analyst

The Technical Analyst Skill Matrix: 25 Skills, Five Hats, Three Levels

A self-assessment matrix of 25 skills across the five technical analyst hats, with three levels per skill and where to build each one. Original to this site.

Business AnalystDeveloper AnalystSystems Analyst

Technical BA vs Software Engineer: Code as a Tool vs Code as the Product

Both are technical; the deliverables differ. A technical BA ships verified understanding and specs; an engineer ships production code. Which seat fits you.

Business AnalystQA AnalystFunctional Analyst

Acceptance Criteria for AI Systems: Testing the Non-Deterministic

How to write acceptance criteria for AI and LLM features when outputs are non-deterministic. Use bounds, properties, guardrails, and evaluation sets, not exact matches.

QA AnalystDeveloper AnalystBusiness Analyst

API Testing: How to Test an API End to End

A practitioner guide to API testing: status codes, response schemas, request chaining, authentication, error contracts, and the checks that actually catch defects.

Systems AnalystBusiness AnalystQA Analyst

Batch vs Event-Driven: Why Timing Shapes Everything

Batch and event-driven processing differ in timing, and that difference shapes latency, failure modes, and customer experience. When to use each, with banking examples.

Business AnalystFunctional Analyst

BRD vs FRD: Two Documents, Two Jobs

The difference between a Business Requirements Document and a Functional Requirements Document: what each covers, who reads it, and when you need both. With examples.

Functional AnalystBusiness AnalystQA Analyst

From Business Requirement to Functional Spec: Turning Intent Into Behavior

How to turn a vague business requirement into a precise functional specification: decompose intent, define inputs and outputs, and write testable behavior. With examples.

QA AnalystSystems AnalystDeveloper Analyst

Contract Testing: Catch Breaking Changes Before They Ship

What contract testing is, how it differs from integration testing, and how consumer-driven contracts catch breaking API and event changes before they reach production.

Functional AnalystBusiness AnalystDeveloper Analyst

The Data Dictionary: Every Field, Defined Once

What a data dictionary is, how to build one, and why a single authoritative definition of every field prevents the ambiguity that breaks integrations and reports.

Systems AnalystQA AnalystFunctional Analyst

Dead-Letter Queues: Where Failed Messages Go

What a dead-letter queue is, why event-driven systems need one, and how an analyst specifies DLQ behavior: retries, routing, monitoring, and recovery. With examples.

Functional AnalystBusiness AnalystQA Analyst

Decision Tables: Every Combination, No Gaps

How to use decision tables to specify complex business rules completely: conditions, actions, rule columns, and collapsing combinations. The tool that leaves no case undefined.

Business AnalystSystems AnalystFunctional Analyst

Event-Driven Requirements: Specifying Systems That Talk in Events

How to write requirements for event-driven systems: event schemas, ordering, idempotency, retries, and consistency. A practitioner guide with a Kafka example.

Developer AnalystFunctional AnalystQA Analyst

The First Time I Read an OpenAPI Contract

Field notes on going from intimidated to fluent with OpenAPI: what confused me, what clicked, and how reading the contract myself changed how I work as an analyst.

Functional AnalystBusiness AnalystSystems Analyst

Fit-Gap Analysis: What the System Does vs What the Business Needs

How to run a fit-gap analysis: compare requirements against system capability, classify each as fit, gap, or partial, and turn gaps into decisions. With a payments example.

Functional AnalystBusiness AnalystQA Analyst

The Functional Specification Template That Removes Ambiguity

A practical functional specification template: scope, actors, data, business rules, behavior, error handling, and acceptance criteria. The structure that makes a spec buildable.

Developer AnalystBusiness AnalystQA Analyst

Git for Analysts: Get Into the Codebase

The Git an analyst actually needs: clone, navigate, read a diff, browse history, and find when behavior changed. Read the codebase without breaking anything.

Business AnalystQA AnalystSystems Analyst

How a Technical BA Investigates a Failed Payment

A walkthrough of how a technical business analyst actually investigates a failed payment: the questions, the tools, and following one transaction from the complaint to the cause.

Business AnalystFunctional AnalystQA Analyst

How to Write API Requirements That Developers Can Actually Build

Write API requirements the right way: endpoint, method, request and response schema, status codes, error contracts, and testable acceptance criteria. With examples.

Developer AnalystQA AnalystFunctional Analyst

HTTP Status Codes Explained: What 200, 202, and 409 Really Mean

An analyst's guide to HTTP status codes: the 2xx, 4xx, and 5xx families, what each common code means, and why 202 vs 200 matters in payments. Practical, not exhaustive.

QA AnalystDeveloper AnalystSystems Analyst

Idempotency Testing: Proving Duplicate Requests Are Safe

How to test idempotency in APIs and event consumers: idempotency keys, duplicate requests, redelivered events, and the race conditions that cause double processing.

Systems AnalystDeveloper AnalystBusiness Analyst

Integration Patterns Every Systems Analyst Should Know

The integration patterns that wire systems together: request-response, messaging, publish-subscribe, request-reply, batch file transfer, and webhooks. With payments examples.

Systems AnalystFunctional AnalystBusiness Analyst

ISO 20022 Architecture: The Data Model Behind Modern Payments

What ISO 20022 actually is as an architecture: the business model, message definitions, structured data, and usage guidelines that shape modern payment systems.

Developer AnalystFunctional AnalystQA Analyst

JSON for Analysts: Read the Payload Fluently

How an analyst reads JSON: objects, arrays, nesting, and types. Understand API payloads, event messages, and config without asking a developer. Practical, not theory.

QA AnalystSystems AnalystDeveloper Analyst

How to Test Kafka: Validating Events You Cannot See

A practitioner guide to testing Kafka: consuming events in a test, asserting schema and key, verifying ordering, duplicates, and the consumer side effects that matter.

Business AnalystFunctional Analyst

MoSCoW Prioritization: Must, Should, Could, Won't

How to use MoSCoW prioritization to rank requirements: what each category means, how to apply it without everything becoming a Must, and how it drives scope decisions.

QA AnalystFunctional AnalystBusiness Analyst

Negative Test Design: Engineering the Unhappy Path

How to design negative tests systematically: boundary values, invalid inputs, state violations, and failure injection. The unhappy path is where the real defects live.

QA AnalystFunctional AnalystSystems Analyst

How to Write pacs.008 Test Cases for an ISO 20022 Migration

A field-by-field guide to writing pacs.008 test cases: mandatory fields, structured data, validation, reason codes, and the pacs.002 responses that prove each case.

Systems AnalystFunctional AnalystQA Analyst

Payment Message Flows: pain, pacs, and camt End to End

How payment messages flow end to end in ISO 20022: pain.001 initiation, pacs.008 interbank, pacs.002 and pain.002 status, and camt reporting. A systems analyst map.

QA AnalystBusiness AnalystSystems Analyst

Payment Testing: How to Test a Payment Flow End to End

A practitioner guide to payment testing: following one transaction through ingestion, events, settlement, and status, plus the rejection and stuck-payment cases that matter.

Developer AnalystSystems AnalystQA Analyst

The Production Support Skills Nobody Teaches Analysts

The production support skills that make a technical analyst invaluable: triage, tracing transactions, reading logs, calm under pressure, and turning incidents into requirements.

Developer AnalystFunctional AnalystQA Analyst

Reading an API Contract: OpenAPI Without a Developer

How an analyst reads an API contract: endpoints, methods, request and response schemas, status codes, and OpenAPI structure. Understand any API without asking a developer.

Developer AnalystQA AnalystSystems Analyst

What I Learned Reading Logs During a Major Incident

Field notes from a major payments incident: how reading logs under pressure works, what the trail revealed, and the lessons about observability that became requirements.

Developer AnalystQA AnalystSystems Analyst

Reading Production Logs: Trace One Transaction's Trail

How an analyst reads production logs to understand and debug a system: correlation ids, log levels, searching by transaction, and following one request across services.

Functional AnalystQA AnalystBusiness Analyst

Reason Code Mapping: From Error to Customer Message

How to map payment reason codes to causes and customer messages: ISO 20022 codes like AC04, internal errors, and the mapping that prevents support incidents.

Systems AnalystFunctional AnalystBusiness Analyst

Reconciliation Design: Proving Two Systems Agree

How to design reconciliation between systems: matching keys, break detection, tolerance, timing, and exception handling. The control that proves the money is right.

Developer AnalystQA AnalystFunctional Analyst

Regex for Analysts: Find the Pattern in the Data

The regular expressions an analyst actually needs: matching patterns in logs, validating formats like IBAN and BIC, and searching data. Practical regex, not theory.

QA AnalystDeveloper AnalystSystems Analyst

Regression Testing in Payments: Protecting What Already Works

How to do regression testing in payment systems: what to retest, building a regression suite, risk-based selection, and automating the checks that protect live behavior.

Business AnalystQA AnalystFunctional Analyst

The Requirements Traceability Matrix: From Requirement to Test, Proven

What a requirements traceability matrix is, how to build one, and why it proves every requirement is designed, built, and tested. With a payments example.

Developer AnalystQA AnalystSystems Analyst

Scripting Checks in Python: Automate What You Repeat

How an analyst uses Python to automate repetitive checks: calling APIs, comparing files, querying data, and chaining requests. Small scripts, large leverage.

Business AnalystSystems AnalystFunctional Analyst

Sequence Diagrams for Business Analysts: Draw the Flow, Find the Gaps

How business analysts use sequence diagrams to map a flow across services, expose integration gaps, and write better requirements. With a payments example.

Developer AnalystQA AnalystBusiness Analyst

SQL for Analysts: Query the State, Find the Truth

The SQL a technical analyst actually needs: SELECT, WHERE, JOIN, GROUP BY, and reading state during analysis and testing. Not for reports, for finding the truth.

Functional AnalystSystems AnalystQA Analyst

State Machines for Payments: Every Status, Every Transition

How to model a payment as a state machine: define the states, the allowed transitions, the triggers, and the illegal moves. The tool that makes status behavior precise.

Systems AnalystDeveloper AnalystFunctional Analyst

Synchronous vs Asynchronous: The Choice That Defines a System

Synchronous and asynchronous communication differ in whether the caller waits, and that choice shapes coupling, latency, resilience, and the customer experience.

Systems AnalystBusiness AnalystFunctional Analyst

System Context Diagrams: Draw the Boundary Before the Internals

What a system context diagram is, how to draw one, and why starting at the boundary stops you scoping the wrong thing. With a payments example and the C4 model.

Business AnalystFunctional AnalystQA Analyst

User Story vs Specification: When a Story Is Not Enough

User stories capture intent; specifications capture exact behavior. Here is the real difference, when each fits, and why complex systems need both. With examples.

Developer AnalystQA AnalystSystems Analyst

What Is a Developer Analyst? The Analyst Who Ships Code

A developer analyst reads and writes enough code to verify, automate, and prototype, without becoming a full-time engineer. Here is what the role does in payments.

Functional AnalystBusiness AnalystQA Analyst

What Is a Functional Analyst? The Bridge Between Business and Build

A functional analyst turns business intent into precise, testable system behavior. Here is what the role does in banking and payments, and how it differs from a BA.

QA AnalystFunctional AnalystDeveloper Analyst

What Is a QA Analyst? Quality Engineering for Real Systems

A QA analyst proves a system behaves correctly by testing it end to end, not by reading the spec. Here is what the role does in banking and payments.

Systems AnalystFunctional AnalystDeveloper Analyst

What Is a Systems Analyst? Designing How Systems Talk to Each Other

A systems analyst maps how services, messages, and data flow across a system so the pieces work as a whole. Here is what the role does in banking and payments.

Business AnalystFunctional AnalystSystems Analyst

What Is a Technical Business Analyst? The Five-Hat Discipline, Explained

A technical business analyst analyzes, codes, tests, and supports. Here is what the role actually does day to day in banking and payments, and how to become one.

QA AnalystFunctional AnalystBusiness Analyst

Why Acceptance Criteria Failed on an AI Project

Field notes on an AI project where the acceptance criteria did not work: why exact-match criteria break on non-deterministic output, and what we replaced them with.

Business AnalystSystems AnalystFunctional Analyst

PAIN vs pacs in ISO 20022: The Difference Every Payments Analyst Should Know

PAIN vs pacs explained: why pain.001 is not pacs.008, how pain.002 and pacs.002 mirror it, where camt fits, and how ISO 20022 splits customer and bank.

QA AnalystBusiness AnalystSystems AnalystDeveloper Analyst

You Don't Understand the System Until You Test It

Why testing a payment flow end to end teaches you the system and the UX better than any diagram: microservices, Kafka, the database, logs, and pain.002.