Software Engineering

Guides on vibe coding, spec-driven development, testing, databases, Git, and building systems that don't fall over.

  1. Which Code Hosting Platforms Ban AI-Generated Code? Codeberg and SourceHut restrict AI-generated code, Stack Overflow bans ChatGPT answers. What each policy says, when it takes effect, and how enforcement works. concept beginner 6 min
  2. How to Prevent AI Code Detectors From Flagging Your Code AI code detectors flag style, not origin. Learn what makes code look machine-generated, how to write code that doesn't get flagged, and when hiding it is the wrong move. concept beginner 6 min
  3. What Watermarks Do LLMs Leave in Generated Code? Text watermarks like SynthID-Text and Claude's watermark exist — but code has no deployed watermark yet. Here's how watermarking works and why code resists it. concept intermediate 7 min
  4. Can AI-Generated Code Be Detected? No reliable way to detect AI-generated code exists. Detectors claim high accuracy but mislabel human code and are easy to evade. What actually works instead. concept beginner 6 min
  5. What Is an AI Agent? An AI agent is a program that uses a language model to decide and act — calling tools, reading files, and iterating until a task is done. Learn how they differ from chatbots. concept beginner 8 min
  6. What Is Vibe Coding (and Where Does It Break Down)? Vibe coding is building software by prompting AI and accepting what works, without reading every line. Learn what it is and exactly where it fails. concept beginner 7 min
  7. What Is Spec-Driven Development? Spec-driven development writes a specification before code, so AI agents build from explicit intent. Learn how it fights intent drift and context decay. concept beginner 7 min
  8. How to Write a Spec an AI Coding Agent Can Actually Follow Write specs that produce reliable AI-generated code: explicit goals, edge cases, non-goals, and acceptance criteria. A practical, template-driven guide. tutorial beginner 8 min
  9. What Is Context Engineering? Context engineering is the skill of curating what an AI model sees so it produces the right output. Learn why it's replacing prompt engineering. concept intermediate 7 min
  10. How to Optimize Token Usage When Coding with AI Every AI coding session burns tokens. Learn the five levers that cut token spend 50-80%: prompt compression, caching, model routing, output control, and context pruning. Practical techniques for vibecoders and teams. tutorial intermediate 14 min
  11. Monolith vs Microservices: Which Should You Start With? For most projects, start with a monolith and split later. Microservices solve scaling and team problems you likely don't have yet. A direct comparison. comparison beginner 7 min
  12. REST vs GraphQL vs gRPC: Which API Style Should You Use? REST, GraphQL, and gRPC each fit different needs: simple HTTP, flexible queries, or high-performance service-to-service calls. A comparison table. comparison intermediate 7 min
  13. Self-Hosted AI Coding Models in 2026: The Practical Review The gap between open-weight and proprietary coding models is closing fast. Compare Kimi K3, GLM-5.2, Qwen3-Coder, Gemma 4, DeepSeek V4, and more. Benchmarks, hardware requirements, and honest recommendations for every budget. review intermediate 16 min
  14. How to Coordinate Multiple AI Coding Agents on One Codebase Running multiple AI agents in parallel sounds fast, but without coordination they overwrite each other's work. Learn six patterns that keep parallel agents safe: spec-driven decomposition, git worktrees, role splits, model routing, verification gates, and sequential merges. tutorial advanced 15 min
  15. What Is Database Indexing (and Why Is My Query Slow)? A database index is a lookup structure that lets queries find rows without scanning the whole table. Learn how indexes work and why queries are slow. concept beginner 7 min
  16. How to Add an Index to a Slow SQL Query Diagnose a slow query with EXPLAIN, add the right index, and verify the speedup. A practical PostgreSQL tutorial. tutorial beginner 7 min
  17. How to Choose the Right AI Coding Tool for Your Workflow Compare the 8 best AI coding tools of 2026: Claude Code, Cursor, GitHub Copilot, OpenAI Codex, Windsurf, Gemini CLI, Lovable, and Bolt. Decision guide for vibecoders of every skill level, budget, and project type. review beginner 14 min
  18. What Is the N+1 Query Problem? The N+1 problem fires one query per row instead of one query total, and AI-generated ORM code causes it constantly. Learn it with a code example. concept beginner 7 min
  19. What Is Technical Debt? Technical debt is the future cost of shortcuts taken today — and AI-generated code creates it faster than ever. Learn to recognize and manage it. concept beginner 7 min
  20. How to Review AI-Generated Code Like a Senior Engineer A practical checklist for reviewing AI-generated code: correctness, security, edge cases, and intent. Review what the assistant skips, not just what it wrote. tutorial beginner 8 min
  21. What Is a Code Smell? A code smell is a surface clue that deeper problems lurk in the code — like duplicated logic or a function doing too much. Learn the common smells. concept beginner 7 min
  22. What Is Test-Driven Development (TDD)? TDD writes a failing test first, then the minimum code to pass it, then refactors. Learn the red-green-refactor cycle and why it matters. concept beginner 7 min
  23. How to Write Your First Unit Test Write your first unit test in Python with pytest: a real function, a real test, and the red-green cycle. A first-principles tutorial for beginners. tutorial beginner 7 min
  24. Unit vs Integration vs End-to-End Tests: What's the Difference? Unit tests check one piece, integration tests check pieces together, and end-to-end tests check the whole user flow. A comparison table. comparison beginner 7 min
  25. What Is Semantic Versioning (SemVer)? Semantic versioning is the MAJOR.MINOR.PATCH scheme that tells consumers what a version change means. Learn how to read and apply it. concept beginner 6 min
  26. Monorepo vs Polyrepo: Which Should You Use? A monorepo holds all projects in one repository; a polyrepo splits them. Compare the trade-offs for sharing code, CI, and team autonomy. comparison intermediate 7 min
  27. How to Write a Good Git Commit Message A good commit message states what changed and why in an imperative, one-line subject. Learn the format that keeps history useful. tutorial beginner 6 min
  28. What Is Git Rebase (and When Should You Use It Instead of Merge)? Merge preserves history with a merge commit; rebase replays your commits on top for a linear history. Learn the difference and when to use each. comparison intermediate 7 min
  29. How to Resolve a Git Merge Conflict Resolve a Git merge conflict step by step: read the conflict markers, choose the right change, and finish the merge — without losing work. tutorial beginner 7 min
  30. What Is Caching (and the Most Common Ways to Get It Wrong)? A cache stores frequently used data for fast retrieval. Learn how caching works, why it helps, and the classic ways to get it wrong. concept beginner 7 min
  31. How to Add Redis Caching to Your App Add Redis caching to a Node.js app: cache a slow endpoint, invalidate on writes, and set expiry. A practical, working tutorial. tutorial intermediate 8 min
  32. What Is Idempotency (and Why Does It Matter for APIs)? An idempotent operation can be retried safely — doing it once or many times has the same effect. Learn why payments and webhooks depend on it. concept beginner 7 min
  33. What Is Rate Limiting? Rate limiting caps how many requests a client can make, protecting your API from abuse and overload. Learn the strategies and why you need it. concept beginner 7 min
  34. How to Add Rate Limiting to an API Add rate limiting to a Node.js API with the express-rate-limit middleware: per-user limits, 429 responses, and retry headers. A working example. tutorial beginner 7 min
  35. What Is a Race Condition? A race condition happens when the outcome depends on the timing of concurrent operations. Learn it with a concrete code example and the fixes. concept intermediate 7 min
  36. Why Do .env Files Keep Leaking Secrets? .env files leak because they're easy to commit by mistake and AI assistants have no convention against it. Learn the failure and how to stop it. concept beginner 6 min
  37. How to Manage Secrets and Environment Variables Properly Store secrets outside your code: environment variables for config, a secret manager for sensitive values, and never commit .env files. A practical guide. tutorial beginner 8 min
  38. What Is Multi-Agent Coding (and Why Do Agents Conflict With Each Other)? Multi-agent coding runs several AI agents on one codebase in parallel — and they step on each other's changes. Learn the failure modes and how to manage them. concept intermediate 7 min
  39. What Makes a Codebase "AI-Friendly"? An AI-friendly codebase gives agents clear conventions, modular files, and tests so they make fewer mistakes. Learn the traits that make AI coding work. concept intermediate 7 min
  40. What Should You Actually Look For in a Code Review? A code review checks correctness, security, readability, and tests — in that order. Learn the checklist that catches real problems, not just style. concept beginner 7 min
  41. How to Structure a Python or Node.js Project From Scratch A clean project structure for Python and Node.js: separate source, tests, and config, with a layout that scales and that AI agents can navigate. tutorial beginner 7 min
  42. Software Engineering for AI Builders: The Concepts Your Coding Assistant Won't Teach You Your AI writes the code, but it doesn't teach you testing, architecture, databases, or Git. Learn every software engineering concept you need to go from vibecoding to shipping. 45+ linked guides. guide beginner 15 min
  43. What Is the Twelve-Factor App Methodology? The Twelve-Factor App is a set of principles for building portable, cloud-native software — from config in the environment to stateless processes. concept intermediate 8 min
  44. How to Work With an AI Coding Assistant Without Creating a Mountain of Tech Debt AI assistants generate code fast — and generate tech debt faster. Duplicated logic, dead code, over-engineered abstractions. Here's the system for catching these before they accumulate: review, deduplicate, simplify, delete. how-to intermediate 11 min
  45. How to Stop AI Assistants from Duplicating Code Across Your Project AI assistants can't see your entire codebase, so they duplicate validation, formatting, and helper functions everywhere. Here's how to find duplication, extract shared code, and prevent the AI from copying itself again. how-to beginner 6 min
  46. How to Find and Remove Dead Code Your AI Assistant Left Behind AI assistants leave dead functions, unused imports, and abandoned abstractions everywhere. Here's how to find dead code with grep and IDE tools, delete it safely, and stop the AI from generating more. how-to beginner 5 min
  47. How to Simplify Overly Complex AI-Generated Functions (Without Breaking Them) AI assistants over-engineer everything — factory patterns for one implementation, abstract classes for nothing, 5 nested conditionals for a yes/no. Here's how to simplify AI-generated code to match the actual complexity of the problem. how-to beginner 6 min
  48. How to Make Your Codebase AI-Friendly: A Complete Guide Your AI assistant is only as good as the codebase it reads. Structure files for context windows, name things consistently, and write comments the AI actually uses. Complete practical guide for making any codebase AI-friendly. how-to intermediate 12 min
  49. How to Structure Files So AI Agents Don't Break Your Architecture AI agents generate code in the wrong files, break module boundaries, and turn your project into a monolith. Here's how to structure directories and files so AI agents generate code that fits your architecture. how-to beginner 6 min
  50. How to Name Things So AI Assistants Generate Better Code AI assistants pattern-match on your existing names. Inconsistent naming produces inconsistent AI-generated code. Here's the naming system — descriptive, searchable, consistent — that makes AI assistants generate code that fits your project. how-to beginner 5 min
  51. How to Write Comments That AI Assistants Actually Read and Use AI assistants read your comments to understand intent and constraints. But they ignore noise and copy bad patterns. Here's what to write — intent over mechanics, constraints over descriptions, and contracts over implementation. how-to beginner 5 min
  52. How to Debug AI-Generated Code: A Complete System for When You Don't Understand What the AI Wrote Your AI wrote 300 lines and you don't know what any of it does — and now it's broken. Here's a repeatable debugging system: isolate, bisect, instrument, explain. No prior understanding required. how-to beginner 12 min
  53. How to Debug an AI-Generated API That Returns Wrong Data Your AI built an API endpoint. It returns 200 OK with wrong data. Here's how to trace request → handler → response when you didn't write the handler — isolate the broken function, instrument it, and get a targeted fix. how-to beginner 5 min
  54. How to Debug AI-Generated Database Queries That Return Wrong Results Your AI wrote a database query. It runs, but returns the wrong data — missing rows, wrong counts, stale results. Here's how to extract the raw SQL, test it directly, and fix it without the AI rewriting your whole data layer. how-to beginner 6 min
  55. How to Find Which AI-Generated Change Broke Your App Using Git Bisect Your AI made 15 commits yesterday and now something's broken. git bisect pinpoints the exact commit in minutes without reading any code — just a yes/no test. Step-by-step for AI builders. how-to beginner 5 min
  56. Eventual Consistency vs Strong Consistency: What's the Difference (and When Does It Matter)? Strong consistency guarantees all readers see the same data immediately. Eventual consistency saves latency and availability but lets reads return stale data. Here's when each is the right call. comparison intermediate 6 min
  57. What Is an API Gateway (and When Do You Need One)? An API gateway is a single entry point that routes, authenticates, and rate-limits all your API traffic. Learn what it does and when it's overkill. concept intermediate 5 min
  58. What Is a Database Transaction (ACID)? A transaction groups database operations so they all succeed or all roll back. Learn ACID, why transfers need it, and how to use it in code. concept beginner 5 min
  59. What Are Database Migrations (and Why Do They Break Deploys)? A migration is a versioned change to your database schema, applied in order. Learn how they work and the failure modes that take down deploys. concept beginner 5 min
  60. What Is an ORM (and When Should You Use Raw SQL)? An ORM maps database tables to objects so you write queries in your language. Learn what it hides, what it costs, and when raw SQL is the right call. concept beginner 5 min
  61. What Is Eventual Consistency (and Why Do My Reads Return Stale Data)? Eventual consistency means a write becomes visible everywhere after a delay. Learn why distributed systems use it and when stale reads are a problem. concept intermediate 5 min
  62. What Is Memoization (and When Does It Actually Help)? Memoization caches a function's results by its arguments so repeat calls skip the work. Learn when it's a huge win and when it's wasted effort. concept beginner 5 min
  63. How to Refactor AI-Generated Code Without Breaking Your App Your AI assistant wrote a 400-line function and you need to clean it up. Here's the step-by-step refactoring loop that keeps tests green — one small change at a time, with the diff you can actually review. how-to beginner 7 min
  64. What Is Linting (and Why Does the AI's Code Keep Failing It)? A linter checks code for bugs, style problems, and dangerous patterns before it runs. Learn how to set one up and why AI-generated code needs it. concept beginner 5 min
  65. How to Debug AI-Generated Code When You Don't Understand It Debugging code you didn't write is a skill. Learn the method: read the error, reproduce minimally, bisect the change, and interrogate the code. tutorial intermediate 5 min
  66. What Is Refactoring (and How Do You Do It Without Breaking Everything)? Refactoring restructures code without changing behavior. Learn the rule that makes it safe and how to use AI for it without breaking your app. concept beginner 5 min
  67. How to Write a README That People (and AI) Can Actually Use A good README tells a stranger how to run your project in two minutes. Learn the six sections that matter and what AI agents read in yours. tutorial beginner 5 min
  68. What Is Version Control (and Why Do You Need It)? Version control records every change to your code so you can compare, revert, and collaborate. Learn the core concepts and the habits that matter. concept beginner 5 min
  69. What Is AI Code Validation? AI code validation is the process of verifying that code generated by an AI assistant is correct, secure, and fit for production. Learn what to check and how. concept beginner 5 min
  70. What Is a Git Merge Conflict? A merge conflict happens when two branches change the same part of a file. Learn what causes them, how to read the markers, and how to resolve them. concept beginner 5 min
  71. Why Does the AI's Code Keep Failing Linting (and How to Fix It)? Your AI assistant generates code that fails every lint rule. Here's why, which rules to enforce in CI, and how to auto-fix the AI's output before it merges. how-to beginner 5 min
  72. What Is Continuous Delivery? Continuous delivery means every code change is automatically built, tested, and kept ready to deploy at any moment. Learn how it differs from CI and continuous deployment. concept beginner 5 min