Studies · since March 2025

POCLab

A single repository where I study technology through small, focused proofs of concept. Some topics become progressive series; others are reimplemented in several languages to compare ergonomics.

github.com/felipevisu/POC
230+
proofs of concept
6
languages
17
months without a break
475
commits

Repository folders

  • /frontend
  • /ai
  • /java
  • /go
  • /python
  • /kafka
  • /db
  • /data
  • /infra
  • /architecture
  • /algorithms
one concept
per POC. No monster projects.
reproducible
via Docker Compose whenever infra is involved.
README
explains the decision, not just the command.
measured
EXPLAIN ANALYZE, k6, react-scan — numbers before and after.

Strengths

Frontend in depth

React 19, RSC, SvelteKit, zoneless Angular, Web Components, micro-frontends, performance and CSP.

Polyglot backend

Java/Spring, Go, Python (Django, FastAPI), Node. Language chosen by the problem.

Data and messaging

Kafka, Debezium CDC, Schema Registry, TimescaleDB, pgvector, OpenSearch, PostGIS, Redis in 7 patterns.

AI with engineering

RAG with citations, tool use, NL→SQL agents, cost-based routing, PII privacy at the protocol level.

Observability

Prometheus, Grafana, OpenTelemetry with context propagated through Kafka, k6 for load.

Infra and DevOps

Multi-provider Terraform, EKS, Kubernetes, Helm, Jenkins with RBAC, Docker Compose across 20+ environments.

Featured POCs

Build it yourself, then measure.

/data

  • salesman-kata

    Full pipeline: Debezium CDC + CSV + SOAP → Kafka/MinIO → TimescaleDB, with lineage and ~20 containers.

  • index-postgresql-benchmark

    55 ms → 0.068 ms (~800×) with a B-tree index over 1M rows, query plans in the README.

  • open-telemetry

    One Jaeger trace crossing three Java services and the Kafka broker hops.

/ai

  • rag-v2

    PDF → docling → sentence-transformers → pgvector HNSW → chat with citations, across 6 services.

  • smartrouter

    A cheap classifier routes prompts across 6 models; cumulative cost vs always-Opus.

  • claude-react-chat-interviewer

    PII stays on the client; the model only knows which fields were filled.

/internals

  • feact

    React from scratch: vDOM, function components, useState/useEffect slots.

  • mini-fetch

    HTTP written by hand over a raw TLS socket.

  • simple-bundler

    Bundler that extracts CSS-in-JS via wyw-in-js/Babel.

/infra

  • complete-infra

    Jenkins via Helm with cross-namespace RBAC; same stack on real EKS via Terraform.

/fundamentals