◆ PayGuardGitHub ↗
02 / INTERVIEW GUIDE

Learn the whole system.

Explain the reason for every tool, the path of a request, and what changes when a component fails.

THE 60 SECOND ANSWER

Tell the engineering story.

PayGuard handles provider timeouts after a simulated charge. The API persists an UNKNOWN payment keyed for idempotency. A worker later queries the provider and reconciles it to SUCCESS. I tested the request flow in Java integration tests and on a GitHub runner, then deployed locally with Compose and Minikube and instrumented it with metrics and logs.
TECHNOLOGY → REASON → CODE

Open the implementation.

Java 21 + Spring Boot

Receives requests, applies payment rules, schedules reconciliation.

Inspect source ↗

PostgreSQL + Flyway

Stores payment state and retries across restarts; migrations version the schema.

Inspect source ↗

Idempotency key

Associates retry with the same payment ID; prevents duplicate payment creation.

Inspect source ↗

Fake provider

Reproduces timeout after charge without any external gateway or money.

Inspect source ↗

Kubernetes + Minikube

Probes, restart, scaling, storage, rollout, and rollback.

Inspect source ↗

Prometheus + Grafana

Scrapes measurements and renders dashboards; evaluates SLO rules.

Inspect source ↗

Terraform + Ansible

Declares isolated cluster resources and checks the live result.

Inspect source ↗

GitHub Actions + Jenkins

Hosted tests and live demo; separate self-managed pipeline definition.

Inspect source ↗
PRACTICE QUESTIONS

Questions to answer at interview.

Why is a timeout not a failed payment?

The provider could process the charge before losing the response. UNKNOWN preserves uncertainty until a status check settles it.

What does the idempotency key protect?

A repeated request with the same key maps to the existing payment record and returns the same ID.

What if an application pod dies?

Kubernetes starts a replacement. Payment state remains in PostgreSQL, whose persistent volume survives the application pod restart.

What is the difference between Terraform and Ansible here?

Terraform describes isolated Kubernetes resources. Ansible reads the live cluster and verifies expected operational state.

Can GitHub Pages host the payment API?

No. Pages serves these static explanations; GitHub Actions runs a temporary API for repeatable proof. The local workstation can run the complete stack; GitHub Pages shows dated Grafana and Prometheus captures produced by temporary GitHub runners.