<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://pravin.dev/</id><title>Pravin on Software</title><subtitle>A blog which shares my knowledge while working as Software Engineer.</subtitle> <updated>2026-09-10T21:19:11+05:30</updated> <author> <name>Pravin Tripathi</name> <uri>https://pravin.dev/</uri> </author><link rel="self" type="application/atom+xml" href="https://pravin.dev/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://pravin.dev/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 Pravin Tripathi </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>The AI Dev Lifecycle: Plan, Code, Test, Refactor, Document</title><link href="https://pravin.dev/posts/ai-dev-lifecycle/" rel="alternate" type="text/html" title="The AI Dev Lifecycle: Plan, Code, Test, Refactor, Document" /><published>2026-09-08T00:00:00+05:30</published> <updated>2026-09-10T21:18:09+05:30</updated> <id>https://pravin.dev/posts/ai-dev-lifecycle/</id> <content type="text/html" src="https://pravin.dev/posts/ai-dev-lifecycle/" /> <author> <name>pravin_tripathi</name> </author> <category term="Blogging" /> <category term="Article" /> <category term="ai-engineering" /> <summary>TL;DR AI assists every stage of the development lifecycle — but engineering oversight is non-negotiable at each one. The rule: AI generates, engineer decides. Never approve code you don’t understand. This post does not introduce new machinery for the five phases. Plan reuses the Analyst persona and REASONS Canvas from Agentic TDD &amp;amp;amp; SPDD. Code reuses the QA/Architect persona split an...</summary> </entry> <entry><title>Prompting and Code Review: Templates, Iteration, and Security</title><link href="https://pravin.dev/posts/prompting-code-review/" rel="alternate" type="text/html" title="Prompting and Code Review: Templates, Iteration, and Security" /><published>2026-09-07T14:00:00+05:30</published> <updated>2026-09-10T21:18:09+05:30</updated> <id>https://pravin.dev/posts/prompting-code-review/</id> <content type="text/html" src="https://pravin.dev/posts/prompting-code-review/" /> <author> <name>pravin_tripathi</name> </author> <category term="Blogging" /> <category term="Article" /> <category term="ai-engineering" /> <summary>TL;DR A structured prompt is a function signature: define role, task, constraints, and expected output explicitly. This post doesn’t invent a new template — it takes the REASONS Canvas and the QA/Architect persona split from Agentic SPDD, and the SOLID / pattern vocabulary from Design Patterns and layering vocabulary from Software Architecture, and packages all of it into two reusable, pl...</summary> </entry> <entry><title>Vibe Engineering: Quality Control for AI-Generated Code</title><link href="https://pravin.dev/posts/vibe-engineering-intro/" rel="alternate" type="text/html" title="Vibe Engineering: Quality Control for AI-Generated Code" /><published>2026-09-07T10:00:00+05:30</published> <updated>2026-09-10T21:18:09+05:30</updated> <id>https://pravin.dev/posts/vibe-engineering-intro/</id> <content type="text/html" src="https://pravin.dev/posts/vibe-engineering-intro/" /> <author> <name>pravin_tripathi</name> </author> <category term="Blogging" /> <category term="Article" /> <category term="ai-engineering" /> <summary>TL;DR Vibe Engineering is the disciplined practice of directing, reviewing, and owning AI-generated code — not just accepting whatever the model outputs. AI tools produce code that compiles but routinely violates SOLID, skips error handling, and hides security issues. A systematic red-flag checklist and a quality pyramid are your first line of defence — and every item on that checklist ...</summary> </entry> <entry><title>Cloud-Native and Microservices: Scale, Resilience, and the 12-Factor App</title><link href="https://pravin.dev/posts/cloud-native-microservices/" rel="alternate" type="text/html" title="Cloud-Native and Microservices: Scale, Resilience, and the 12-Factor App" /><published>2026-09-06T20:00:00+05:30</published> <updated>2026-09-06T20:00:00+05:30</updated> <id>https://pravin.dev/posts/cloud-native-microservices/</id> <content type="text/html" src="https://pravin.dev/posts/cloud-native-microservices/" /> <author> <name>pravin_tripathi</name> </author> <category term="Blogging" /> <category term="Article" /> <category term="ai-engineering" /> <summary>TL;DR Cloud-native architecture builds systems that run reliably on distributed infrastructure by following the 12-factor methodology — regardless of language or framework. Microservices are independently deployable units — use them only when you’ve outgrown a monolith. Resiliency patterns (circuit breakers, retries, idempotency) are essential for services that call other services over ...</summary> </entry> <entry><title>Data and AI Architectures: Pipelines, RAG, and Observability</title><link href="https://pravin.dev/posts/data-ai-architectures/" rel="alternate" type="text/html" title="Data and AI Architectures: Pipelines, RAG, and Observability" /><published>2026-09-06T14:00:00+05:30</published> <updated>2026-09-08T08:55:01+05:30</updated> <id>https://pravin.dev/posts/data-ai-architectures/</id> <content type="text/html" src="https://pravin.dev/posts/data-ai-architectures/" /> <author> <name>pravin_tripathi</name> </author> <category term="Blogging" /> <category term="Article" /> <category term="ai-engineering" /> <summary>TL;DR Modern systems combine batch pipelines, streaming data, and ML inference — each with distinct architectural needs, in any language or stack. Retrieval-Augmented Generation (RAG) is the dominant pattern for grounding LLM responses in your own data — and it is itself a small architecture, with the same layering discipline as everything else in this module. Build observability into A...</summary> </entry> </feed>
