PRABHAT KASHYAP’S ENGINEERING NOTES
Engineering deep dives.
Browse by topic.
Series and guides
- Best Practices
- GenAI
- General
- Java
- QuickFix/J
- Rust
- Scala
- Talk
- Uncategorized
- Back
- Claude Code
- Back
- Rust Series
- Back
- Spring Boot

What type classes are, why they help, and how given, using, and context bounds work. Then apply the pattern to...

Understand how pretraining, supervised fine-tuning, and preference optimization shape an LLM, where RLHF fits, and why alignment is more than...

Avoid the PostgreSQL-to-Kafka dual-write gap with a transactional outbox. A practical walkthrough of Debezium CDC, idempotent consumers, ordering, and recovery.

A practical introduction to functional programming and Cats in Scala: pure functions, type classes, and validation with Either and ValidatedNel.

Understand context-window limits, token budgets, prompt placement, and lost-in-the-middle. Learn how to select evidence and build reliable conversational state.

Choose Kafka or RabbitMQ by retention, replay, routing, ordering, retries, and delivery semantics. Includes Share Groups, Streams, and failure diagrams.
Open source
Tools I build.
Code you can use.
Practical tools and libraries, with the source open to explore.
Explore open source →Featured project
Mockery
A mock REST server with YAML configuration, request matching, and a built-in browser editor. Run it from a single downloaded binary.
Explore Mockery →
Prabhat Kashyap
Senior Technical ArchitectI build and explain backend systems, from Scala and JVM internals to distributed systems and practical AI engineering.
Read my bio →Get new articles
Practical engineering notes, published when there is something worth reading.