Java 25: Run Programs Without public static void main
3 min read
Java 25 lets a program start from a plain void main() in a compact source file. What changed in JEP 512, how it works, and the gotchas, tested on JDK 25.
3 min read
Java 25 lets a program start from a plain void main() in a compact source file. What changed in JEP 512, how it works, and the gotchas, tested on JDK 25.
10 min read
A clear playbook for moving from a service company to a product company when you have 90 days notice: when to resign, buyout or early release, and the exit kit.
10 min read
What an AI evaluation engineer does, the Ragas, DeepEval, TruLens and LangSmith stack, an LLM-as-a-judge CI pipeline you can copy, and two portfolio projects.
11 min read
RAG, agent memory or just a bigger context window? Cost per query at October 2026 prices, a runnable cost model, and when plain docs beat all three.
13 min read
Why Claude Code returns 400 errors through a custom ANTHROPIC_BASE_URL or LiteLLM, what it actually sends, and three fixes that hold up across releases.
24 min read
Hard LLM API budget caps that stop spend before the call: reserve-then-settle in Redis, per-tenant quotas, a spend circuit breaker and a kill switch.
3 min read
A practical Spring Boot REST API walkthrough: request validation, consistent error responses, a PostgreSQL schema, and health checks for deployment.
4 min read
How Kafka consumer groups split partitions between consumers, what triggers a rebalance, and how offset commits decide your delivery guarantees.