// referensi kode harian
Snippet
73 snippet · 8 bahasa
-
2026-07-20 · Rust · Lanjut
Rust tracing + OpenTelemetry export
Setup tracing-subscriber dengan OpenTelemetry export ke OTLP collector. Span otomatis, structured log, distributed trace di Rust.
-
2026-07-19 · Java · Menengah
Spring @Async config dengan ThreadPoolTaskExecutor
Setup @Async di Spring Boot — bounded thread pool, queue capacity, exception handler. Bukan asal-asalan pakai default.
-
2026-07-18 · Bash · Menengah
On-call incident response checklist (script)
Script checklist on-call — auto-gather log, metric, stack trace saat insiden. Forensic data sebelum pod di-restart paksa.
-
2026-07-17 · Go · Lanjut
Go Kafka consumer group dengan rebalance
Consumer group Kafka di Go pakai franz-go — handle rebalance, graceful shutdown, manual commit pattern. Production-ready event consumer.
-
2026-07-16 · SQL · Lanjut
Postgres replication slot lag query
Query untuk monitor replication slot Postgres — detect stale slot yang bikin WAL menumpuk dan disk meledak.
-
2026-07-15 · SQL · Lanjut
Postgres index bloat detection + REINDEX
Deteksi index bloat di Postgres dan REINDEX CONCURRENTLY tanpa downtime. Performance regression diam-diam yang sering kelewat.
-
2026-07-14 · Bash · Menengah
Kubernetes debug pod cheat-sheet
Toolkit kubectl untuk debug pod yang ngambek — kubectl debug, ephemeral container, exec, dan ad-hoc port forward.
-
2026-07-13 · Bash · Lanjut
Postgres replication lag monitoring script
Monitor replication lag Postgres dari script bash — alert kalau replica > 30 detik di belakang. Wajib untuk read-replica setup.
-
2026-07-12 · Rust · Menengah
SQLx connection pool tuning Postgres
Tune sqlx::PgPool untuk production — max connections, lifetime, statement cache. Avoid common pitfalls yang bikin pool stuck.
-
2026-07-11 · Rust · Lanjut
Axum + Tower middleware pattern
Custom middleware di Axum pakai Tower Service trait — request ID, auth, rate limit. Type-safe, composable, zero overhead.
-
2026-07-10 · Rust · Menengah
Tokio graceful shutdown dengan signal handling
Graceful shutdown Rust Tokio: tangkap SIGTERM, broadcast cancel ke semua task, tunggu drain. Pattern wajib untuk production service.
-
2026-07-09 · Java · Lanjut
Spring + Resilience4j circuit breaker
Circuit breaker Resilience4j melindungi service dari cascading failure — kalau downstream lambat, fail fast bukan thread pool habis.
-
2026-07-08 · Java · Menengah
HikariCP pool tuning untuk Postgres
Tune HikariCP pool size, timeout, dan leak detection untuk Postgres production. Formula sizing yang sering kelewat.
-
2026-07-07 · Java · Lanjut
Spring OAuth2 Resource Server JWT setup
Setup Spring Boot sebagai OAuth2 Resource Server — verifikasi JWT dari Keycloak / Auth0 / IDP internal, role-based access control.
-
2026-07-06 · Java · Menengah
JPA keyset pagination untuk large table
Keyset pagination dengan JPA / Hibernate — konstan latency di tabel 100 juta row. Stop pakai OFFSET di production.
-
2026-07-05 · Java · Lanjut
Spring Boot virtual thread configuration
Aktifkan virtual thread di Spring Boot 3.2+ — handle 10rb concurrent request tanpa thread pool exhaustion. JDK 21 Project Loom.
-
2026-07-04 · Python · Menengah
Celery priority queue dengan Redis backend
Celery worker dengan priority queue — urgent task (notification user) jalan duluan dari batch email. Pakai Redis broker dengan queue per priority.
-
2026-07-03 · SQL · Lanjut
Postgres Row Level Security (RLS) pattern
RLS Postgres untuk multi-tenant — setiap user cuma bisa akses row mereka sendiri di DB. Defense-in-depth meskipun app code bug.
-
2026-07-02 · Bash · Pemula
Cron job monitor + healthcheck.io ping
Wrapper script untuk cron — ping healthchecks.io saat mulai, sukses, atau fail. Dapat alert kalau backup harian gagal.
-
2026-07-01 · TypeScript · Menengah
CSRF double-submit cookie pattern
Proteksi CSRF tanpa server state — token di cookie + header, server verify match. Cocok untuk JWT-based session di SPA.
-
2026-06-30 · Go · Lanjut
Go HTTP server dengan OpenTelemetry tracing
Trace HTTP server Go dengan OpenTelemetry — auto-instrument net/http + manual span untuk DB call, external API. Export ke Tempo / Jaeger.
-
2026-06-29 · Python · Menengah
Custom Prometheus counter + histogram di Python
Instrument FastAPI / Flask dengan Prometheus counter + histogram. Track business metric (order, payment) bukan cuma RED metric.
-
2026-06-28 · Bash · Menengah
Promtail + Loki log shipping setup
Setup Promtail ship log dari Docker / systemd ke Grafana Loki. Label discipline yang jangan kelebihan cardinality.
-
2026-06-27 · TypeScript · Menengah
Pino structured log + OpenTelemetry correlation
Log Pino dengan trace_id dari OpenTelemetry. Correlate log + trace di Grafana / Loki / Tempo. Wajib untuk distributed system.
-
2026-06-26 · TypeScript · Menengah
Fastify plugin pattern dengan TypeScript generics
Bikin Fastify plugin yang fully type-safe — decorator, hooks, request properties terdeteksi TS dari plugin lain. Pattern decorate + augment.
-
2026-06-25 · SQL · Lanjut
Postgres recursive CTE untuk tree traversal
Recursive CTE untuk traverse tree — kategori produk multi-level, org chart, file system. Walk dari root ke leaf atau sebaliknya.
-
2026-06-24 · SQL · Menengah
Postgres EXPLAIN ANALYZE tuning step-by-step
Baca EXPLAIN ANALYZE Postgres dan turunkan query dari 8 detik ke 30ms. Pattern indeks composite + filter selectivity yang sering kelewat.
-
2026-06-23 · Go · Menengah
Go pgx batch insert performance
Batch insert pakai pgx CopyFrom — 100x lebih cepat dari INSERT loop. Cocok untuk ETL data Tokopedia / import CSV besar.
-
2026-06-22 · Go · Menengah
Go Fiber graceful shutdown dengan context
Graceful shutdown Fiber: tunggu request inflight selesai, close DB pool, drain message queue. Tanpa interrupt user di tengah transaksi.
-
2026-06-21 · Python · Lanjut
Distributed lock pattern Redis (Redlock)
Distributed lock dengan Redis — pastikan job hanya jalan di satu worker sekaligus. SET NX EX pattern + token validation untuk safety.
-
2026-06-20 · Python · Menengah
FastAPI rate limit dengan Redis token bucket
Rate limit FastAPI pakai Redis token bucket — atomic, distributed-friendly, support burst. Lebih akurat dari sliding counter.
-
2026-06-19 · Bash · Lanjut
Zero-downtime blue/green deploy via nginx
Deploy aplikasi tanpa downtime pakai nginx upstream switch. Blue serve traffic, green deploy + warmup, lalu swap. Rollback dalam 5 detik.
-
2026-06-18 · Bash · Menengah
Postgres incremental backup dengan pg_dump + WAL
Strategi backup Postgres: pg_dump nightly + WAL archive untuk point-in-time recovery. RPO menit, bukan jam.
-
2026-06-17 · Python · Menengah
Anthropic Batch API: 50% diskon untuk async
Batch API Anthropic kasih diskon 50% buat job yang gak butuh real-time. Cocok untuk content moderation harian, summarization bulk, classification.
-
2026-06-16 · TypeScript · Menengah
Drizzle ORM pagination dengan cursor
Cursor-based pagination dengan Drizzle ORM — konsisten saat data berubah, scalable, dan tidak lambat seperti OFFSET di tabel besar.
-
2026-06-15 · TypeScript · Pemula
Cloudflare Workers AI text inference
Run Llama / Mistral di Cloudflare Workers AI dari edge. Murah, latency rendah, pay-per-request. Cocok buat fitur AI ringan.
-
2026-06-14 · TypeScript · Menengah
Edge runtime fetch dengan cache header
Tune cache header di edge runtime (Vercel, Cloudflare Workers) — s-maxage, stale-while-revalidate, dan tag-based purge. Latency 30ms global.
-
2026-06-13 · TypeScript · Pemula
Tailwind v4 arbitrary + container query
Arbitrary value Tailwind v4 + container query (@container) untuk responsive component yang depend size parent, bukan viewport.
-
2026-06-12 · TypeScript · Menengah
shadcn Form pattern dengan zod resolver
shadcn/ui Form + react-hook-form + zod resolver. Boilerplate sekali tulis, dipakai 50 form. Accessible, type-safe, dan UI konsisten.
-
2026-06-11 · TypeScript · Lanjut
RSC streaming dengan Suspense boundary
Pakai React Server Component + Suspense boundary supaya bagian page yang cepet langsung tampil, sisanya stream belakangan. TTFB drop drastis.
-
2026-06-10 · TypeScript · Menengah
React Query optimistic update pattern
Optimistic update di React Query — UI langsung berubah saat mutate, rollback otomatis kalau request fail. Feel instant kayak native app.
-
2026-06-09 · TypeScript · Pemula
Zod + Next server action form validation
Validasi form di server action Next.js dengan zod. Type-safe, error message ramah, dan tidak butuh useState ratusan baris.
-
2026-06-08 · TypeScript · Lanjut
Passkey WebAuthn register & login
Passkey (WebAuthn) end-to-end: registration challenge, attestation verification, login dengan Face ID / Touch ID. Tanpa password sama sekali.
-
2026-06-07 · TypeScript · Menengah
JWT refresh token rotate secure pattern
Refresh token rotation: setiap refresh kasih token baru, invalidate yang lama. Mitigasi token theft di SPA dan mobile app.
-
2026-06-06 · TypeScript · Pemula
Supabase magic link auth flow lengkap
Login passwordless dengan Supabase magic link — kirim email, verify token, set session. Cocok buat MVP yang gak mau ribet password reset.
-
2026-06-05 · Python · Lanjut
RAG sederhana: Claude + pgvector + chunks
Pipeline RAG end-to-end: chunk dokumen kebijakan BPJS, embed, retrieve top-K, generate jawaban Claude. Tanpa LangChain.
-
2026-06-04 · Bash · Pemula
Tail multiple log files dengan prefix per file
Jalan satu terminal, tail beberapa log file sekaligus, output di-prefix dengan nama file supaya jelas yang mana darimana.
-
2026-06-04 · Python · Menengah
Store embedding ke pgvector Postgres
Simpan embedding produk Tokopedia ke Postgres pgvector + query similar dengan cosine distance. Tanpa vector DB komersial.
-
2026-06-03 · Bash · Menengah
Find duplicate files berdasarkan content hash
Cari file yang isinya identical (bukan cuma nama yang sama) di sebuah directory. Pakai SHA-256 hash. Hasil: list duplikat dengan path.
-
2026-06-03 · TypeScript · Lanjut
Tool use pattern dengan Claude SDK
Bikin Claude bisa panggil function kamu — search produk Tokopedia, cek saldo BCA, query database. Pattern tool-call loop yang clean.
-
2026-06-02 · JavaScript · Menengah
Async retry dengan exponential backoff (vanilla JS)
Wrap async function dengan retry logic. Exponential backoff. Configurable max attempts, base delay, jitter. Zero dependencies.
-
2026-06-02 · TypeScript · Menengah
Pakai prompt cache di Anthropic SDK
Prompt caching Anthropic bisa potong biaya 90% dan latency 80% kalau context-nya stabil. Wajib dipakai buat chatbot dengan system prompt panjang.
-
2026-06-01 · JavaScript · Menengah
Throttle function (companion ke debounce)
Throttle execute max 1x per interval. Berbeda dengan debounce yang tunggu pause. Pakai untuk scroll, mousemove, resize.
-
2026-06-01 · TypeScript · Pemula
Streaming chat dari Claude API
Streaming response Claude API biar UX-nya kayak ChatGPT — token muncul satu per satu, bukan nunggu full response selesai.
-
2026-05-30 · TypeScript · Menengah
Discriminated union untuk API response (TypeScript)
Pattern Result<Success, Error> dengan discriminated union. Compile-time exhaustiveness check. Lebih aman daripada try/catch atau {data, error} pattern.
-
2026-05-28 · Python · Pemula
Parse string rupiah ke integer di Python
Konversi 'Rp 1.500.000,00' atau 'Rp1.5jt' menjadi integer 1500000. Handle pemisah ribuan titik, koma desimal, dan singkatan jt/rb.
-
2026-05-28 · TypeScript · Lanjut
Branded types untuk ID safety di TypeScript
Hindari bug 'kirim userId ke function yang expect orderId'. Pakai branded types — TypeScript akan complain kalau Anda salah pass.
-
2026-05-27 · JavaScript · Pemula
Normalisasi nomor HP Indonesia (+62 vs 08)
Konversi 0812-xxx, +6281xxx, 6281xxx, 81xxx menjadi format konsisten +6281xxx. Reject yang bukan nomor HP Indonesia.
-
2026-05-26 · Bash · Menengah
Batch rename foto berdasarkan EXIF date
Rename ratusan foto dari smartphone (IMG_xxxx.jpg, PXL_xxxx.jpg) menjadi format konsisten 2026-05-28-103045.jpg berdasarkan metadata EXIF.
-
2026-05-26 · Python · Pemula
Tee output ke file + stdout simultan (Python)
Print ke terminal sekaligus log ke file. Tidak perlu redirect manual. Wrap stdout dengan custom class. 10 lines.
-
2026-05-25 · SQL · Menengah
Top 3 produk terlaris per kategori (PostgreSQL window)
Ambil 3 produk dengan revenue tertinggi per kategori, tanpa subquery berlapis. Pakai ROW_NUMBER() OVER PARTITION BY.
-
2026-05-24 · Bash · Menengah
Backup folder dengan timestamp + retention 7 hari
Snapshot folder ke tar.gz dengan nama timestamp, lalu hapus backup lebih dari 7 hari. Cocok untuk cron daily.
-
2026-05-24 · Python · Menengah
Parallel HTTP request dengan asyncio + httpx + Semaphore
Hit 100 URL paralel dengan rate limit. Async semaphore untuk control concurrency. Lebih cepat 10x dari sequential, lebih sopan dari unbounded parallel.
-
2026-05-23 · TypeScript · Lanjut
Typed env var loader pakai Zod
Validasi semua environment variables saat startup. Error jelas kalau ada yang missing. Bonus: types di-infer otomatis.
-
2026-05-22 · Python · Menengah
Scrape harga produk + parse rupiah dengan httpx
Async scraping daftar URL produk, extract harga dengan selector CSS, lalu parse ke integer rupiah. Rate-limited supaya tidak diblokir.
-
2026-05-22 · SQL · Lanjut
Gap and Island detection di SQL (consecutive sequences)
Cari runtutan konsekutif dalam data — streak hari user aktif, range tanggal kerja tanpa libur, periode tanpa gangguan. Pattern: gap-and-island.
-
2026-05-21 · Go · Pemula
HTTP healthcheck server minimal di Go
Server Go 30 baris yang expose /health dan /ready endpoint. Cocok untuk Kubernetes liveness probe atau Cloudflare Tunnel.
-
2026-05-20 · JavaScript · Menengah
Debounce function dengan cancel & immediate option
Implementasi debounce vanilla JS dengan opsi cancel pending call dan trigger immediate sebelum delay habis. Tanpa lodash.
-
2026-05-20 · SQL · Menengah
Upsert dengan ON CONFLICT (PostgreSQL pattern)
Insert atau update dalam satu statement. Idempotent. Race-condition safe. Lebih cepat dari SELECT-then-UPDATE pattern.
-
2026-05-19 · Bash · Pemula
Cleanup node_modules + .next dari semua project
Hapus folder node_modules dan build artifact dari semua project di /Documents. Hemat 30-100 GB disk dalam satu menit.
-
2026-05-18 · Go · Menengah
context.WithDeadline untuk timeout di Go
Pattern untuk batasi waktu eksekusi function di Go. Cancel propagate ke nested goroutine, DB query, HTTP call. Idiom yang harus dihafal.
-
2026-05-18 · SQL · Lanjut
Deduplikasi baris duplikat di PostgreSQL pakai CTID
Hapus baris duplikat berdasarkan kombinasi kolom, retain satu (paling baru). Pakai CTID Postgres-native, tanpa temp table.
-
2026-05-15 · Go · Menengah
Structured logging dengan slog (Go 1.21+)
Standard library `log/slog` untuk structured logging. JSON output, level, context-aware. Replace logrus/zerolog untuk kebanyakan use case.