<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://kanyilmaz.me/feed.xml" rel="self" type="application/atom+xml" /><link href="https://kanyilmaz.me/" rel="alternate" type="text/html" /><updated>2026-03-28T14:54:47+00:00</updated><id>https://kanyilmaz.me/feed.xml</id><title type="html">Kan Yilmaz</title><subtitle>Essays on AI, engineering, and decision-making.</subtitle><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><entry><title type="html">Your Prime Is Not Youth, Money, or Status. It Is Something More Human</title><link href="https://kanyilmaz.me/2026/03/28/prime-is-1-to-4.html" rel="alternate" type="text/html" title="Your Prime Is Not Youth, Money, or Status. It Is Something More Human" /><published>2026-03-28T00:00:00+00:00</published><updated>2026-03-28T00:00:00+00:00</updated><id>https://kanyilmaz.me/2026/03/28/prime-is-1-to-4</id><content type="html" xml:base="https://kanyilmaz.me/2026/03/28/prime-is-1-to-4.html"><![CDATA[<h1 id="your-prime-is-not-youth-money-or-status-it-is-something-more-human">Your Prime Is Not Youth, Money, or Status. It Is Something More Human</h1>

<p><img src="/assets/posts/prime_is_1_to_4.png" alt="" /></p>

<p>People admired different stages of my life. They only wanted one of them back.</p>

<p>When I was in middle school and high school, adults would look at me with the usual nostalgia. Ah, youth. Ah, energy. Ah, no responsibilities. But none of them wanted to become a 14-year-old again. They liked watching it from a distance.</p>

<p>University was the same. More freedom, more friends, late nights, low stakes. People smiled at it. Nobody wanted to trade places.</p>

<p>Mid-career was the same again. This is the stage people usually call prime. You know a lot. You produce a lot. You can handle complexity. Your judgment is better, your network is better, your output is better. Older people respected it. Some even admired it. Still, they did not want my life.</p>

<p>Then I had a child.</p>

<p>The first year does not count much for this argument. A baby is important, exhausting, beautiful, terrifying. But socially, a baby is still a bit of a blob. You love the baby. The baby eats, sleeps, cries, and occasionally stares into the wall like it knows something ancient.</p>

<p>Then the child becomes a person.</p>

<p>Somewhere around age one, maybe a little after, the whole thing changes. They respond. They laugh with intention. They run badly. They invent rules for games that make no sense. They mispronounce words with total confidence. They need you for everything and love you with zero strategy.</p>

<p>That is when I noticed a reaction I had never seen before.</p>

<p>Older people did not just look at me and say, “these are good years.” They looked at me like I was holding something they had lost. Not in theory. Not politely. For the first time in my life, I got the feeling that people genuinely wanted to swap places.</p>

<p>That is a very different look.</p>

<p>Here is the pattern I keep noticing:</p>

<table>
  <thead>
    <tr>
      <th>Stage</th>
      <th>What people say</th>
      <th>What they actually want</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Teen years</td>
      <td>“Must be nice to be young”</td>
      <td>No</td>
    </tr>
    <tr>
      <td>University</td>
      <td>“Best years of your life”</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Peak-career</td>
      <td>“You’re crushing it”</td>
      <td>No</td>
    </tr>
    <tr>
      <td>Having young kids</td>
      <td>“I would give anything to have that again”</td>
      <td>Yes</td>
    </tr>
  </tbody>
</table>

<p>This window is brutal, by the way.</p>

<p>You are tired. Your schedule is fake. Your house is under occupation. Your conversations are interrupted by tiny emergencies involving the wrong cup, a missing stuffed animal, and whether dogs are allowed to wear shoes. You are carrying more responsibility than ever.</p>

<p>And still, this is the age people want back.</p>

<p>This is the cleanest form of being needed.</p>

<p>A teenager may love you, but they are already turning away from you. A baby needs you, but the relationship is still one-sided. A young child gives you both at once. Maximum dependence. Maximum affection. Maximum wonder.</p>

<p>You are the center of their world, and they are small enough to show it every day.</p>

<p>When you are young, you think prime is freedom. When you are ambitious, you think prime is status. When you are building, you think prime is competence.</p>

<p>I trust a simpler test.</p>

<p>Which years would older people actually pay to have back?</p>

<p>That is prime.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[Your Prime Is Not Youth, Money, or Status. It Is Something More Human]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/prime_is_1_to_4.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/prime_is_1_to_4.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">From 0 to 1,000 Skills: How to Scale AI Context</title><link href="https://kanyilmaz.me/2026/03/14/from-0-to-1000-skills.html" rel="alternate" type="text/html" title="From 0 to 1,000 Skills: How to Scale AI Context" /><published>2026-03-14T00:00:00+00:00</published><updated>2026-03-14T00:00:00+00:00</updated><id>https://kanyilmaz.me/2026/03/14/from-0-to-1000-skills</id><content type="html" xml:base="https://kanyilmaz.me/2026/03/14/from-0-to-1000-skills.html"><![CDATA[<h1 id="from-0-to-1000-skills-how-to-scale-ai-context">From 0 to 1,000 Skills: How to Scale AI Context</h1>

<p>Does your AI keep getting the task wrong?</p>

<p>The problem isn’t the model. It’s context. I organized +1,000 skills so my AI finds the right ones to get the job done.</p>

<h2 id="what-is-a-skill">What Is a Skill?</h2>

<p>A prompt is context. A markdown file is context. An MCP server is context. A CLAUDE.md, a .cursorrules, an AGENTS.md, SOUL.md, TOOLS.md - all context. Different names, same idea. They are all context.</p>

<p>The question isn’t which format. It’s how you organize context as it grows.</p>

<h2 id="the-5-levels">The 5 Levels</h2>

<table>
  <thead>
    <tr>
      <th>Level</th>
      <th>Name</th>
      <th>Files</th>
      <th>What Changes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Raw Prompt</td>
      <td>0</td>
      <td>You type everything, every time</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Instruction File</td>
      <td>1</td>
      <td>AI follows your rules by default</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Skills</td>
      <td>10-50</td>
      <td>AI switches behavior per task</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Complex Skills</td>
      <td>50-200</td>
      <td>Skills have references, scripts, assets</td>
    </tr>
    <tr>
      <td>5</td>
      <td>Discovery Layer</td>
      <td>200+</td>
      <td>AI self-navigates to what it needs</td>
    </tr>
  </tbody>
</table>

<h2 id="level-1---the-prompt">Level 1 - The Prompt</h2>

<p>Everyone starts here. You type your request or paste some context. Next session, you do it again. The AI has no memory of your conventions, your tools, your preferences.</p>

<p>Normal ChatGPT, Claude, Gemini calls fit into this bucket.</p>

<h2 id="level-2---one-file">Level 2 - One File</h2>

<p><strong>Problem:</strong> You repeat yourself every session.</p>

<p><strong>Solution:</strong> One instruction file that loads automatically.</p>

<p>Your conventions, tools, project structure - written down once. The AI reads it every session without you typing it.</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gu">## Workspace</span>
<span class="p">-</span> Code: ~/Projects/code
<span class="p">-</span> Client sites: ~/Projects/clients
<span class="p">-</span> Ad accounts: Google Ads (ID: 123-456), Meta (ID: 789)

<span class="gu">## Tools</span>
<span class="p">-</span> gh: GitHub PRs and issues
<span class="p">-</span> gads: Google Ads CLI
<span class="p">-</span> dcli: Credential manager

<span class="gu">## Rules</span>
<span class="p">-</span> Never push without approval
<span class="p">-</span> Run tests before committing
<span class="p">-</span> Use 80 10 10 rule to manage ads. 
<span class="p">-</span> DNS changes require screenshot of current state first
</code></pre></div></div>

<p>One file. Covers code, ads, email, DNS. Loads every session. The AI stops being generic.</p>

<h2 id="level-3---skills">Level 3 - Skills</h2>

<p><strong>Problem:</strong> Your AGENTS.md is too long. AI starts ignoring parts of it.</p>

<p><strong>Solution:</strong> Separate files per domain. Each one focused on a specific job.</p>

<p>Claude Code/Codex has this built in. You put a markdown file in <code class="language-plaintext highlighter-rouge">.claude/skills/</code> and it becomes a skill the AI can load when needed.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>.claude/skills/
├── seo-audit/SKILL.md
├── deploy/SKILL.md
├── manage-ads/SKILL.md
├── dns-ops/SKILL.md
├── outbound-sdr/SKILL.md
└── client-onboarding/SKILL.md
</code></pre></div></div>

<p>Each file: 200-500 lines. Focused on one job. The AI loads only the one it needs.</p>

<p>You say “run an SEO audit” and the AI finds <code class="language-plaintext highlighter-rouge">seo-audit/SKILL.md</code> on its own. Or you type <code class="language-plaintext highlighter-rouge">/seo-audit</code> to trigger it directly. Either way, it loads that skill and nothing else. No ad rules. No DNS procedures. Just SEO.</p>

<h2 id="level-4---complex-skills">Level 4 - Complex Skills</h2>

<p><strong>Problem:</strong> A single skill file isn’t enough for complex workflows. Your SEO audit skill needs data source documentation, analysis templates, QA checklists, validation scripts. One file can’t hold all of that without becoming a wall of text the AI half-reads.</p>

<p><strong>Solution:</strong> Skills become folders. A main file plus references, scripts, and assets. The main file tells the AI what else to read.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>skills/seo-audit/
├── SKILL.md
├── references/
│   ├── data-source-ga4.md
│   ├── data-source-gsc.md
│   ├── data-source-ahrefs.md
│   └── improvement-protocol.md
├── templates/
│   ├── 01-analytics-baseline.md
│   ├── 07-keyword-cannibalization.md
│   └── ...19 step templates
└── scripts/
    ├── data-staleness.sh
    └── validate-analysis.sh
</code></pre></div></div>

<p>The main SKILL.md references the supporting files:</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gu">## Before Starting</span>
Read <span class="sb">`references/data-source-ga4.md`</span> for GA4 access setup.
Read <span class="sb">`references/data-source-gsc.md`</span> for Search Console setup.

<span class="gu">## Step Execution</span>
For each step, create sub-agent, read the matching template in <span class="sb">`templates/`</span>.
The template defines success criteria. Work backward from those.

<span class="gu">## After Each Step</span>
Run <span class="sb">`scripts/validate-analysis.sh`</span> to check your output.
</code></pre></div></div>

<p>The AI reads the main file, follows its references, reads only what’s needed for the current step. 20+ files in the folder, touches maybe 8 per task.</p>

<p>Main file orchestrates. References provide depth. Scripts automate checks. The AI follows the chain.</p>

<h2 id="level-5---discovery-layer">Level 5 - Discovery Layer</h2>

<p><strong>Problem:</strong> You now have 50+ skill folders with 200+ files total. The context becomes huge. The AI starts ignores it some rules again.</p>

<p><strong>Solution:</strong> A slim AGENTS.md that points to where things live, plus a script that reads file metadata so the AI discovers what’s available without loading everything.</p>

<p>The AGENTS.md at this level is minimal:</p>

<div class="language-markdown highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="gu">## Docs</span>
<span class="p">-</span> SEO: docs/seo/
<span class="p">-</span> Ads: docs/ads/
<span class="p">-</span> Code: docs/code/
<span class="p">-</span> SDR: docs/outbound/
<span class="p">-</span> DNS: docs/dns-ops/
<span class="p">-</span> Clients: docs/clients/

<span class="gu">## Discovery</span>
Run <span class="sb">`docs-catalog`</span> inside relevant folder to list all available docs with summaries.
</code></pre></div></div>

<p>No skills loaded at startup. Just pointers.</p>

<p>The discovery script scans the <code class="language-plaintext highlighter-rouge">docs/</code> folder and reads the metadata header of every markdown file and injects into the context. Each doc starts with a standard header:</p>

<div class="language-yaml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nn">---</span>
<span class="na">summary</span><span class="pi">:</span> <span class="s2">"</span><span class="s">Run</span><span class="nv"> </span><span class="s">full</span><span class="nv"> </span><span class="s">SEO</span><span class="nv"> </span><span class="s">audit</span><span class="nv"> </span><span class="s">with</span><span class="nv"> </span><span class="s">GA4,</span><span class="nv"> </span><span class="s">GSC,</span><span class="nv"> </span><span class="s">and</span><span class="nv"> </span><span class="s">Ahrefs</span><span class="nv"> </span><span class="s">data"</span>
<span class="na">read_when</span><span class="pi">:</span>
  <span class="pi">-</span> <span class="s">Running SEO analysis or audit</span>
  <span class="pi">-</span> <span class="s">Pulling analytics data</span>
<span class="nn">---</span>
</code></pre></div></div>

<p>The script outputs a compact list:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docs/seo/seo-audit.md
  read_when: "Run full SEO audit with GA4, GSC, and Ahrefs data"

docs/seo/keyword-research.md
  read_when: "Keyword gap analysis and cannibalization detection"

docs/ads/google-ads-optimize.md
  read_when: "Optimize Google Ads campaigns, adjust bids, pause underperformers"

docs/outbound/prospecting.md
  read_when: "Find and qualify leads matching ICP criteria"

docs/dns/domain-ops.md
  read_when: "Domain purchases, DNS changes, redirect setup"

...
</code></pre></div></div>

<p>The AI reads this index, matches the current task against summaries, picks relevant docs, reads those fully, follows their references. 1,000+ files in the system. The AI touches maybe 10-15 per task. Everything else is ignored.</p>

<p>This scales infinitely. Each doc folder can have sub-docs with their own references. Each layer narrows the context until the AI reads only what it needs for this specific task.</p>

<p>The navigation chain looks like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>AGENTS.md → "SEO is at docs/seo/"
  → script reads metadata of 12 SEO docs
    → AI picks docs/seo/seo-audit.md
      → that doc references 4 data source docs + 19 templates
        → AI reads only the 2 data sources it needs right now
</code></pre></div></div>

<h2 id="beyond-level-5">Beyond Level 5</h2>

<p>When even the discovery layer isn’t enough - when you have thousands of docs across dozens of domains - the solutions split into two paths.</p>

<p><strong>Commands that reference hundreds of docs.</strong> A <code class="language-plaintext highlighter-rouge">/seo-analyze</code> command that already knows which 30 reference files, 19 templates, and 8 scripts to load. The user types one command. The AI doesn’t discover anything - the command pre-loads the right context.</p>

<p><strong>Specialized agents with pre-loaded references.</strong> Instead of one AI that navigates everything, you split into agents that each own a domain. An SEO agent with 200 docs already in its context. An ads agent with its own 150. A code agent with its own 300. Each agent is focused. No discovery needed because each one already knows its domain.</p>

<p>At this scale, you’re not managing context anymore. You’re managing teams of AIs, each with their own organized knowledge base.</p>

<p>For most use cases specialized agents are over-engineered, but it works.</p>

<h2 id="summary">Summary</h2>

<p>The difference between getting a workflow done and “AI doesn’t work” is context.</p>

<p>You start from the AI knowing nothing to navigating 1000s of files and finds what it needs</p>

<p>No databases. No embeddings. No vector search. Only Markdown files, folder structure, and a script that reads headers.</p>

<p><a href="mailto:kan.yilmaz.me@gmail.com" class="blog-link-card">
<span class="blog-link-card-title">Need help setting this up for your team? DM me</span>
<span class="blog-link-card-arrow">↗</span>
</a></p>

<h2 id="read-next">Read next</h2>

<p><a href="/2026/02/19/five-stages-of-ai-agents" class="blog-link-card">
<span class="blog-link-card-title">Do you want more? Learn about the 5 stages of AI orchestrartion</span>
<span class="blog-link-card-arrow">↗</span>
</a></p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[From 0 to 1,000 Skills: How to Scale AI Context]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/from_0_to_1000_skills.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/from_0_to_1000_skills.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">AI Gave Birth to the 100X Engineer</title><link href="https://kanyilmaz.me/2026/02/25/1000x-engineer.html" rel="alternate" type="text/html" title="AI Gave Birth to the 100X Engineer" /><published>2026-02-25T00:00:00+00:00</published><updated>2026-02-25T16:37:19+00:00</updated><id>https://kanyilmaz.me/2026/02/25/1000x-engineer</id><content type="html" xml:base="https://kanyilmaz.me/2026/02/25/1000x-engineer.html"><![CDATA[<h1 id="ai-gave-birth-to-the-100x-engineer">AI Gave Birth to the 100X Engineer</h1>

<p><img src="/assets/posts/100x_engineer.png" alt="" /></p>

<blockquote>
  <p>8,471 commits. 48 repositories. 72 days. One engineer.</p>
</blockquote>

<p>Peter Steinberger built OpenClaw, the fastest-growing open source project in GitHub history. 228,000 stars in under three months - 18x faster than Kubernetes. Then OpenAI hired him.</p>

<p>I reverse-engineered how he works. Not his opinions or philosophy. His systems and his output.</p>

<p><img src="/assets/posts/peter-desk.jpg" alt="Peter's desk at 1am" /></p>

<h2 id="sharpening-the-axe">Sharpening the axe</h2>

<blockquote>
  <p>Give me six hours to chop down a tree, and I will spend the first four sharpening the axe.</p>

  <p>— Abraham Lincoln</p>
</blockquote>

<p>Peter spent a lot of time building tools. Not products. Tools that make his AI agents better at building products.</p>

<p><strong>He’s building a macOS app. Agents can’t test UI.</strong> He built <a href="https://github.com/steipete/Peekaboo">Peekaboo</a> and <a href="https://github.com/steipete/AXorcist">AXorcist</a> so agents can take screenshots, read UI elements, and test any macOS application.</p>

<p><strong>He’s building a Swift app. Build times are slow.</strong> He built <a href="https://github.com/steipete/poltergeist">Poltergeist</a> - it watches for file changes and rebuilds in the background automatically.</p>

<p><strong>Agents get stuck. No one course-corrects.</strong> He built <a href="https://github.com/steipete/oracle">Oracle</a> - it sends your code to a different AI model for review. A fresh set of eyes that catches what the first model won’t.</p>

<p><strong>Agents can’t reach the outside world.</strong> He built <a href="https://github.com/steipete/imsg">imsg</a> for iMessage, <a href="https://github.com/steipete/wacli">wacli</a> for WhatsApp, <a href="https://github.com/steipete/gogcli">gogcli</a> for Gmail, <a href="https://github.com/steipete/summarize">summarize</a> for digesting any URL.</p>

<blockquote>
  <p>I don’t design codebases to be easy to navigate for me. I engineer them so agents can work in them efficiently.</p>

  <p>— Peter Steinberger</p>
</blockquote>

<p>Every tool compounds into the next.</p>

<h2 id="the-output">The output</h2>

<table>
  <thead>
    <tr>
      <th> </th>
      <th>Typical engineer</th>
      <th>Peter</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Commits per day</td>
      <td>1-3</td>
      <td>~118</td>
    </tr>
    <tr>
      <td>Parallel projects</td>
      <td>1</td>
      <td>~6</td>
    </tr>
    <tr>
      <td>Agents running</td>
      <td>0</td>
      <td>5-10</td>
    </tr>
  </tbody>
</table>

<p>On any given day, Peter has agents running simultaneously across different repositories. Each agent works on a task for up to 2 hours. One refactors the OAuth module in mcporter while another writes tests for Peekaboo. Peter moves between them, reviewing output, adjusting prompts, queuing the next task.</p>

<p>This is what a single Sunday looks like:</p>

<p><img src="/assets/posts/1000x_gantt.png" alt="" /></p>

<p>These aren’t toy projects.</p>

<table>
  <thead>
    <tr>
      <th>Project</th>
      <th>Stars</th>
      <th>What it does</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="https://github.com/openclaw/openclaw">OpenClaw</a></td>
      <td>228,000</td>
      <td>Open source Claw game</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/CodexBar">CodexBar</a></td>
      <td>6,380</td>
      <td>Codex/Claude usage stats in your menu bar</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/gogcli">gogcli</a></td>
      <td>4,945</td>
      <td>Gmail, GCal, GDrive from the terminal</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/summarize">summarize</a></td>
      <td>4,434</td>
      <td>Summarize any URL, YouTube, or podcast</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/Peekaboo">Peekaboo</a></td>
      <td>2,377</td>
      <td>Screen capture and UI automation for agents</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/mcporter">mcporter</a></td>
      <td>2,111</td>
      <td>MCP server toolkit</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/oracle">oracle</a></td>
      <td>1,527</td>
      <td>Multi-model code review</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/RepoBar">RepoBar</a></td>
      <td>1,068</td>
      <td>GitHub repo status in your menu bar</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/imsg">imsg</a></td>
      <td>759</td>
      <td>iMessage from the terminal</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/wacli">wacli</a></td>
      <td>536</td>
      <td>WhatsApp from the terminal</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/Trimmy">Trimmy</a></td>
      <td>448</td>
      <td>Flatten multi-line shell snippets</td>
    </tr>
    <tr>
      <td><a href="https://github.com/steipete/poltergeist">Poltergeist</a></td>
      <td>330</td>
      <td>Universal hot reload and build automation</td>
    </tr>
  </tbody>
</table>

<h2 id="the-team-you-build">The team you build</h2>

<p>A 10X engineer is about talent. Some people are just faster and think clearer.</p>

<p>A 100X engineer is about systems. Peter manages 5-10 AI agents at any given moment - each one capable of doing the work of a 10X engineer. He built the tools that make each agent effective, and the systems that let him run many of them at once.</p>

<p>In the AI age, every engineer can have their own team. The ones who build the best agent systems are on the path to 100X.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[AI Gave Birth to the 100X Engineer]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/100x_engineer.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/100x_engineer.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">I Made MCP 94% Cheaper (And It Only Took One Command)</title><link href="https://kanyilmaz.me/2026/02/23/cli-vs-mcp.html" rel="alternate" type="text/html" title="I Made MCP 94% Cheaper (And It Only Took One Command)" /><published>2026-02-23T00:00:00+00:00</published><updated>2026-02-23T00:00:00+00:00</updated><id>https://kanyilmaz.me/2026/02/23/cli-vs-mcp</id><content type="html" xml:base="https://kanyilmaz.me/2026/02/23/cli-vs-mcp.html"><![CDATA[<h1 id="i-made-mcp-94-cheaper-and-it-only-took-one-command">I Made MCP 94% Cheaper (And It Only Took One Command)</h1>

<p><img src="/assets/posts/cli_vs_mcp.png" alt="" /></p>

<p>Every AI agent using MCP is quietly overpaying. Not on the API calls themselves - those are fine. The tax is on the instruction manual.</p>

<p>Before your agent can do anything useful, it needs to know what tools are available. MCP’s answer is to dump the entire tool catalog into the conversation as JSON Schema. Every tool, every parameter, every option.</p>

<blockquote>
  <p>CLI does the same job but cheaper.</p>
</blockquote>

<h2 id="same-tools-different-packaging">Same tools, different packaging</h2>

<p>I took an MCP server and generated a CLI from it using <a href="https://clihub.sh">CLIHub</a>. Same tools, same OAuth, same API underneath. Two things change: what loads at session start, and how the agent calls a tool.</p>

<p>The numbers below assume a typical setup: 6 MCP servers, 14 tools each, 84 tools total.</p>

<h3 id="1-session-start">1. Session start</h3>

<p>MCP dumps every tool schema into the conversation upfront. CLI uses a lightweight skill listing - just names and locations. The agent discovers details when it needs them.<sup><a href="#fn1">1</a></sup></p>

<div class="comparison-grid">
<div class="comparison-block">
<strong>MCP loads this (~185 tokens * 84 = 15540):</strong>
<pre><code>{
  "name": "notion-search",
  "description": "Search for pages and databases",
  "inputSchema": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "The search query text"
      },
      "filter": {
        "type": "object",
        "properties": {
          "property": { "type": "string", "enum": ["object"] },
          "value": { "type": "string", "enum": ["page", "database"] }
        }
      }
    }
  },
  {
  "name": "notion-fetch",
  ...
  }
  ... (84 tools total)
}
</code></pre>
</div>
<div class="comparison-block">
<strong>CLI loads this (~50 tokens * 6 = 300):</strong>
<pre><code>&lt;available_tools&gt;
  &lt;tool&gt;
    &lt;name&gt;notion&lt;/name&gt;
    &lt;description&gt;CLI for Notion&lt;/description&gt;
    &lt;location&gt;~/bin/notion&lt;/location&gt;
  &lt;/tool&gt;
  &lt;tool&gt;
    &lt;name&gt;linear&lt;/name&gt;
    ...
  &lt;/tool&gt;
  ... (6 tools total)
&lt;/available_tools&gt;</code></pre>
</div>
</div>

<h3 id="2-tool-call">2. Tool call</h3>

<p>Once the agent knows what’s available, it still needs to call a tool.</p>

<div class="comparison-grid">
<div class="comparison-block">
<strong>MCP tool call (~30 tokens):</strong>
<pre><code>{
  "tool_call": {
    "name": "notion-search",
    "arguments": {
      "query": "my search"
    }
  }
}</code></pre>
</div>
<div class="comparison-block">
<strong>CLI tool call (~610 tokens):</strong>
<pre><code># Step 1: Discover tools (~4 + ~600 tokens)

$ notion --help
notion search &lt;query&gt; [--filter-property ...]
  Search for pages and databases
notion create-page &lt;title&gt; [--parent-id ID]
  Create a new page
... 12 more tools

------------------------------------------------

# Step 2: Execute (~6 tokens)

$ notion search "my search"</code></pre>
</div>
</div>

<p>MCP’s call is cheaper because definitions are pre-loaded. CLI pays at discovery time - <code class="language-plaintext highlighter-rouge">--help</code> returns the full command reference (~600 tokens for 14 tools), then the agent knows what to execute.</p>

<table>
  <thead>
    <tr>
      <th>Tools used</th>
      <th>MCP</th>
      <th>CLI</th>
      <th>Savings</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Session start</td>
      <td>~15,540</td>
      <td>~300</td>
      <td>98%</td>
    </tr>
    <tr>
      <td>1 tool</td>
      <td>~15,570</td>
      <td>~910</td>
      <td>94%</td>
    </tr>
    <tr>
      <td>10 tools</td>
      <td>~15,840</td>
      <td>~964</td>
      <td>94%</td>
    </tr>
    <tr>
      <td>100 tools</td>
      <td>~18,540</td>
      <td>~1,504</td>
      <td>92%</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>CLI uses ~94% fewer tokens overall.</p>
</blockquote>

<h2 id="anthropics-tool-search">Anthropic’s Tool Search</h2>

<p>Anthropic launched <a href="https://www.anthropic.com/engineering/advanced-tool-use">Tool Search</a> which loads a search index instead of every schema then uses fetch tools on demand. It typically drops token usage by 85%.</p>

<p>Same idea as CLI’s lazy loading. But when Tool Search fetches a tool, it still pulls the full JSON Schema.<sup><a href="#fn2">2</a></sup></p>

<table>
  <thead>
    <tr>
      <th>Tools used</th>
      <th>MCP</th>
      <th>TS</th>
      <th>CLI</th>
      <th>Savings vs TS</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Session start</td>
      <td>~15,540</td>
      <td>~500</td>
      <td>~300</td>
      <td>40%</td>
    </tr>
    <tr>
      <td>1 tool</td>
      <td>~15,570</td>
      <td>~3,530</td>
      <td>~910</td>
      <td>74%</td>
    </tr>
    <tr>
      <td>10 tools</td>
      <td>~15,840</td>
      <td>~3,800</td>
      <td>~964</td>
      <td>75%</td>
    </tr>
    <tr>
      <td>100 tools</td>
      <td>~18,540</td>
      <td>~12,500</td>
      <td>~1,504</td>
      <td>88%</td>
    </tr>
  </tbody>
</table>

<p>Tool Search is more expensive, and it’s Anthropic-only. CLI is cheaper and works with any model.</p>

<h2 id="clihub">CLIHub</h2>

<p>I struggled finding CLIs for many tools so built CLIHub a directory of CLIs for agent use.</p>

<p>Open sourced the converter - <a href="https://github.com/thellimist/clihub">one command</a> to create CLIs from MCPs.</p>

<hr />

<div class="footnotes">
<p><a name="fn1">1.</a> I like using formatting of Openclaw's <a href="https://github.com/openclaw/openclaw/blob/9363c320d8ffe29290906752fab92621da02c3f7/docs/concepts/system-prompt.md?plain=1#L102-L120"><code>available_skills</code> block</a> for CLI. It can be modified to other formats.</p>
<p><a name="fn2">2.</a> Tool Search: ~500 session start + ~3K per search (loads 3-5 tools) + ~30 per call. Assumes 1 search for 1-10 calls, 3 searches for 100.</p>
</div>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[I Made MCP 94% Cheaper (And It Only Took One Command)]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/cli_vs_mcp.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/cli_vs_mcp.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Coding Agents Are at Stage 5 Everything Else Is Stuck at Stage 1</title><link href="https://kanyilmaz.me/2026/02/19/five-stages-of-ai-agents.html" rel="alternate" type="text/html" title="Coding Agents Are at Stage 5 Everything Else Is Stuck at Stage 1" /><published>2026-02-19T00:00:00+00:00</published><updated>2026-02-19T00:00:00+00:00</updated><id>https://kanyilmaz.me/2026/02/19/five-stages-of-ai-agents</id><content type="html" xml:base="https://kanyilmaz.me/2026/02/19/five-stages-of-ai-agents.html"><![CDATA[<h1 id="coding-agents-are-at-stage-5-everything-else-is-stuck-at-stage-1">Coding Agents Are at Stage 5 Everything Else Is Stuck at Stage 1</h1>

<blockquote>
  <p>Coding agents feel magical. You describe a task, walk away, and come back to a working pull request.</p>

  <p>Other AI agents (GTM, Marketing, Ops) hand you a to-do list and wish you luck.</p>
</blockquote>

<p>The models aren’t the problem. GPT, Claude, Gemini can all reason well enough. The problem is that most agents can’t actually <em>do</em> anything.</p>

<p>I built a multi-agent orchestration for SEO to test this. Goal-setting, task management, QA, parallel execution, specialized agents. The result? D-level work. The AI wasn’t dumb. It just <strong>couldn’t do the job</strong>.</p>

<p>I studied why some agent workflows work, and some do not. I found five stages that every agent workflow needs. Each one is a visible jump in what the agent can actually pull off.</p>

<h2 id="the-five-stages">The Five Stages</h2>

<table>
  <thead>
    <tr>
      <th>Stage</th>
      <th>Name</th>
      <th>What It Means</th>
      <th>Examples</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td><strong>Tool Access</strong></td>
      <td>The agent can read, write, and execute everything it needs</td>
      <td>Bash, browser, CMS write access</td>
    </tr>
    <tr>
      <td>2</td>
      <td><strong>Planning</strong></td>
      <td>Breaks work into steps, tackles them sequentially</td>
      <td>Task lists, dependency ordering, step-by-step execution</td>
    </tr>
    <tr>
      <td>3</td>
      <td><strong>Verification</strong></td>
      <td>Tests its own output, catches mistakes, iterates</td>
      <td>Running tests, confirming action succeeded</td>
    </tr>
    <tr>
      <td>4</td>
      <td><strong>Personalization</strong></td>
      <td>Follows your specific conventions, style, constraints</td>
      <td>SOUL.md, SKILL.md, AGENTS.md</td>
    </tr>
    <tr>
      <td>5</td>
      <td><strong>Memory &amp; Orchestration</strong></td>
      <td>Manages context, delegates to other agents, works in parallel</td>
      <td>Sub-agents, Planner, Orchestrator, Worker, QA agents. Parallel task execution</td>
    </tr>
  </tbody>
</table>

<p>I grade agent output E through A. Each stage roughly moves the agent up one grade.</p>

<table>
  <thead>
    <tr>
      <th>Grade</th>
      <th>What It Looks Like</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>E</strong></td>
      <td>Can barely start the task</td>
    </tr>
    <tr>
      <td><strong>D</strong></td>
      <td>Understands the problem but can’t execute</td>
    </tr>
    <tr>
      <td><strong>C</strong></td>
      <td>Usable with heavy hand-holding</td>
    </tr>
    <tr>
      <td><strong>B</strong></td>
      <td>Works with light review</td>
    </tr>
    <tr>
      <td><strong>A</strong></td>
      <td>You trust it and walk away</td>
    </tr>
  </tbody>
</table>

<h2 id="coding-agents-proved-the-model">Coding Agents Proved the Model</h2>

<p>The history of coding agents maps perfectly to these stages.</p>

<table>
  <thead>
    <tr>
      <th>System</th>
      <th>Year</th>
      <th>Stage</th>
      <th>Grade</th>
      <th>What Changed</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>OpenAI</strong></td>
      <td>2022</td>
      <td>0</td>
      <td>E</td>
      <td>Glorified search engine. You copy paste everything from GPT to your editor. AI never touches your codebase.</td>
    </tr>
    <tr>
      <td><strong>Cursor</strong></td>
      <td>2023</td>
      <td>1</td>
      <td>D</td>
      <td>Tool access. It could read and write files. Understands your codebase, and updates. No need to copy paste code. The result was still low quality code. Needed constant audits.</td>
    </tr>
    <tr>
      <td><strong>Claude Code</strong></td>
      <td>2025</td>
      <td>1–4</td>
      <td>B</td>
      <td>Bash access allowing it to run scripts, step-by-step planning, running tests to check its own work, reading your project conventions via AGENTS.md. It disrupted the market almost overnight.</td>
    </tr>
    <tr>
      <td><strong>Future Systems</strong></td>
      <td>2026</td>
      <td>5</td>
      <td>A</td>
      <td>Codex/Claude are now working on stage 5. Spawn custom agents with a lead to review and QA to test. Each agent personalized, memory/context refreshed per task. <a href="https://github.com/gsd-build/get-shit-done/">GSD</a>, <a href="https://github.com/yidakee/vibe-better-with-claude-code-vbw">VBW</a> like orchestrators successfully take the flow to Stage 5.</td>
    </tr>
  </tbody>
</table>

<h2 id="everything-else-is-stuck-at-stage-1">Everything Else Is Stuck at Stage 1</h2>

<p>I built a multi-agent SEO system with stages 2 through 5 - planning, verification, QA agents, specialized skills, parallel execution. Then I actually ran it. It did not work.</p>

<p>The agent had no access to Google Analytics, Search Console and ahrefs. Once I fixed that, it analyzed everything and produced a solid action list. Then it couldn’t execute any of it - no write access to the CMS. It did not work.</p>

<p>I gave it access. It started updating the website, fixing technical audits, writing and publishing blogs. Real output. It worked?</p>

<p>Then it hit the next wall: Product Hunt launches, G2, PR campaigns, backlink creation. Fifteen more tools needed before the list was done.</p>

<p>Each time I unblocked it, it performed. That’s the pattern. To make it useful, needs to add many many tools accesses.</p>

<p>Here’s what this gap looks like across different workflows:</p>

<table>
  <thead>
    <tr>
      <th>Workflow</th>
      <th>What Coding Agents Have</th>
      <th>What Others Need</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Coding</strong></td>
      <td>Bash, file read/write</td>
      <td><em>(Solved)</em></td>
    </tr>
    <tr>
      <td><strong>SEO</strong></td>
      <td>—</td>
      <td>GA4, Search Console, Ahrefs, CMS write access, Lighthouse, G2, Social accounts, Wiki, Youtube, Email..</td>
    </tr>
    <tr>
      <td><strong>Sales</strong></td>
      <td>—</td>
      <td>CRM read/write, email send, calendar, enrichment APIs, email verification, analytics..</td>
    </tr>
    <tr>
      <td><strong>Marketing</strong></td>
      <td>—</td>
      <td>Ad platforms, analytics, social scheduling, design tools, video tools, social accounts..</td>
    </tr>
  </tbody>
</table>

<p>Same wall, every time. The AI can think. It can plan. It can check its own work. It just can’t touch anything.</p>

<h2 id="the-industry-has-it-backwards">The Industry Has It Backwards</h2>

<p>Most AI agent startups are building better planning, better orchestration, better multi-agent frameworks. Stages 2 through 5.</p>

<blockquote>
  <p>Until a non-coding agent can access its tools as easily as Claude Code runs <code class="language-plaintext highlighter-rouge">bash</code>, the output stays at D grade regardless of how smart the orchestration is.</p>
</blockquote>

<p>MCP, Skills are the main attempts to solve agent access. So are tool-use platforms and API aggregators. They only partially work. We’re still early. There is no consistent way to access dozens of tools reliably.</p>

<p>Coding had it easy: bash is the universal tool, one interface to everything. Every other domain needs dozens of specialized integrations, each with its own auth, rate limits, and data quirks.</p>

<h2 id="what-happens-next">What Happens Next</h2>

<p>Coding agents will keep polishing stage 5. Better memory, smarter delegation, more parallel work. 2026 we’ll see coding orchestration going mainstream.</p>

<p>The big jumps are elsewhere. The first sales agent or accounting agent that fully solves stage 1 will feel like Claude Code did when people first used it. That moment where you stop watching the agent and start trusting it.</p>

<p><a href="/2026/03/14/from-0-to-1000-skills" class="blog-link-card">
<span class="blog-link-card-title">Read more on how to make “Stage 4: Personalization” work for more than 1,000 skills</span>
<span class="blog-link-card-arrow">↗</span>
</a></p>

<p>If you need help building vertical AI agents that actually work, reach out: <a href="mailto:kan.yilmaz.me@gmail.com">kan.yilmaz.me@gmail.com</a></p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[Coding Agents Are at Stage 5 Everything Else Is Stuck at Stage 1]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/five_stages.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/five_stages.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">We Are Barbaric, Here Is Why</title><link href="https://kanyilmaz.me/2025/09/05/decrease-pain.html" rel="alternate" type="text/html" title="We Are Barbaric, Here Is Why" /><published>2025-09-05T00:00:00+00:00</published><updated>2025-09-05T00:00:00+00:00</updated><id>https://kanyilmaz.me/2025/09/05/decrease-pain</id><content type="html" xml:base="https://kanyilmaz.me/2025/09/05/decrease-pain.html"><![CDATA[<h1 id="we-are-barbaric-here-is-why">We Are Barbaric, Here Is Why</h1>

<p><img src="/assets/posts/pain_barbar.jpeg" alt="" /></p>

<p>As societies mature, the total amount of acceptable pain decreases. What was once normal becomes barbaric. What’s acceptable today will be unthinkable tomorrow.</p>

<h2 id="pain-reduction-through-history">Pain Reduction Through History</h2>

<p>Here’s what humans used to consider normal:</p>

<table>
  <thead>
    <tr>
      <th>Era</th>
      <th>Pain That Was Normal</th>
      <th>How It Ended</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Ancient (384 BCE)</strong></td>
      <td>Burying servants alive with rulers</td>
      <td>China banned it, used clay figures instead <sup><a href="https://terracottawarriorsmuseum.com/why-terracotta-warriors-were-built/">1</a></sup></td>
    </tr>
    <tr>
      <td><strong>Classical (97 BCE)</strong></td>
      <td>Fathers legally killing newborns they didn’t want</td>
      <td>This was legal under patria potestas in Rome <sup><a href="https://penelope.uchicago.edu/Thayer/E/Roman/Texts/secondary/SMIGRA*/Patria_Potestas.html">2</a></sup></td>
    </tr>
    <tr>
      <td><strong>Late Antiquity (500 CE)</strong></td>
      <td>Forced religious conversions</td>
      <td>Church and imperial reforms stopped it <sup><a href="https://academic.oup.com/forced-conversion/">3</a></sup></td>
    </tr>
    <tr>
      <td><strong>Medieval (1215)</strong></td>
      <td>Marrying 9-year-old girls to old men</td>
      <td>Church gradually raised marriage age <sup><a href="https://en.wikipedia.org/wiki/Marriageable_age">4</a></sup></td>
    </tr>
    <tr>
      <td><strong>Early Modern (1666)</strong></td>
      <td>Young boys seized from families, converted, forced into millitary service</td>
      <td>Abolished under Sultan Mehmed IV <sup><a href="https://en.wikipedia.org/wiki/Devshirme">5</a></sup></td>
    </tr>
    <tr>
      <td><strong>Industrial (1833)</strong></td>
      <td>Child factory labor</td>
      <td>UK banned it, mandated school instead <sup><a href="https://www.parliament.uk/about/living-heritage/transformingsociety/livinglearning/19thcentury/overview/factoryact/">6</a></sup></td>
    </tr>
    <tr>
      <td><strong>Contemporary (2024)</strong></td>
      <td>Gayness is a mental disease</td>
      <td>Gay marriage is allowed in many countries <sup><a href="https://en.wikipedia.org/wiki/Same-sex_marriage">7</a></sup></td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>Each generation looks back at the previous one and asks: “How could they?”</p>
</blockquote>

<h2 id="three-types-of-pain-weve-reduced">Three Types of Pain We’ve Reduced</h2>

<h3 id="1-physical-pain">1. Physical Pain</h3>

<p>The most obvious category.</p>
<ul>
  <li>Torture as legal punishment (Prussia 1740 <sup><a href="https://courses.lumenlearning.com/suny-hccc-worldhistory2/chapter/prussia-under-frederick-the-great/">8</a></sup>, Sweden 1772 <sup><a href="https://nordstjernan.com/news/sweden/5740/">9</a></sup>)</li>
  <li>Gladiatorial killings (Rome 404 CE <sup><a href="https://penelope.uchicago.edu/encyclopaedia_romana/gladiators/gladiators.html">10</a></sup>)</li>
  <li>Dueling for honor (France 1626 <sup><a href="https://www.jstor.org/stable/1874270">11</a></sup>)</li>
  <li>Public executions as entertainment</li>
</ul>

<h3 id="2-systemic-pain">2. Systemic Pain</h3>

<p>Pain built into how society operates:</p>
<ul>
  <li>Homicide rates dropped 95% from medieval to modern times <sup><a href="https://www.vrc.crim.cam.ac.uk/system/files/documents/manuel-eisner-historical-trends-in-violence.pdf">12</a></sup></li>
  <li>Child mortality: 12.5M → 4.8M deaths/year (1990-2023) <sup><a href="https://data.unicef.org/topic/child-survival/under-five-mortality/">13</a></sup></li>
  <li>Unsafe water access: 2.1B people gained clean water (2000-2022) <sup><a href="https://data.unicef.org/resources/jmp-report-2023/">14</a></sup></li>
  <li>Cousin marriage: Banned in most Western countries by 1900s <sup><a href="https://americanreformer.org/2025/03/a-protestant-approach-to-first-cousin-marriage-bans/">15</a></sup></li>
</ul>

<h3 id="3-hidden-pain">3. Hidden Pain</h3>

<p>Pain we didn’t even recognize as pain:</p>
<ul>
  <li>Animal testing for cosmetics (45 countries banned by 2025) <sup><a href="https://www.britannica.com/procon/animal-testing-debate/International-Cosmetics-Animal-Testing-Bans">16</a></sup></li>
  <li>Wild animals in circuses (dozens of bans 2000s-2020s) <sup><a href="https://www.four-paws.org/campaigns-topics/topics/wild-animals/worldwide-circus-bans">17</a></sup></li>
  <li>Fur farming (production collapsed 2014-2024) <sup><a href="https://www.vox.com/future-perfect/421653/fur-farming-decline-animal-rights-mink-fixes">18</a></sup></li>
  <li>Child marriage (dropped from 1-in-4 to 1-in-5 women 2013→2024) <sup><a href="https://www.unicefusa.org/media-hub/reports/trends-forecast-ending-child-marriage-2030">19</a></sup></li>
</ul>

<h2 id="what-pain-are-we-solving-now">What Pain Are We Solving Now?</h2>

<p>Current trends show what’s disappearing:</p>

<table>
  <thead>
    <tr>
      <th>Pain Being Reduced</th>
      <th>Progress</th>
      <th>Timeline</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Deadly diseases</strong></td>
      <td>Guinea worm, HIV deaths plummeting</td>
      <td>1986→now <sup><a href="https://www.cartercenter.org/news/pr/2025/2024-guinea-worm-worldwide-cases-announcement.html">20</a></sup></td>
    </tr>
    <tr>
      <td><strong>Air pollution</strong></td>
      <td>Clean air acts, EV adoption, coal phase-outs</td>
      <td>2000s <sup><a href="https://www.who.int/teams/social-determinants-of-health/safety-and-mobility/global-status-report-on-road-safety-2023">21</a></sup></td>
    </tr>
    <tr>
      <td><strong>Factory farming</strong></td>
      <td>Lab meat rising</td>
      <td>2020s <sup><a href="https://gfi.org/marketresearch/">22</a></sup></td>
    </tr>
    <tr>
      <td><strong>Mental health stigma</strong></td>
      <td>Therapy normalized</td>
      <td>2010s <sup><a href="https://www.ncbi.nlm.nih.gov/pmc/">23</a></sup></td>
    </tr>
  </tbody>
</table>

<h2 id="what-pain-will-we-solve-next">What Pain Will We Solve Next?</h2>

<p><strong>Physical pain:</strong></p>
<ul>
  <li>Genetic disorder (designer babies)</li>
  <li>Needing to brush teeth</li>
  <li>Aging (treating it as a disease)</li>
  <li>Disabilities (prostetics organic eyes, ears, limbs)</li>
</ul>

<p><strong>Systemaic pain:</strong></p>
<ul>
  <li>2 billion without clean water</li>
  <li>150M children in labor</li>
  <li>700M people in extreme poverty</li>
  <li>1B living in slums</li>
</ul>

<p><strong>Hidden pain:</strong></p>
<ul>
  <li><span class="spoiler">We don’t know what we don’t know yet.</span></li>
</ul>

<p>&lt;/span&gt;</p>

<blockquote>
  <p>The pain we accept today will be tomorrow’s human rights violation.</p>
</blockquote>

<h2 id="sometimes-pain-increases">Sometimes Pain Increases</h2>

<p>Not all progress is linear. Sometimes we invent new ways to hurt before we learn to heal.</p>

<h3 id="the-pain-curve">The Pain Curve</h3>

<p>Most “pain increases” follow this lifecycle:</p>

<p><strong>Innovation → Pain spike → We adapt → Better world</strong></p>

<p><img src="/assets/posts/pain_curve.png" alt="" /></p>

<p>New tech creates pain. We notice it. Fix it. End up better.</p>

<h3 id="when-pain-gets-worse-before-it-gets-better">When Pain Gets Worse Before It Gets Better</h3>

<table>
  <thead>
    <tr>
      <th>Innovation</th>
      <th>Pain It Created</th>
      <th>How We Fixed It</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Cars</strong></td>
      <td>1.3M deaths/year at peak</td>
      <td>Seatbelts, airbags, traffic laws → safer than horses</td>
    </tr>
    <tr>
      <td><strong>Factories</strong></td>
      <td>Child labor, industrial accidents</td>
      <td>Labor laws, safety regulations → safer than farms</td>
    </tr>
    <tr>
      <td><strong>Leaded gasoline</strong></td>
      <td>Poisoned entire generation</td>
      <td>Banned globally → IQ recovery</td>
    </tr>
    <tr>
      <td><strong>Social media</strong></td>
      <td>Depression, addiction, polarization</td>
      <td>(Ongoing) Age limits, time limits, algorithm changes</td>
    </tr>
    <tr>
      <td><strong>Plastic</strong></td>
      <td>Microplastics in every human body</td>
      <td>(Ongoing) Biodegradable alternatives, cleanup tech</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>New tech creates new pain. Society notices. We fix it. End up better than before.</p>
</blockquote>

<p><img src="/assets/posts/pain_long_time.png" alt="" /></p>

<p>Overtime, the pattern looks more like this, with lots of spikes. Where some pain takes 10 years, some takes 500 years to decrease.</p>

<h2 id="the-pattern">The Pattern</h2>

<ol>
  <li><strong>Recognition</strong>: Someone points out the pain</li>
  <li><strong>Resistance</strong>: “That’s just how things are”</li>
  <li><strong>Regulation</strong>: Laws and social norms restrict it</li>
  <li><strong>Replacement</strong>: Better alternatives emerge</li>
  <li><strong>Disgust</strong>: Future generations can’t believe we allowed it</li>
</ol>

<p>This pattern repeats. Always has. Always will.</p>

<h2 id="conclusion">Conclusion</h2>

<p>You can measure a society’s development by how much pain it considers unacceptable.</p>

<p>We went from burying servants with kings to thinking a stern email from HR is abuse. From burning witches to giving woman voting rights. From 6-year-olds in coal mines to mandatory kindergarten.</p>

<blockquote>
  <p>Every generation has blind spots. Ours does too.</p>
</blockquote>

<p>What pain do you accept today that your grandchildren won’t?</p>

<hr />

<h2 id="references">References</h2>

<p><sup>1</sup> <a href="https://terracottawarriorsmuseum.com/why-terracotta-warriors-were-built/">Terracotta Warriors Museum - Why Terracotta Warriors were Built</a><br />
<sup>2</sup> <a href="https://penelope.uchicago.edu/Thayer/E/Roman/Texts/secondary/SMIGRA*/Patria_Potestas.html">Penelope - Patria Potestas: Fathers’ Life-and-Death Authority in Roman Law</a><br />
<sup>3</sup> <a href="https://academic.oup.com/forced-conversion/">Oxford Academic - Forced Conversion in Late Antiquity</a><br />
<sup>4</sup> <a href="https://en.wikipedia.org/wiki/Marriageable_age">Wikipedia - Marriageable Age</a><br />
<sup>5</sup> <a href="https://en.wikipedia.org/wiki/Devshirme">Wikipedia - Devshirme</a><br />
<sup>6</sup> <a href="https://www.parliament.uk/about/living-heritage/transformingsociety/livinglearning/19thcentury/overview/factoryact/">UK Parliament - The 1833 Factory Act</a><br />
<sup>7</sup> <a href="https://en.wikipedia.org/wiki/Same-sex_marriage">Wikipedia - Same-sex Marriage</a><br />
<sup>8</sup> <a href="https://courses.lumenlearning.com/suny-hccc-worldhistory2/chapter/prussia-under-frederick-the-great/">Lumen Learning - Prussia Under Frederick the Great</a><br />
<sup>9</sup> <a href="https://nordstjernan.com/news/sweden/5740/">Nordstjernan - Swedish History</a><br />
<sup>10</sup> <a href="https://penelope.uchicago.edu/encyclopaedia_romana/gladiators/gladiators.html">Penelope - The Roman Gladiator</a><br />
<sup>11</sup> <a href="https://www.jstor.org/stable/1874270">JSTOR - Honor versus Absolutism: Richelieu’s Fight against Dueling</a><br />
<sup>12</sup> <a href="https://www.vrc.crim.cam.ac.uk/system/files/documents/manuel-eisner-historical-trends-in-violence.pdf">VRC Cambridge - Long-Term Historical Trends in Violent Crime</a><br />
<sup>13</sup> <a href="https://data.unicef.org/topic/child-survival/under-five-mortality/">UNICEF Data - Under-five mortality</a><br />
<sup>14</sup> <a href="https://data.unicef.org/resources/jmp-report-2023/">UNICEF Data - Progress on household drinking water</a><br />
<sup>15</sup> <a href="https://americanreformer.org/2025/03/a-protestant-approach-to-first-cousin-marriage-bans/">American Reformer - A Protestant Approach to First Cousin Marriage Bans</a><br />
<sup>16</sup> <a href="https://www.britannica.com/procon/animal-testing-debate/International-Cosmetics-Animal-Testing-Bans">Encyclopedia Britannica - International Cosmetics Animal Testing Bans</a><br />
<sup>17</sup> <a href="https://www.four-paws.org/campaigns-topics/topics/wild-animals/worldwide-circus-bans">Four Paws - Worldwide Circus Bans</a><br />
<sup>18</sup> <a href="https://www.vox.com/future-perfect/421653/fur-farming-decline-animal-rights-mink-fixes">Vox - The biggest animal welfare victory of the 21st century</a><br />
<sup>19</sup> <a href="https://www.unicefusa.org/media-hub/reports/trends-forecast-ending-child-marriage-2030">UNICEF USA - Child Marriage: Latest Trends and Future Prospects</a><br />
<sup>20</sup> <a href="https://www.cartercenter.org/news/pr/2025/2024-guinea-worm-worldwide-cases-announcement.html">The Carter Center - Guinea Worm Cases 2024</a><br />
<sup>21</sup> <a href="https://www.who.int/teams/social-determinants-of-health/safety-and-mobility/global-status-report-on-road-safety-2023">WHO - Global status report on road safety 2023</a><br />
<sup>22</sup> <a href="https://gfi.org/marketresearch/">The Good Food Institute - U.S. Plant-Based Market</a>; <a href="https://www.businesswire.com/news/home/20201201006273/en/Singapore-Becomes-First-Country-to-Approve-Cultured-Meat">Business Wire - Singapore Cultivated Meat Approval</a><br />
<sup>23</sup> <a href="https://www.ncbi.nlm.nih.gov/pmc/">PMC - Mental Health Stigma Reduction 2008-2019</a>; <a href="https://www.cdc.gov/nchs/products/databriefs/db419.htm">CDC - Mental Health Treatment Uptake</a></p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[We Are Barbaric, Here Is Why]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/pain_barbar.jpeg" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/pain_barbar.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">The AI Shift Is Real — But Senior Engineers Are Slow to Adapt</title><link href="https://kanyilmaz.me/2025/05/30/code-evolution.html" rel="alternate" type="text/html" title="The AI Shift Is Real — But Senior Engineers Are Slow to Adapt" /><published>2025-05-30T00:00:00+00:00</published><updated>2025-05-30T00:00:00+00:00</updated><id>https://kanyilmaz.me/2025/05/30/code-evolution</id><content type="html" xml:base="https://kanyilmaz.me/2025/05/30/code-evolution.html"><![CDATA[<h1 id="the-ai-shift-is-real--but-senior-engineers-are-slow-to-adapt">The AI Shift Is Real — But Senior Engineers Are Slow to Adapt</h1>

<p><img src="/assets/posts/code_evolution.png" alt="" /></p>

<p>Writing software has evolved multiple times since its creation. It evolved again - twice!</p>

<table>
  <thead>
    <tr>
      <th>Evolution</th>
      <th>Years</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Card Punching</td>
      <td>1940 – 1975</td>
      <td>Machine code on punched cards.</td>
    </tr>
    <tr>
      <td>High-Level Languages</td>
      <td>1975 – 2007</td>
      <td>High-level languages (C, Python, JS) abstracted away hardware and democratized programming.</td>
    </tr>
    <tr>
      <td>Search-Driven Engineering</td>
      <td>2008 – 2020</td>
      <td>Stack Overflow + Google shift the craft to copy-modify-ship; answers trump memorisation.</td>
    </tr>
    <tr>
      <td>AI Pair Programming</td>
      <td>2023 – 2025</td>
      <td>AI IDEs like GitHub Copilot, Cursor autocompletes whole blocks; engineers review instead of write.</td>
    </tr>
    <tr>
      <td>Agentic Engineering</td>
      <td>2025 – present</td>
      <td>Cloud agents like Codex and Devin turns sync workflow to async workflow. Devs orchestrate and review.</td>
    </tr>
  </tbody>
</table>

<details>
<summary>Card Punching</summary>

<ul>
  <li>Programmers wrote their code on paper</li>
  <li>A programmer used a keypunch machine to punch holes into paper cards</li>
  <li>You fed the deck of cards to a computer center where an operator loaded the cards into the mainframe</li>
  <li>Each card was read by the machine and results were printed on a paper or new cards.</li>
</ul>

</details>

<details>
<summary>High-Level Languages</summary>

<ul>
  <li>Programmers transitioned from machine code to languages like C, Python, JS</li>
  <li>Code was written in a more human-readable syntax. Had less need to understand hardware specifics.</li>
  <li>Compilers translated high-level code into machine code for execution</li>
  <li>Debugging involved interpreting error messages and using debuggers to step through code</li>
</ul>


</details>

<details>
<summary>Search-Driven Engineering</summary>

<ul>
  <li>Programmers searched for solutions on Stack Overflow, Google, and forums</li>
  <li>Coding involved copy-pasting, adapting, and integrating code snippets from the web</li>
  <li>Debugging often meant searching error messages and finding fixes online</li>
  <li>Documentation and Q&amp;A sites became the primary learning resources</li>
  <li>The skill shifted from memorizing syntax to quickly finding and evaluating code examples</li>
</ul>


</details>

<details>
<summary>AI Pair Programming</summary>

<ul>
  <li>Programmers use AI-powered tools (like GitHub Copilot, Cursor) that suggest or write code in real time</li>
  <li>Coding shifts from writing lines to prompting, reviewing, editing with the help of AI.</li>
  <li>Engineers write only 10–20% of the code, whereas AI writes the majority of the code.</li>
  <li>Debugging often involves prompting the AI for fixes or explanations</li>
  <li>Collaboration with AI becomes a core part of the workflow</li>
</ul>

</details>

<details>
<summary>Agentic Engineering</summary>

<ul>
  <li>Engineers orchestrate multiple AI agents or cloud-based tools to work on tasks in parallel</li>
  <li>Programming becomes more about managing, delegating, and reviewing work done by autonomous agents</li>
  <li>Tasks like refactoring, testing, and opening pull requests can be automated and run asynchronously</li>
  <li>The developer's role shifts to project management and quality assurance of agent outputs</li>
  <li>Engineers often don’t write code — they review and manage outputs from agents.</li>
</ul>
</details>

<h2 id="so-much-change-in-so-little-time">So much change in so little time</h2>
<p>Software is probably the fastest evolving industry in the world. Frontend engineers already relearn a new JS framework every 5 years.</p>

<p>With the newest innovations, our industry is not just moving fast, it’s having decades worth of evolution in months to years timeframe.</p>

<p>This pace forces engineers to relearn their job so quickly that most go through the five stages of grief - denial, anger, bargaining, depression, and acceptance.</p>

<h2 id="senior-engineers-are-in-denial">Senior Engineers are in denial</h2>

<p>Senior engineers will have a harder time for a few reasons</p>
<ol>
  <li>No one would use AI if it was worse than them. Senior Engineers are better so AI getting to their level takes longer.</li>
  <li>AI is already <a href="https://openai.com/index/openai-o3-mini/">better</a> than majority of the developers. However, this is still sandbox environment. For AI in practice to be better than Senior Engineers, engineers need to spend time to learn new workflows, ways to make AI work for them. I call this “activation energy” to learn the new workflow. From my personal experience a junior might spend 2 weeks of activation energy and it’s already better, but a senior takes around 4 to 6 weeks until they figure out how to make an AI assisted workflow to be better than the current workflow they have.</li>
</ol>

<h2 id="junior-engineers-have-the-upper-hand">Junior Engineers have the upper hand</h2>

<p>Junior Engineers for the first time in history have advantage over Senior Engineers.</p>
<ol>
  <li>They are worse developers, making the activation energy needed to make AI better than them being significantly less than a senior.</li>
  <li>Being young and having high energy allows them to spend more time and evolve.</li>
</ol>

<p>Asking senior engineers to spend 4 to 6 weeks is way too much for majority of them, but here’s the truth: the tools level the playing field. Senior engineers who adapt will outperform everyone. Those who don’t may find junior developers outrunning them — not in knowledge, but in raw output</p>

<h1 id="conclusion">Conclusion</h1>

<p>Seniors being in denial and juniors adopting to the evolution in our industry is resulting in a young 23 year old taking a lot of 1-2 hour tasks and deliver 20 of them in a single day surpassing seniors in certain ways.</p>

<p>I foresee this trend to continue for 5 years until mass market adopts the major evolutions that’s happening in the industry.</p>

<p>If you haven’t evolved with the industry yet, maybe it’s time to reconsider to spend the activation energy required to learn the new workflows. Just note that everything might change again in the next year.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[The AI Shift Is Real — But Senior Engineers Are Slow to Adapt]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/code_evolution.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/code_evolution.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Land with no aunties</title><link href="https://kanyilmaz.me/2025/03/28/aunties.html" rel="alternate" type="text/html" title="Land with no aunties" /><published>2025-03-28T00:00:00+00:00</published><updated>2025-03-28T00:00:00+00:00</updated><id>https://kanyilmaz.me/2025/03/28/aunties</id><content type="html" xml:base="https://kanyilmaz.me/2025/03/28/aunties.html"><![CDATA[<h1 id="land-with-no-aunties"><strong>Land with no aunties</strong></h1>

<p><img src="/assets/posts/land_with_no_aunties.png" alt="" /></p>

<p>For a system to work, there needs to be a regulators (negative feedback loop), to ensure the system doesn’t go off the rails.</p>

<p>Society is a system, which is regulated by <del>law</del> culture, and enforced by <del>law enforcement</del> aunties</p>

<blockquote>
  <p>Aunties is a term in Asian culture representing an older lady—relative or not—who’s always ready to stuff you with snacks, dish out unsolicited life advice, and side-eye your questionable fashion choices.</p>
</blockquote>

<h2 id="culture-creates-laws"><strong>Culture Creates Laws</strong></h2>

<p>People create laws based on what they want to see in their society. Law codifies cultural rules.</p>

<p>Here are a few examples that show culture creates laws, rather than the other way around.</p>

<table>
  <thead>
    <tr>
      <th>Cultural Norm</th>
      <th>Country</th>
      <th>Legal Manifestation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Don’t marry someone from a different race/religion</strong></td>
      <td>India</td>
      <td>Special Marriage Act (1954) vs. Anti-Conversion Laws (e.g., Uttar Pradesh 2021) restrict interfaith marriage.</td>
    </tr>
    <tr>
      <td><strong>Obey your in-laws, even if they’re wrong</strong></td>
      <td>Japan</td>
      <td>Historical Civil Code (pre-1947, Art. 750) required wives to adopt husband’s family registry.</td>
    </tr>
    <tr>
      <td><strong>Your biological clock is ticking</strong></td>
      <td>China</td>
      <td>Marriage Law (1980, amended 2001) emphasized child-bearing within marriage.</td>
    </tr>
    <tr>
      <td><strong>Don’t talk back to elders</strong></td>
      <td>South Korea</td>
      <td>Confucian values in Civil Code promote filial piety, historically including legal obligations.</td>
    </tr>
    <tr>
      <td><strong>Don’t spend too much time online</strong></td>
      <td>China</td>
      <td>Cybersecurity Law (2017) enables strict control over online behavior.</td>
    </tr>
    <tr>
      <td><strong>Your skirt is too short</strong></td>
      <td>Iran</td>
      <td>Islamic dress codes make skirts above the knee illegal.</td>
    </tr>
  </tbody>
</table>

<h2 id="aunties-regulate-culture"><strong>Aunties Regulate Culture</strong></h2>

<p>When I was a kid, there would be an auntie yelling from the balcony, “Don’t play with that, you’ll get hurt.”. Another auntie would look from the window and snitch to my parents that I was holding hands with a girl. During COVID-19, I was on my way to the basketball court without wearing a mask. An auntie warned me saying, “Young man, wear your mask until you reach the court.” (1) I am 30 years old (2) the court was 20 steps away…</p>

<p>Honestly, I hate these reactions from aunties. Who are they to tell me what to do? But… they were right. They were the ones who were looking out for me and everyone else in society.</p>

<p>Below are the common judgements by aunties.</p>

<p>Aunties tell you not what you want to hear, but what you need to hear.</p>

<table>
  <thead>
    <tr>
      <th>Judgment</th>
      <th>Underlying Belief</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Your biological clock is ticking.</strong></td>
      <td>Women must reproduce before a certain age</td>
    </tr>
    <tr>
      <td><strong>Don’t marry for love, marry smart.</strong></td>
      <td>Love fades, security lasts</td>
    </tr>
    <tr>
      <td><strong>That’s not a real job.</strong></td>
      <td>Non-traditional careers are harder to feed a family</td>
    </tr>
    <tr>
      <td><strong>Divorce is shameful.</strong></td>
      <td>Marriage is permanent, even if unhappy</td>
    </tr>
    <tr>
      <td><strong>Why don’t you have children yet?</strong></td>
      <td>Parenthood is a duty, especially after marriage</td>
    </tr>
    <tr>
      <td><strong>Why are you still renting?</strong></td>
      <td>Owning property = success and security</td>
    </tr>
    <tr>
      <td><strong>You must serve food to guests, no matter what.</strong></td>
      <td>Taking care of community sacred, even at personal cost</td>
    </tr>
  </tbody>
</table>

<blockquote>
  <p>Aunties tell you not what you want to hear, but what you need to hear.</p>
</blockquote>

<h2 id="land-with-no-aunties-1"><strong>Land with no aunties</strong></h2>

<p>Nowadays, in Western countries &amp; big cities, there are significantly fewer aunties to regulate society. This is caused by various factors like increased individualism, urban anonymity, and the decline of multigenerational households.</p>

<p>There is a single land where there are no aunties. That is San Francisco.</p>

<p>A land with no aunties is a land with no cultural enforcers. Without enforcers, the system has no checks &amp; balances. This causes extreme shifts in culture. These shifts can be positive or negative for society. There is no check, and that’s the challenge. The path goes somewhere that no one knows if it’ll be good or bad.</p>

<p>With no aunties enforcing rules, individualism is all-time high in SF. People who couldn’t fit into society were accepted. This created interesting outcomes:</p>

<ul>
  <li>
    <p><strong>Misfits were welcome.</strong> I met a community of Pagans where they couldn’t fit in LA, Tokyo or Paris but fit in SF. Because no one is judged. People who couldn’t fit anywhere else could now have a home. There are many more misfits from Hippies, LBTQ, Homeless, CyberPunk, Techies etc. were all accepted by SF.</p>
  </li>
  <li>
    <p><strong>Bad actors are welcome.</strong> If you meet an average SF person, they would be very nice people, well-spoken, and well-educated. But, why is SF full of homeless, drug addict people. The society values individualism so much that it’s ok to have people in misery, defecating in public. A culture of accepting misfits also accepts these people to exist in their community. If you go to Japan, India or Turkey — if there is someone with bad communal behaviours, the aunties will take care of the problem. If a guy is peeing on the street, the aunties will attack him with kitchen utensils. If homeless, will provide shelter &amp; food, or call the authorities. If drug addict, they will shame and call the cops. In the end, that person will either obey the community rules or stop being in their community.</p>
  </li>
  <li>
    <p><strong>Innovators are welcome.</strong> SF is known for its tech. The reason is that in other places kids are encouraged to be doctors/lawyers, buy a house, and have kids. In SF, you are you. Do whatever you want. Take risks even if it means you can lose everything. This acceptance of risk allows the best innovating minds to experiment. The majority fail, but some succeed. Those some turn out to be people inventing semiconductors, personal computers, internet, smartphones, EVs, AI, and more. Modern technology is created in SF by risk takers.</p>
  </li>
  <li>
    <p><strong>Extreme ideologies are welcome.</strong> If a behaviour is accepted, people will do that behaviour more. They will try to push the limits. The results are very clear in SF. Innovator extremists turns into Longtermism, Cyber-Libertarianism, Transhumanism. Gay extremists turns into Sexual Liberalism, Nudism, Kinkism, Queerism, Postgenderism.</p>
  </li>
</ul>

<h2 id="where-there-are-no-aunties-new-aunties-are-created">Where there are no aunties, new aunties are created</h2>

<p>In the recent decade, Liberalism ideology had an integer overflow. Instead of aunties who have kids &amp; grandkids enforcing the culture, students in colleges became the enforcers of cultural norms. Society has reverted. Now you could only say what is allowed by these students. SF’s virtue is accepting you regardless of who you are. This turned into accepting only certain types of misfits and rejecting the majority of society &amp; cultures. SF’s ability to turn everything into extreme, made wokeism and cancel culture’s influence expand from SF to the rest of the global, enforcing all other cultures.</p>

<h2 id="conclusion">Conclusion</h2>

<p>I believe SF is unique in the world. It has its charm and flaws. In a world where everywhere is full of aunties, I believe there should be a land for the misfits. However, what we learned in the past half-century is that if a land does not have any aunties, it’ll create its own aunties.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[Land with no aunties]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/land_with_no_aunties.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/land_with_no_aunties.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Why Some Companies Thrive Remotely (And Others Fail)</title><link href="https://kanyilmaz.me/2025/03/14/remote-principles.html" rel="alternate" type="text/html" title="Why Some Companies Thrive Remotely (And Others Fail)" /><published>2025-03-14T00:00:00+00:00</published><updated>2025-04-25T17:55:02+00:00</updated><id>https://kanyilmaz.me/2025/03/14/remote-principles</id><content type="html" xml:base="https://kanyilmaz.me/2025/03/14/remote-principles.html"><![CDATA[<h1 id="why-some-companies-thrive-remotely-and-others-fail">Why Some Companies Thrive Remotely (And Others Fail)</h1>

<p>Your company is most likely losing millions of dollars due to remote work.</p>

<p>Let’s dive into the first principles of remote work to understand why.</p>

<h2 id="the-three-types-of-work">The Three Types of Work</h2>

<ol>
  <li><strong>Alone Execution Time</strong>: Independent work without interruptions <em>(e.g., coding, sales outreach).</em></li>
  <li><strong>Collaborative Time</strong>: Hard problems require collaboration <em>(e.g., strategy, design).</em></li>
  <li><strong>Bullshit Time</strong>: Casual chats uncover hidden problems <em>(e.g., lunch talks, hallway conversations).</em></li>
</ol>

<p><img src="/assets/posts/work_type.png" alt="" /></p>

<h2 id="how-remote-work-shifts-the-balance">How Remote Work Shifts the Balance</h2>

<ul>
  <li><strong>Alone Execution Time</strong>: Remote shines here — fewer distractions, more control.</li>
  <li><strong>Collaborative Time</strong>: It’s harder remotely; scheduling replaces spontaneity.</li>
  <li><strong>Bullshit Time</strong>: Nearly gone remotely, risking missed problems.</li>
</ul>

<blockquote>
  <p>Remote collaboration is like playing telephone with a bad connection — ideas get lost in the lag.</p>
</blockquote>

<h2 id="the-cost-of-remote-work">The Cost of Remote Work</h2>

<ul>
  <li>Lack of collaborative time → more iterations.</li>
  <li>Lack of bullshit time → working on the wrong problems.</li>
</ul>

<p>Even though individual execution time is higher, the cost of working on the wrong problems for longer is far greater.</p>

<blockquote>
  <p>Working on the wrong problems is like building a sandcastle too close to the tide — no matter how fast you work, it might all wash away.</p>
</blockquote>

<h2 id="which-companies-thrive-remotely">Which Companies Thrive Remotely?</h2>

<ol>
  <li><strong>Problem Familiarity</strong>: Low need for problem identification &amp; alignment</li>
  <li><strong>Task Independence</strong>: Well-defined, independent problems</li>
</ol>

<p>Below is a table of companies that thrive remotely vs. those that don’t.</p>

<p><img src="/assets/posts/remote_company.png" alt="" /></p>

<h3 id="natural-fits-for-remote-work">Natural Fits for Remote Work</h3>

<ul>
  <li><strong>GitLab</strong>: Most problems are known — copying existing products into the GitLab ecosystem. They had a +3 year roadmap with high clarity. Problems are well-defined, allowing small teams to execute.</li>
  <li><strong>Rippling</strong>: Similar to GitLab, they provide well-known services that integrate into their ecosystem. They don’t need to identify problems — execute solutions.</li>
  <li><strong>Supabase</strong>: Over 50% engineers (at one point, 90%). They receive high-level problems, and engineers already know the solution: minimal problem identification, high execution.</li>
</ul>

<blockquote>
  <p>Like working on a puzzle. The pieces are there, you just put them together.</p>
</blockquote>

<h3 id="not-fit-for-remote-work">Not Fit for Remote Work</h3>

<ul>
  <li><strong>Superhuman</strong>: Their core value is UX, meaning every pixel and user interaction must be perfect. This requires heavy collaboration, iteration, and problem discovery.</li>
  <li><strong>Colonist</strong>: Games require creativity, iteration, and constant feedback — extremely hard to make the game right without bullshit time and collaboration.</li>
  <li><strong>ChatGPT</strong>: They’re figuring out user needs, technical capabilities and the market at the same time. This requires constant iteration and experimentation.</li>
</ul>

<blockquote>
  <p>Like designing a new flavor of ice cream over email — some things just need in-person taste tests.</p>
</blockquote>

<h2 id="conclusion">Conclusion</h2>

<p>What makes a company successful is execution. Remote companies need:</p>

<ol>
  <li>Fewer unknowns.</li>
  <li>More execution.</li>
</ol>

<p>If your business can’t simplify these, remote work will hinder growth more than help it.</p>

<p>Remote work has perks — hiring, work-life balance, no office costs. You might still want these perks, but that’s a personal preference, not a business advantage.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[Why Some Companies Thrive Remotely (And Others Fail)]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/work_type.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/work_type.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Why do romantic partnerships and a co-founder feel similar?</title><link href="https://kanyilmaz.me/2025/03/14/principles-of-partnerships.html" rel="alternate" type="text/html" title="Why do romantic partnerships and a co-founder feel similar?" /><published>2025-03-14T00:00:00+00:00</published><updated>2026-02-20T14:00:17+00:00</updated><id>https://kanyilmaz.me/2025/03/14/principles-of-partnerships</id><content type="html" xml:base="https://kanyilmaz.me/2025/03/14/principles-of-partnerships.html"><![CDATA[<h1 id="first-principles-of-partnerships-romance-or-business">First Principles of Partnerships (Romance or Business)</h1>

<blockquote>
  <p>.. sounds a bit like online dating, that’s no coincidence. Like a romantic partner, a co-founder is someone you’ll depend on and spend a great deal of time with, hopefully for many years.</p>

  <p>— <em>Catheryn Li (YCombinator)</em></p>
</blockquote>

<p>Those who have experienced a romantic partner and a co-founder will say it’s very similar.</p>

<p>In this post, we’ll break down a partnership into its fundamental units and learn how to create great relationships.</p>

<h2 id="why-do-we-want-life-partners">Why do we want life partners?</h2>

<p>Life is a journey you go through. A journey is much more enjoyable and easy if you have a partner alongside your journey.</p>

<p>There will be good and hard times. In the good times, you want to share your happiness and in the bad times, you want to be supported.</p>

<p>The need of emotional support is the main reason why long-term partnerships exist.</p>

<p>For a successful relationship, both partners need to feel emotionally supported. This boils down to 3 categories</p>

<p><img src="/assets/posts/emotional_support_tree.png" alt="" /></p>

<h2 id="1-longevity">1. Longevity</h2>

<p>The surest way partners feel secure is by trusting that their partnership lasts.</p>

<p>Picture your romantic partner eyeing someone prettier, smarter, or funnier — or your co-founder tempted by a flashy rival offer.</p>

<p>You’re not the best in the world; neither is your business. Someone shinier will always pop up. So why not switch?</p>

<p>In the short term, maybe. Over decades? No chance. If you think “better” means bailing, the relationship’s doomed by design.</p>

<blockquote>
  <p>Great things take time.</p>
</blockquote>

<p>Steve Jobs and Steve Wozniak, compounded wealth and friendship over 40 years. As Wozniak said, <em>‘I’d give anything to sit with Steve one more time’</em> That’s what we are seeking — a partnership built for the long haul.</p>

<h3 id="2-clear-communication">2. Clear Communication</h3>

<p>There are multiple great books <sup><a href="https://www.amazon.co.uk/Essential-Keys-Effective-Communication-Work-Anywhere/dp/1546581731/ref=asc_df_1546581731/?tag=googshopuk-21&amp;linkCode=df0&amp;hvadid=310856639426&amp;hvpos=&amp;hvnetw=g&amp;hvrand=8474485789153233690&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=c&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9045888&amp;hvtargid=pla-451332541141&amp;psc=1&amp;th=1">1</a></sup> <sup><a href="https://www.amazon.co.uk/How-Win-Friends-Influence-People/dp/0091906814/ref=asc_df_0091906814/?tag=googshopuk-21&amp;linkCode=df0&amp;hvadid=310831412334&amp;hvpos=&amp;hvnetw=g&amp;hvrand=2156503971760771115&amp;hvpone=&amp;hvptwo=&amp;hvqmt=&amp;hvdev=c&amp;hvdvcmdl=&amp;hvlocint=&amp;hvlocphy=9045888&amp;hvtargid=pla-465117658480&amp;psc=1&amp;th=1">2</a></sup> <sup><a href="https://www.amazon.co.uk/Quick-Easy-Way-Effective-Speaking/dp/0749305770">3</a></sup> <sup><a href="https://www.amazon.co.uk/Nonviolent-Communication-Language-Life-Guides/dp/189200528X">4</a></sup> about clear communication.</p>

<p>The most common issue between partners is communicating with each other below their respect levels.</p>

<p>Think of respect as a baseline. It’s stable. Sometimes you can feel more love, sometimes less. If you let your communication quality follow the Love line, things get messy. Respect allows you to have a baseline on your communication quality, preventing your relationship from degrading.</p>

<p><img src="/assets/posts/respect_love.png" alt="" /></p>

<p>Picture a husband who forgot to throw the trash and a wife yelling at the husband. This is a wife who loves her husband, respects him a lot thus got married. But, at that moment the wife was having a bad day &amp; communicated to the man he loves and respects well below that respect line by yelling at him pushing him one step further.</p>

<p>The same happens for business partners when one partner makes a decision that is seen as incompetent by the other. This feeling is hold by that person for months and turns into lots of demeaning comments or gossip.</p>

<blockquote>
  <p>Even when he (Munger) knew he was right, he gave me the reins, and when I blundered he never — never — reminded me of my mistake.<br />
— <em>Warren Buffett</em></p>
</blockquote>

<p>Life is a rollercoaster with ups and downs. Good partnerships communicate the downs effectively, by ensuring never communicate below their respect line.</p>

<h3 id="3-shared-values">3. Shared Values</h3>

<p>Most partnerships I’ve seen crumble because they lack a shared compass — some core agreement on what the whole thing’s about. Without that, you’re sunk before you start.</p>

<p>Picture a vegan and a meat-lover trying to launch a steakhouse. It’s a non-starter — not because they can’t cook, but because one’s heart isn’t in it. Their values clash at the root, and no amount of grit can paper over that.</p>

<p>For a partnership to last — whether it’s 10 years or a lifetime — you need both people pointed at the same horizon.</p>

<p>In romance, this tends to be simpler. You’re usually building a family, chasing a lifelong companion, or just enjoying the ride for a while. The stakes are personal, the goals are mostly unspoken but obvious.</p>

<p>With co-founders, it’s trickier. Are you gunning for a billion-dollar exit? A chill lifestyle business? Fame? Solving a problem you can’t stop thinking about? Power? The possibilities unfold like a winding maze, and misalignment here is a silent killer. I’ve watched founders drift apart in weeks because one dreamed of IPOs while the other wanted steady cash flow and weekends off.</p>

<p>The good news? You can spot this early. A few real conversations will tell you if your values sync up. Get that right, and the rest has a fighting chance.</p>

<h2 id="summary">Summary</h2>

<p>Humans have been creating partnerships for millenniums. The recipe hasn’t changed: <strong>trust that lasts, words that connect, and a shared path worth walking.</strong></p>

<p>It’s simple, not easy. Choose your partner like the world depends on it — because your world just might.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[First Principles of Partnerships (Romance or Business)]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/emotional_support_tree.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/emotional_support_tree.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">How To Make Decisions Work</title><link href="https://kanyilmaz.me/2019/09/24/how-to-make-decisions-work.html" rel="alternate" type="text/html" title="How To Make Decisions Work" /><published>2019-09-24T00:00:00+00:00</published><updated>2019-09-24T00:00:00+00:00</updated><id>https://kanyilmaz.me/2019/09/24/how-to-make-decisions-work</id><content type="html" xml:base="https://kanyilmaz.me/2019/09/24/how-to-make-decisions-work.html"><![CDATA[<h1 id="how-to-make-decisions-work">How To Make Decisions Work</h1>

<p><img src="/assets/posts/decision_image.png" alt="" /></p>

<p>Everyone unconsciously has rules and methods to make decisions. This post aims to show rules and methods on decision making that would yield better results.</p>

<blockquote>
  <p>The classical virtues are all decision-making heuristics to make one optimize for the long term rather than for the short term.<br />
— Naval Ravikant</p>
</blockquote>

<p>We will be showing which heuristic to use in a certain context. If the heuristic is applied in the wrong context, it would be natural to expect unwanted outcomes.</p>

<h2 id="artificial-deadline">Artificial Deadline<a href="https://mmpractices.com/mental_models/deadlines/">¹</a></h2>

<p><strong>Context:</strong><br />
Not making decisions is worse than a bad decision</p>

<p><strong>Heuristics:</strong><br />
Put an artificial deadline to make decisions</p>

<p>When making tough decisions people are inclined to avoid or procrastinate rather than coming to a conclusion. Putting an artificial deadline forces you to finalize your thoughts.</p>

<p>Whenever there is a TODO, put an artificial deadline for its decision. If you can’t make the decision now, the decision should be to decide on a date when you will finalize it.</p>

<p>One example would be, at 6 PM on a Monday, I’ll make the decision. At 5:55 PM usually, I don’t know the answer but in those 5 minutes something clicks. Then by 6 PM the answer is always there.</p>

<h2 id="occams-razor">Occam’s Razor<a href="https://fs.blog/2017/05/mental-model-occams-razor/">²</a></h2>

<p><strong>Context:</strong><br />
Fast Decision Making</p>

<p><strong>Heuristics:</strong><br />
Among competing hypotheses, the one with the fewest assumptions should be selected.</p>

<p>Occam’s razor states that the simplest solution is correct. In other words, we should avoid looking for excessively complex solutions to a problem and focus on what works, given the circumstances. Occam’s razor is used in a wide range of situations such as a means of making rapid decisions and establishing truths without empirical evidence. It works best as a mental model for making initial conclusions before adequate information can be obtained.</p>

<h2 id="create-an-excel-sheet">Create an Excel Sheet</h2>

<p><strong>Context:</strong><br />
Discovering and prioritizing options. NOT FOR DECISION MAKING</p>

<p><strong>Heuristics:</strong><br />
Write down every piece of information you can find and give points logarithmically based on the importance of each information.</p>

<p>This would allow you (1) to see information which the intuitive mind is biased towards and (2) prioritize between multiple options.</p>

<p><img src="/assets/posts/importance.png" alt="" /></p>

<p>OkCupid made a business out of matchmaking using this type of heuristic. An OkCupid user selects each question with 3 multipliers:</p>

<ul>
  <li>“A little” 1 point</li>
  <li>“Somewhat” 10 points</li>
  <li>“Very” 50 points</li>
</ul>

<p>Whatever the decision is, OKC multiplies the decision logarithmically according to these values allowing the user to prioritize possible matches.</p>

<p>This method is frequently used incorrectly. First, you almost never have all of the information to make a decision based on this. Secondly, you do not know the correct weights for each option. The result is usually semi-correct. Most people who use this method prove that their decision was the correct one and shove it to their co-workers face. Don’t be that person.</p>

<p>Use this tool to discover new options or prioritize their search space. If the decision has an emotional component do not use this method.</p>

<h2 id="luck-surface-area">Luck Surface Area<a href="https://mmpractices.com/mental_models/luck-surface-area/">³</a></h2>

<p><strong>Context:</strong><br />
Non-important decisions*</p>

<p><strong>Heuristics:</strong><br />
Select the option with the most luck.</p>

<p>Watch Netflix or go to an event/meetup. Pick the latter one. You most probably will underestimate the luck of an option unless you have tried it. You can go to a volleyball event and meet someone who knows someone which can help with the exact problem you are looking for.</p>

<p><em>This heuristic can be easily overwritten by other heuristics. For non-important decisions, I use this heuristic with confidence. However, most likely another heuristic will overwrite Luck Surface Area.</em></p>

<h2 id="gut-feeling">Gut Feeling</h2>

<p><strong>Context:</strong><br />
Long-lived emotional decisions</p>

<p><strong>Heuristics:</strong><br />
When faced with a difficult choice, if you cannot decide, the answer is no.</p>

<p>Humans are emotional creatures. Sometimes, your gut feeling can allow you to make a better decision than reason.</p>

<p>Some decisions can be really long-lived. It’s really important to only say yes when you’re pretty certain. You’re never gonna be absolutely certain, but you can be very positive<a href="https://hackernoon.com/3-heuristics-for-decision-making-naval-ravikant-3ba9d3cd1d85">⁴</a>.</p>

<p>Moving to a new city or committing to a partner are examples of this kind of decisions.</p>

<h2 id="hard-choices-easy-life-easy-choices-hard-life">Hard choices, easy life. Easy choices, hard life</h2>

<p><strong>Context:</strong><br />
If you have 2 choices to make and they have equal weight (50–50),</p>

<p><strong>Heuristics:</strong><br />
Take the path that is more difficult and more painful in the short term.</p>

<p>One of these paths require short term pain and the other one may require pain further out in the future. What the brain is doing through conflict avoidance is trying to push out the short term pain. By definition, if the two are even and one has short term pain, it means it has long term gain. On the other hand, by the law of compound interest, the long term gain is where you want to go to anyway. Your brain is over-valuing the side that has short term happiness and trying to avoid short term pain. Most of the gains in life come suffering in the short term, so you can get the gain in the long term. (E.g. working out, confused while reading a book)<a href="https://hackernoon.com/3-heuristics-for-decision-making-naval-ravikant-3ba9d3cd1d85">⁴</a>.</p>

<h2 id="peace-of-mind">Peace of Mind</h2>

<p><strong>Context:</strong><br />
Interpersonal Conflict</p>

<p><strong>Heuristics:</strong><br />
Make the choice that will leave you more equanimous (calmer and peaceful) in the long term.</p>

<p>“Should I say yes to their invitation?” or “Should I respond to their message?”. These decisions usually don’t have a great impact on one’s life. Make the choice that will leave you more equanimous (calmer and peaceful) in the long term.</p>

<p>Peace of mind is the precursor to happiness. Happiness cannot be chased directly. If you’re doing it directly, what you’re actually chasing is pleasure, and pleasure comes with a withdrawal symptom. Pleasure is a Ferris wheel, you get on it, ride it up and eventually, you ride it back down. If you actually want to be happy and be content, that comes from peace<a href="https://hackernoon.com/3-heuristics-for-decision-making-naval-ravikant-3ba9d3cd1d85">⁴</a>.</p>

<h2 id="theory-of-constraints">Theory of Constraints</h2>

<p><strong>Context:</strong><br />
1) Finding a hidden conflict<br />
2) The outcome should effect in the long term (minimum 6 months)</p>

<p><strong>Heuristics:</strong><br />
Use Theory of Constraints</p>

<p>Heuristics mentioned previously might be used to fix the conflict. The goal of this heuristic is finding the hidden conflict. This can be applied in various conflicts like continuing relationship problems or business problems. First, write a Current Reality Tree then a Future Reality Tree. Try to solve the conflicts between both trees until everything unties.</p>

<p>Reading this you most probably did not understand anything which is fine. Applying this method takes ~10 hours as a team. I’d recommend only using this method in big decisions where there is a conflict that you can not figure out.</p>

<p>To learn this method it’s best to read <a href="https://www.goodreads.com/book/show/113934.The_Goal"><em>The Goal</em></a> and <a href="https://www.goodreads.com/book/show/157385.It_s_Not_Luck"><em>It’s Not Luck</em></a> by Eliyahu M. Goldratt. Shorter sources <a href="https://demiculus.com/TOC/TOC_Thinking_Process.pdf">The Theory of Constraints (TOC) Thinking Process</a> and <a href="https://demiculus.com/TOC/Step_by_Step_Using_The_TOC_Thinking_Processes%20-%20Demi%20B.%20Yilmaz.pdf">Steps By Step Building Trees</a>.</p>

<h2 id="decision-timeout">Decision Timeout</h2>

<p><strong>Context:</strong><br />
All decisions</p>

<p><strong>Heuristics:</strong><br />
Don’t let time decide</p>

<p>Not taking a decision would lead to a no feedback environment. Whatever decision there is, do not let time conclude it for you. Always decide on something even if it might be the non-optimal resolution.</p>

<h2 id="skin-in-the-game">Skin in the Game</h2>

<p><strong>Context:</strong><br />
All decisions</p>

<p><strong>Heuristics:</strong></p>
<blockquote>
  <p>Never take advice from someone who doesn’t have to live with the consequences.<br />
— Mark Cuban</p>
</blockquote>

<hr />

<p>Heuristics by definition are tactics which lead to practical methods; not guaranteed to be optimal, perfect, or rational, but instead sufficient for reaching an immediate goal.</p>

<p><a href="https://en.wikipedia.org/wiki/List_of_cognitive_biases">Cognitive biases</a> frequently play a role in our decision-making process. Be aware of your biases and make use of the heuristics in the <a href="https://mmpractices.com/mental_models/inversion/">least bad</a> way.</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[How To Make Decisions Work]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/decision_image.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/decision_image.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Happiness in 5 Minutes</title><link href="https://kanyilmaz.me/2019/07/23/happiness-in-5-minutes.html" rel="alternate" type="text/html" title="Happiness in 5 Minutes" /><published>2019-07-23T00:00:00+00:00</published><updated>2019-07-23T00:00:00+00:00</updated><id>https://kanyilmaz.me/2019/07/23/happiness-in-5-minutes</id><content type="html" xml:base="https://kanyilmaz.me/2019/07/23/happiness-in-5-minutes.html"><![CDATA[<h1 id="happiness-in-5-minutes">Happiness in 5 Minutes</h1>

<p>5 Minute Journal is a habit with <a href="https://www.youtube.com/watch?list=WL&amp;t=2858&amp;v=m_56L8EGLIk&amp;feature=youtu.be">asymmetrical positive value</a>. The habit consists of every morning and evening answering a set of questions. I will explain each section and how it improved my life.</p>

<p><img src="/assets/posts/happy.jpg" alt="" /></p>

<h2 id="morning-entries">Morning Entries</h2>

<h3 id="im-grateful-for-">I’m grateful for …</h3>

<p>Every morning you write 3 different sentences on what you are grateful for. Initially, I had a bit of trouble finding things to write. Eventually, it gets easier. I use the following 4 items to guide me on how to approach this question</p>

<ul>
  <li>An old relationship that really helped you</li>
  <li>An opportunity that you have today</li>
  <li>Something great that happened or you saw yesterday</li>
  <li>Something simple near you (having tap water, the pen you are holding, etc)</li>
</ul>

<blockquote>
  <p>Explicit gratitude is important because it helps re-contextualize the short term negative things that happen to you throughout the day in the greater context of all the positives in your life.<br />
— Justin Kan</p>
</blockquote>

<p>In 10 days, you can feel the effect. I felt the need to reach out to friends from my past to thank them on how much impact they had in my life! The more I wrote the more I accepted myself, my friends and my surroundings, the happier I became.</p>

<h3 id="what-will-i-do-to-make-today-great">What will I do to make today great?</h3>

<p>Every morning you write 3 different actions that would make the day great. These should be small goals which can be achieved easily. It can be as small as “I will call my parents”. This section is perfect with daily habits. At least one tiny action would be a daily habit I am trying to gain.</p>

<p>In the beginning, I wrote everything straight forward like “I will do sports”, “I will close my browser tabs”, “I will cook”. Nowadays, I am using the following pattern:</p>

<p><strong>I will do [tiny action], because I want to feel [emotion]</strong></p>

<ul>
  <li>I will exercise because I want to feel physically healthy.</li>
  <li>I will close my browser tabs because I want to feel accomplished.</li>
  <li>I will go to the Immigration Office because I feel frustrated of waiting a response.</li>
</ul>

<p>I used to have a lot of days where I do not do anything productive and felt like shit. Writing simple goals and achieving them makes even the worst days productive. It is fine to not being able to accomplish the mini-goal. There has not been a single day where I achieved nothing!</p>

<h3 id="daily-affirmation-i-am-">Daily affirmation. I am …</h3>

<p>Honestly, I have tried multiple things here. I have tried writing characteristic traits that I have and that I want to acquire. In the end, I have not seen any results. I would appreciate if you have figured out how to use this part and tell me.</p>

<h2 id="evening-entries">Evening Entries</h2>

<h3 id="3-amazing-things-that-happened-today-">3 Amazing things that happened today …</h3>

<p>This entry allows you to rethink the day and acknowledge all the great things. It can be something significant such as “I have done a $10.000 sale” to “I did laundry”. Most days I fill it with the answers in <strong>What will I do to make today great?</strong> section. This makes me feel that I have accomplished my mini-goals.</p>

<h3 id="how-could-i-have-made-today-even-better">How could I have made today even better</h3>

<p>This is the most important section. It finalizes the feedback loop. We analyze the whole day, select the single most important action that would improve the day.</p>

<p>I have realized a pattern after a few weeks. Around 40% of the time, I would write “I could have exercised”. I started exercising every second day. Even though the % of “I could have exercised” decreased, this statement was still by far the most common. Then I started to exercise daily. I am feeling significantly happier than before.</p>

<p><img src="/assets/posts/action_loop.png" alt="" /></p>

<blockquote>
  <p>Shorter feedback loops means more iterations, and it’s the number of iterations, not the number of hours, that drives learning.<br />
— Naval</p>
</blockquote>

<p>However, after started exercising another statement began to appear as a pattern. The loop keeps continuing. Each iterated cycle you (1) observe surroundings (2) be more productive (3) figure out which what work/do not work (4) habitualize things which work, dehabitualize things that do not work (5) be happier. Happiness is a skill we can all learn by iterating.</p>

<p><em>Note: The <a href="https://apps.apple.com/us/app/5-minute-journal-daily-diary/id1062945251">iOS</a> and <a href="https://play.google.com/store/apps/details?id=com.intelligentchange.fiveminutejournal&amp;hl=en_SG">Android</a> app send notifications twice a day. This allowed gaining a habit straight forward. My friends have tried using different apps or writing in a physical journal. In the end, they could not make it a habit. All of them have switched to using this app. I have no relation with the developers of the app.</em></p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[Happiness in 5 Minutes]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/happy.jpg" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/happy.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">What is the Fundamental Value of Cryptoassets?</title><link href="https://kanyilmaz.me/2018/10/24/what-is-the-fundamental-value-of-cryptoassets.html" rel="alternate" type="text/html" title="What is the Fundamental Value of Cryptoassets?" /><published>2018-10-24T00:00:00+00:00</published><updated>2018-10-24T00:00:00+00:00</updated><id>https://kanyilmaz.me/2018/10/24/what-is-the-fundamental-value-of-cryptoassets</id><content type="html" xml:base="https://kanyilmaz.me/2018/10/24/what-is-the-fundamental-value-of-cryptoassets.html"><![CDATA[<p>https://medium.com/@thellimist/what-is-the-fundamental-value-of-cryptoassets-6af43df6231f</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[https://medium.com/@thellimist/what-is-the-fundamental-value-of-cryptoassets-6af43df6231f]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/crypto.jpg" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/crypto.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Comparison of Common Blockchain Privacy Solutions</title><link href="https://kanyilmaz.me/2018/08/08/comparison-of-common-blockchain-privacy-solutions.html" rel="alternate" type="text/html" title="Comparison of Common Blockchain Privacy Solutions" /><published>2018-08-08T00:00:00+00:00</published><updated>2018-08-08T00:00:00+00:00</updated><id>https://kanyilmaz.me/2018/08/08/comparison-of-common-blockchain-privacy-solutions</id><content type="html" xml:base="https://kanyilmaz.me/2018/08/08/comparison-of-common-blockchain-privacy-solutions.html"><![CDATA[<p>https://medium.com/@thellimist/a-comparison-of-common-blockchain-privacy-solutions-81e5c29f5bbb</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[https://medium.com/@thellimist/a-comparison-of-common-blockchain-privacy-solutions-81e5c29f5bbb]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/public_info.jpg" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/public_info.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Comparison of Permissioned Blockchains</title><link href="https://kanyilmaz.me/2018/07/06/comparision-of-permissioned-blockhains.html" rel="alternate" type="text/html" title="Comparison of Permissioned Blockchains" /><published>2018-07-06T00:00:00+00:00</published><updated>2018-07-06T00:00:00+00:00</updated><id>https://kanyilmaz.me/2018/07/06/comparision-of-permissioned-blockhains</id><content type="html" xml:base="https://kanyilmaz.me/2018/07/06/comparision-of-permissioned-blockhains.html"><![CDATA[<p>https://medium.com/coinmonks/comparison-of-permissioned-blockchains-6537a0694df0</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[https://medium.com/coinmonks/comparison-of-permissioned-blockchains-6537a0694df0]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/permission_chain.jpg" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/permission_chain.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">How Proof of Stake Work in Different Blockchains?</title><link href="https://kanyilmaz.me/2018/04/04/proof-of-stake.html" rel="alternate" type="text/html" title="How Proof of Stake Work in Different Blockchains?" /><published>2018-04-04T00:00:00+00:00</published><updated>2018-04-04T00:00:00+00:00</updated><id>https://kanyilmaz.me/2018/04/04/proof-of-stake</id><content type="html" xml:base="https://kanyilmaz.me/2018/04/04/proof-of-stake.html"><![CDATA[<p>https://medium.com/@furkanyilmaz/how-proof-of-stake-work-in-different-blockchains-518da229f486</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[https://medium.com/@furkanyilmaz/how-proof-of-stake-work-in-different-blockchains-518da229f486]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/proof_of_stake.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/proof_of_stake.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Swift Error Handling Go Way</title><link href="https://kanyilmaz.me/2016/04/02/swift-error-handling-go-way.html" rel="alternate" type="text/html" title="Swift Error Handling Go Way" /><published>2016-04-02T00:00:00+00:00</published><updated>2016-04-02T00:00:00+00:00</updated><id>https://kanyilmaz.me/2016/04/02/swift-error-handling-go-way</id><content type="html" xml:base="https://kanyilmaz.me/2016/04/02/swift-error-handling-go-way.html"><![CDATA[<p>https://medium.com/@furkanyilmaz/swift-error-handling-go-way-3e78f8c90197#.spx4n31ak</p>]]></content><author><name>Kan Yilmaz</name><email>kan.yilmaz.me@gmail.com</email><uri>https://kanyilmaz.me</uri></author><summary type="html"><![CDATA[https://medium.com/@furkanyilmaz/swift-error-handling-go-way-3e78f8c90197#.spx4n31ak]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://kanyilmaz.me/assets/posts/swift_go.png" /><media:content medium="image" url="https://kanyilmaz.me/assets/posts/swift_go.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>