Traditional RAG is a one-shot process: retrieve documents, generate answer, done. Agentic RAG breaks this limitation - agents can evaluate retrieval quality, reformulate queries, and iterate until they find what they need. Combined with human-in-the-loop patterns, you build systems that are both autonomous and controllable.
Connecting LangGraph Agents to APIs and Databases
Agents become truly useful when they can interact with the real world - fetching live data from APIs, querying databases, and writing results back. This post covers building production-grade integrations: API tools with proper error handling, SQL agents that translate natural language to queries, and security patterns that prevent disasters.
LangGraph - State Graphs for Agentic Workflows
LCEL chains are powerful but limited - they can’t loop, branch dynamically, or maintain complex state between steps. LangGraph solves this by modeling agent workflows as state machines: graphs where nodes are processing steps and edges define control flow. This explicit structure enables cycles, conditional routing, and persistent state that production agents require.
Building Agents with LCEL and Tool Integration
The LangChain Expression Language (LCEL) transforms how we build LLM workflows. Instead of managing execution flow manually, LCEL lets you compose components declaratively - like Unix pipes for AI. Combined with tool integration, LCEL enables building agents that reason and act in the real world.
Mastering LangChain and LangGraph - A Practitioner's Guide
If you’ve been building with LLMs, you’ve likely encountered the gap between simple API calls and production-ready agent systems. LangChain and LangGraph bridge that gap, providing the abstractions and patterns needed to build reliable, maintainable AI applications. This series takes you from LangChain fundamentals to production multi-agent systems, focusing on practical implementation over theory.
TIL: Setup MCP Server in Claude Code
Quick guide to add a Model Context Protocol (MCP) server to Claude Code CLI.
Securing Go APIs: OWASP Best Practices
Security isn’t an afterthought - it’s a fundamental requirement for any production API. This post covers the OWASP API Security Top 10 vulnerabilities and practical Go implementations to protect your applications.
Authorization Patterns: RBAC and ABAC in Go
After authentication confirms user identity, authorization determines what they can access. This post covers two powerful authorization models: Role-Based Access Control (RBAC) and Attribute-Based Access Control (ABAC), with practical Go implementations.
JWT Authentication in Go
Authentication verifies who users are, while authorization determines what they can access. This post covers implementing JWT (JSON Web Token) authentication in Go - the most common approach for stateless API authentication.
Scaling Go APIs: Pagination, Caching, and Rate Limiting
As your API grows, handling thousands of records and requests requires thoughtful scaling strategies. This post covers essential techniques for scaling Go APIs: pagination for large datasets, caching for performance, filtering and sorting for flexibility, and rate limiting for protection.