1:"$Sreact.fragment" 2:I[97333,["/_next/static/chunks/51cf3403df3ab8db.js","/_next/static/chunks/e1faea17a9e9ed14.js"],""] 31:I[39271,["/_next/static/chunks/1f465ca74a71847d.js","/_next/static/chunks/6628e8793cd41c7c.js"],"OutletBoundary"] 32:"$Sreact.suspense" 0:{"buildId":"3CCc4JxoD54WNKxdcWa8x","rsc":["$","$1","c",{"children":[["$","div",null,{"className":"min-h-screen bg-[var(--bg)]","children":["$","article",null,{"className":"section-container pt-32 max-w-3xl","children":[["$","$L2",null,{"href":"/blog","className":"inline-flex items-center gap-2 text-sm text-muted hover:text-accent transition-colors mb-8","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left h-4 w-4","aria-hidden":"true","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back to Blog"]}],["$","header",null,{"className":"mb-10","children":[["$","div",null,{"className":"flex flex-wrap items-center gap-3 text-sm text-muted mb-4","children":[["$","span",null,{"className":"inline-flex items-center gap-1.5","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-calendar h-3.5 w-3.5","aria-hidden":"true","children":[["$","path","1cmpym",{"d":"M8 2v4"}],["$","path","4m81vk",{"d":"M16 2v4"}],["$","rect","1hopcy",{"width":"18","height":"18","x":"3","y":"4","rx":"2"}],["$","path","8toen8",{"d":"M3 10h18"}],"$undefined"]}],"March 10, 2025"]}],["$","span",null,{"className":"inline-flex items-center gap-1.5","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-clock h-3.5 w-3.5","aria-hidden":"true","children":[["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}],["$","path","mmk7yg",{"d":"M12 6v6l4 2"}],"$undefined"]}],"6 min read"]}]]}],["$","h1",null,{"className":"font-[family-name:var(--font-outfit)] text-3xl font-bold tracking-tight text-foreground sm:text-4xl lg:text-5xl","children":"The AI Tools I Actually Use Every Day as a Senior Engineer"}],["$","div",null,{"className":"mt-4 flex flex-wrap gap-2","children":[["$","span","AI Tools",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"AI Tools"}],["$","span","Developer Productivity",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"Developer Productivity"}],["$","span","LLMs",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"LLMs"}],["$","span","Code Generation",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"Code Generation"}],["$","span","Engineering",{"className":"rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-3 py-1 text-xs text-muted","children":"Engineering"}]]}]]}],["$","div",null,{"className":"prose-custom","children":[["$","h1",null,{"className":"font-[family-name:var(--font-outfit)] text-3xl font-bold tracking-tight text-foreground mt-10 mb-4 first:mt-0","children":"The AI Tools I Actually Use Every Day as a Senior Engineer"}],"\n",["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["There's a lot of noise in the AI tools space. Every week brings another \"revolutionary\" tool that promises to 10x your productivity. After testing dozens of them over the past two years, here are the ones that actually stuck in my workflow — and more importantly, ",["$","em",null,{"children":"how"}]," I use them to get real work done."]}],"\n",["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"1. Claude for Architecture & Code Review"}],"\n",["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Claude has become my go-to thinking partner for architectural decisions. Where ChatGPT often gives me \"sounds good\" answers, Claude pushes back on my assumptions and finds edge cases I miss."}],"\n","$L3","\n","$L4","\n","$L5","\n","$L6","\n","$L7","\n","$L8","\n","$L9","\n","$La","\n","$Lb","\n","$Lc","\n","$Ld","\n","$Le","\n","$Lf","\n","$L10","\n","$L11","\n","$L12","\n","$L13","\n","$L14","\n","$L15","\n","$L16","\n","$L17","\n","$L18","\n","$L19","\n","$L1a","\n","$L1b","\n","$L1c","\n","$L1d","\n","$L1e","\n","$L1f","\n","$L20","\n","$L21","\n","$L22","\n","$L23","\n","$L24","\n","$L25","\n","$L26","\n","$L27","\n","$L28","\n","$L29","\n","$L2a","\n","$L2b","\n","$L2c","\n","$L2d","\n","$L2e"]}]]}]}],["$L2f"],"$L30"]}],"loading":null,"isPartial":false} 3:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"How I actually use it:"}]}] 4:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Architecture reviews"}],": Before building a new service, I describe the requirements and constraints, then ask Claude to poke holes in my proposed design. It's caught race conditions and scaling bottlenecks I would have discovered much later."]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Code review assistance"}],": I paste complex PRs and ask for a review focused on security, performance, or maintainability. It catches things like SQL injection vectors and missing error boundaries that are easy to overlook in large diffs."]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Documentation generation"}],": After writing code, I use Claude to generate API documentation, sequence diagrams (in Mermaid), and architecture decision records (ADRs)."]}],"\n"]}] 5:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"python","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"python","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"# Example: I use Claude to help design state machines"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"# Before writing code, I describe the workflow in natural language"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"# and get back a validated state diagram"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"\"\""}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"Prompt I actually use:"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"I need a state machine for order processing. States: pending,"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"payment_processing, paid, fulfilling, shipped, delivered, cancelled,"}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"refunded. What transitions am I missing? What edge cases should I handle?\""}]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"\"\""}]}]]}]}]}] 6:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"What it's NOT good for"}],": Generating boilerplate code in frameworks it hasn't seen much of. For that, I use Copilot."]}] 7:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"2. GitHub Copilot for In-Editor Completion"}] 8:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"I was skeptical of Copilot for months. Then I realized I was using it wrong — treating it like a code generator instead of an autocomplete on steroids."}] 9:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"The workflow that works:"}]}] a:["$","ol",null,{"className":"list-decimal list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Write a clear function signature and docstring"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Let Copilot suggest the implementation"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Review, adjust, move on"}],"\n"]}] b:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Where Copilot really shines is repetitive patterns. Writing database migration files, test fixtures, API endpoint boilerplate — it saves me 30-40% of keystroke time on these tasks."}] c:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"My actual settings:"}]}] d:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"I keep it enabled for Python, TypeScript, and SQL"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"I disable it for configuration files (too many wrong suggestions)"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"I use the chat feature for explaining unfamiliar codebases"}],"\n"]}] e:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"3. Cursor IDE for Complex Refactoring"}] f:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Cursor changed how I approach large refactoring tasks. The ability to select a block of code, describe the transformation I want, and get a diff preview is incredibly powerful."}] 10:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"Real example from last month:"}]}] 11:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"I needed to migrate 40+ API endpoints from Flask to FastAPI. Instead of manually rewriting each one, I used Cursor to:"}] 12:["$","ol",null,{"className":"list-decimal list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Select a Flask route handler"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Prompt: \"Convert to FastAPI with Pydantic models for request/response, add proper status codes and error handling\""}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Review the diff, accept or adjust"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Repeat"}],"\n"]}] 13:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"What would have taken a week took two days, and the output quality was consistently high because I was reviewing every change."}] 14:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"4. Qdrant + LangChain for Knowledge Management"}] 15:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"This isn't a \"tool\" in the traditional sense, but I've built an internal knowledge base using Qdrant and LangChain that my entire team uses daily."}] 16:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"The setup:"}]}] 17:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"All our internal documentation, runbooks, and post-mortems are indexed in Qdrant"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"A Slack bot powered by LangChain lets anyone query the knowledge base in natural language"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"It cites sources, so you can verify answers"}],"\n"]}] 18:["$","figure",null,{"data-rehype-pretty-code-figure":"","children":["$","pre",null,{"className":"overflow-x-auto rounded-xl border border-[var(--card-border)] bg-[var(--surface)] p-4 text-sm mb-5","style":{"backgroundColor":"#22272e","color":"#adbac7"},"tabIndex":"0","data-language":"python","data-theme":"github-dark-dimmed","children":["$","code",null,{"className":"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-sm font-mono text-accent","data-language":"python","data-theme":"github-dark-dimmed","style":{"display":"grid"},"children":[["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"from"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" langchain_community.vectorstores "}],["$","span",null,{"style":{"color":"#F47067"},"children":"import"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" Qdrant"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F47067"},"children":"from"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" langchain_openai "}],["$","span",null,{"style":{"color":"#F47067"},"children":"import"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" OpenAIEmbeddings"}]]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"# Our internal knowledge base setup"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":"embeddings "}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" OpenAIEmbeddings("}],["$","span",null,{"style":{"color":"#F69D50"},"children":"model"}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"text-embedding-3-large\""}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":")"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":"vectorstore "}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" Qdrant("}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F69D50"},"children":" client"}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"qdrant_client,"}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F69D50"},"children":" collection_name"}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"team_knowledge\""}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":","}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F69D50"},"children":" embeddings"}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"embeddings,"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#ADBAC7"},"children":")"}]}],"\n",["$","span",null,{"data-line":"","children":" "}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#768390"},"children":"# Hybrid search: dense vectors + keyword filtering"}]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#ADBAC7"},"children":"retriever "}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":" vectorstore.as_retriever("}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F69D50"},"children":" search_type"}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"mmr\""}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":","}]]}],"\n",["$","span",null,{"data-line":"","children":[["$","span",null,{"style":{"color":"#F69D50"},"children":" search_kwargs"}],["$","span",null,{"style":{"color":"#F47067"},"children":"="}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"{"}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"k\""}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":": "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"5"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":", "}],["$","span",null,{"style":{"color":"#96D0FF"},"children":"\"fetch_k\""}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":": "}],["$","span",null,{"style":{"color":"#6CB6FF"},"children":"20"}],["$","span",null,{"style":{"color":"#ADBAC7"},"children":"}"}]]}],"\n",["$","span",null,{"data-line":"","children":["$","span",null,{"style":{"color":"#ADBAC7"},"children":")"}]}]]}]}]}] 19:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Impact:"}]," New team members get up to speed 3x faster because they can ask questions and get answers from our collective knowledge instead of interrupting senior engineers."]}] 1a:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"5. v0 by Vercel for UI Prototyping"}] 1b:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"When I need to quickly prototype a UI component or page layout, v0 is remarkably good. I describe what I want in natural language, and it generates React + Tailwind code that's usually 80% of the way there."}] 1c:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"Where it excels:"}]}] 1d:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Dashboard layouts"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Form designs with validation states"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Card grids and list views"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Landing page sections"}],"\n"]}] 1e:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"Where it falls short:"}]}] 1f:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Complex interactive components (drag-and-drop, real-time updates)"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Anything requiring specific state management patterns"}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"Accessibility nuances"}],"\n"]}] 20:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"6. Perplexity for Technical Research"}] 21:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"When I need to understand a new technology, debug an obscure error, or compare approaches, Perplexity has replaced my Google-then-read-5-articles workflow."}] 22:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","strong",null,{"className":"font-semibold text-foreground","children":"Example queries that save me time:"}]}] 23:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":"\"What are the trade-offs between Qdrant and Pinecone for production RAG pipelines?\""}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"\"How does FastAPI handle connection pooling with SQLAlchemy async?\""}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":"\"What's the recommended approach for LangGraph state persistence in distributed systems?\""}],"\n"]}] 24:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"The key advantage: it cites sources inline, so I can verify claims and go deeper when needed."}] 25:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"Tools I Tried and Dropped"}] 26:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"Not everything sticks. Here's what I stopped using and why:"}] 27:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Tabnine"}],": Copilot is simply better for my use cases"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Amazon CodeWhisperer"}],": Good for AWS-specific code, but I don't write enough of it"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Bard/Gemini for coding"}],": Inconsistent quality, especially for Python backend work"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Auto-GPT"}],": Cool demo, not useful for real work yet"]}],"\n"]}] 28:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"My Actual Productivity Impact"}] 29:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"After tracking my output for three months with and without AI tools:"}] 2a:["$","ul",null,{"className":"list-disc list-inside space-y-2 text-muted mb-5","children":["\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Code writing speed"}],": ~35% faster (mostly from Copilot reducing boilerplate)"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Bug discovery"}],": ~20% more bugs caught before PR review (Claude code reviews)"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Architecture quality"}],": Hard to quantify, but my designs have fewer revision cycles"]}],"\n",["$","li",null,{"className":"text-base leading-relaxed","children":[["$","strong",null,{"className":"font-semibold text-foreground","children":"Documentation"}],": 50% less time spent, and the output is often better than what I'd write manually"]}],"\n"]}] 2b:["$","h2",null,{"className":"font-[family-name:var(--font-outfit)] text-2xl font-semibold tracking-tight text-foreground mt-10 mb-3","children":"The Meta-Lesson"}] 2c:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":"The engineers who benefit most from AI tools aren't the ones who use the most tools — they're the ones who deeply integrate 3-4 tools into their existing workflow. Don't chase every new release. Pick tools that solve your specific pain points, learn them well, and let the hype cycle play out for everything else."}] 2d:["$","hr",null,{"className":"my-8 border-[var(--card-border)]"}] 2e:["$","p",null,{"className":"text-base leading-relaxed text-muted mb-5","children":["$","em",null,{"children":"What AI tools have stuck in your workflow? I'm always looking for recommendations, especially for DevOps and infrastructure work where I feel the tooling is still immature."}]}] 2f:["$","script","script-0",{"src":"/_next/static/chunks/e1faea17a9e9ed14.js","async":true}] 30:["$","$L31",null,{"children":["$","$32",null,{"name":"Next.MetadataOutlet","children":"$@33"}]}] 33:null