Programming

Integration Testing on the JVM: My Ideal Process, End to End
Master robust integration testing for JVM web services. Learn how to simulate databases, Kafka, and LLMs with Testcontainers and Mokksy for fast, parallel …

Higher-Order Attacks on AI Code Agents
Direct prompt injection is just the beginning. Higher-order attacks manipulate agents into producing malicious code, propagating intent across systems, and …

When Your AI Code Agent Becomes an RCE Engine
If your AI code agent treats repository content as instructions, any contributor can execute commands. This article maps the direct injection attack surface and …

Javable: generate Java-friendly wrappers for Kotlin with KSP
Javable is a KSP2 processor that generates Java-friendly wrappers for Kotlin classes, turning suspend functions into CompletableFuture, Flow into Stream, and …

kotlinx-schema: Three Ways to Generate JSON Schemas from Kotlin Code
Every time you rename a Kotlin function parameter, the hand-written JSON schema your LLM reads is wrong — and it fails silently. kotlinx-schema derives the …

Large files in Kotlin: causes, trade-offs, and practical remedies
Kotlin encourages grouping related code in a single file, which is useful — until files grow past 1,000 lines. This article explores why that happens, how it …

Mokksy: a mock server that actually streams — and why your AI app needs integration tests
Why unit tests alone won’t save your LLM application in production, and how Mokksy — a Kotlin mock server with true SSE and streaming support — fills the …
Introducing Kotlinx-schema: generate JSON Schema from Kotlin types and functions
Generate JSON Schema for Kotlin Multiplatform models and API functions, so your schema stays in sync with your code.

The cookie story: when build failures became sweet accountability
A deceptively simple rule transforms a chaotic development team: break the build, buy cookies. What starts as lighthearted motivation evolves into a …

Contract-first vs. code-first development: why API contracts matter from day one
Discover why starting with API contracts first—not code—leads to clearer, more maintainable microservices. Learn the differences between contract-first and …