Hello, I’m Sachin Kottarathodi, and this is my personal page.

I am a technology professional specializing in building scalable distributed systems. I am deeply interested in distributed architectures, data-intensive systems, databases, clean code practices, and design patterns — with a strong emphasis on applying these principles pragmatically to solve real-world problems. I have a proven track record of delivering impactful business solutions, with a focus on designing maintainable and high-performance systems. My experience working with engineers across varied backgrounds has strengthened my ability to mentor, collaborate, and drive technical excellence within teams.

Beyond architecture and system design, I enjoy hands-on coding and debugging, staying close to code and systems to strengthen both technical depth and decision-making. While I thrive under pressure and responsibility, I am equally committed to maintaining a balanced approach to work and life, ensuring sustainable high performance over the long term.

For a more comprehensive list of my experience and skills, see the Resume tab.

Beyond Work

I enjoy reading across a wide range of topics — from fiction and psychology to investment strategies. Reading helps me relax and often feels like stepping into another world, offering both a break from routine and new ways to look at things. I also enjoy writing, though I often find it easier to start than to finish. You might come across a few unfinished posts on my blog, but I find that sharing ideas — even incomplete ones — keeps them alive and makes it easier for me to revisit and finish them later. Over time, I’ve also developed a strong interest in investments and financial thinking. The Books section highlights some of the titles that have shaped my views. I appreciate value in simplicity — long walks, quiet time, and keeping life uncluttered, both in work and outside of it.

Feel free to explore the content here, and if you’d like to connect, find my links under the Contact tab.

♦ ♦ ♦

Insights & Learning

Core Components of a Production-Grade GenAI Stack

GenAI Stack Components Layer Vertex Component(s) Represents Takeaway Discover Model Garden Multi-modal model sourcing Support for various modalities (Text, Vision, etc.) is essential Prototype Notebooks, Studio, Colab Safe and collaborative R&D Allow fast iteration and experimentation before committing to scale Customize Training, Feature Store, Experiments Fine-tuning, embedding, model tuning Domain-specific model improvements need feature/embedding pipelines Orchestrate Vertex Pipelines Workflow automation Seamless orchestration of LLM workflows, agents, or data pipelines Augment & Chain Grounding, RAG, Extensions, Agent Builder Retrieval-augmented generation stack Ground responses with verifiable data and enable external tool usage Experiment TensorBoard, Experiments Model evaluation & diagnostics Measure model behavior with reproducible experiments and visual tools Predict & Serve Endpoints, Vector Search Scalable deployment and retrieval Enable low-latency LLM and embedding-backed services for production use Govern Model Registry, Dataplex Compliance and observability Ensure traceability, auditability, versioning, and access control Read more...

Agents Companion: Architecture, Ops, and Evaluation

Agent Companion An Agent is an application designed to achieve specific objectives by perceiving its environment and acting strategically using available tools. The core principle of an agent is its integration of reasoning, logic, and external information access—allowing it to make decisions beyond the base model’s capabilities. These agents operate autonomously, pursuing goals proactively and determining subsequent actions without step-by-step instructions. 🔧 AgentOps & GenAIOps Continuum AgentOps concerns the operationalization of agents. Read more...

Use It or Lose It Notes

Because I mostly don’t use it, and then end up losing it. This is my living blog of quick, forgotten patterns. Not profound, just practical. Table of Contents Spark Java Spark 1. Create a SparkSession (Boilerplate I always forget) SparkSession spark = SparkSession.builder() .appName("UILI") .master("local[*]") .getOrCreate(); 2. Create a Dataset from Strings (not from files) Dataset<String> ds = spark.createDataset( Arrays.asList("Abc", "xyz"), Encoders.STRING() ); 3. SparkConf and RDD creation options SparkConf conf = new SparkConf(). Read more...

System Design - Distributed Log Ingestion

🧠 System Design Interview Summary: Log Ingestion & Query System Interviewer: Vega Topic: Design a system for log ingestion, storage, and querying across multi-tenant agents ✅ High-Level Architecture Agents send logs (JSON) via HTTP to a rate-limited ingress service Ingress service writes logs to Kafka (HA cluster) Two main Kafka consumers: Object Store Consumer: Stores raw logs in GCS/S3 Indexing Consumer: Pushes structured logs to Elasticsearch Elasticsearch Cluster (with snapshots) holds searchable logs Query Layer exposes APIs (or Kibana) to end users Metadata DB stores user info, tenant configs, RBAC rules Telemetry pipeline for usage and system health insights 💡 Key Design Decisions 🔹 Data Format JSON for ingestion (readable, schema-tolerant) Protobuf or compressed archives for long-term storage 🔹 Schema Evolution Agent schemas versioned per tenant Schema registry to ensure backward compatibility Only expected fields are accepted/processed 🔹 Indexing & Querying Indexed fields include timestamp, log level, service name, etc. Read more...

Process Never Betrays

The goal is the polestar — a guiding light. But it doesn’t get you anywhere on its own. You could stare at it. Dream of it. And yet, remain rooted in place. The decision is your first step. To move. To shake yourself off. To take action. The dopamine hit of the goal might push you into the first stride — maybe even the second. But then comes the wall. Read more...

GenAI Agents

What is a Generative AI Agent? A GenAI agent is an application that achieves goals by observing the world and acting upon it using tools. It is autonomous, capable of acting independently of human intervention. It reasons, makes decisions, and proactively chooses steps to achieve its goal — even without explicit instructions. Focus is on the specific type of agents powered by Generative AI models. Core Components (Cognitive Architecture) Model – The foundation (e. Read more...

Embedding & Vector Stores: Notes

Embedding & Vector Stores What are Embeddings? Low-dimensional numerical representation of almost anything (text, audio, images, video). A lossy compression technique: mapping complex data into simpler space while retaining semantic meaning. Enables pattern recognition — embeddings capture semantic similarity and underlying meaning. Useful for efficient large-scale processing. Think of it as: “encoding meaning in vector form.” Use Cases Retrieval & Recommendation systems. Search engines: precompute embeddings for billions of pages, convert search query to embedding, find nearest neighbours in vector space. Read more...

The High-Conscientiousness Trap

The High-Conscientiousness Trap A high-conscientious person isn’t just born. They are forged — through experiences, pressures, fears, and patterns that repeat until they settle into personality. They were probably the ones who got praised early for being “mature for their age.” They internalized responsibility not just for themselves, but for the people and systems around them. They started to fear slipping up. They built silent standards no one asked for. Read more...

Gemini Code Snippets

Prompt Engineering Using Gemini API Setup from google import genai from google.genai import types client = genai.Client(api_key=GOOGLE_API_KEY) Basic Usage response = client.models.generate_content( model="gemini-2.0-flash", contents="Explain AI to me like I'm a kid." ) print(response.text) Interactive Chat chat = client.chats.create(model='gemini-2.0-flash', history=[]) response = chat.send_message('Hello! My name is Zlork.') print(response.text) Listing Available Models for model in client.models.list(): print(model.name) Model Output Settings # Max output tokens short_config = types.GenerateContentConfig(max_output_tokens=200) # High temperature for creative responses high_temp_config = types. Read more...