Building robust, scalable applications on the JVM. Here I share technical insights into software architecture and the integration of AI into modern systems.
Konstantin Pavlov
Software Engineer
Featured

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 …
Secure Java logging with Logback
Deploying application into secure environment adds some restrictions on logging and log management. OWASP community gives some useful recommendations.
Recent

Tachyon MCP 1.0 is here!
The reasons behind Tachyon MCP 1.0 and its design: a standalone Netty server, ordinary Java handlers, a Kotlin DSL, support for two MCP versions, and tasks …

Tachyon MCP: A Spec-Forward Java Runtime for the MCP Ecosystem
Tachyon is a standalone Java MCP server built on Netty — no framework required, with first-class protocol extensions, virtual-thread handlers, and a stateless …

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 …