<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex Tong</title>
    <description>The latest articles on DEV Community by Alex Tong (@alextongme).</description>
    <link>https://dev.to/alextongme</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3981925%2F270d8b81-7ac4-4373-85f4-3ca9376c47a9.png</url>
      <title>DEV Community: Alex Tong</title>
      <link>https://dev.to/alextongme</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alextongme"/>
    <language>en</language>
    <item>
      <title>Claude won't kill junior engineering jobs</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Thu, 02 Jul 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/claude-wont-kill-junior-engineering-jobs-3606</link>
      <guid>https://dev.to/alextongme/claude-wont-kill-junior-engineering-jobs-3606</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;"Claude is going to kill junior engineering jobs." 🤔&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I keep hearing this and I heavily disagree.&lt;/p&gt;

&lt;p&gt;But the juniors who don't adapt to what's ACTUALLY changing? They're going to get left behind.&lt;/p&gt;

&lt;p&gt;Will it change the role of junior engineers? Of course. It's changing the role of every engineer.&lt;/p&gt;

&lt;p&gt;Maybe it's the old model. Juniors aren't going to get assigned a bug, write the code, and wait for a senior to review it — because Claude is the one writing the implementation now.&lt;/p&gt;

&lt;p&gt;Here's the critical problem with that shift. Mid-level and senior engineers spent YEARS building their pattern recognition before AI existed. They wrote bad code for years and had other seniors and staff engineers critique it.&lt;/p&gt;

&lt;p&gt;Now that Claude is generating most of our code — how does a junior engineer learn?&lt;/p&gt;

&lt;p&gt;Well, by asking Claude of course. Claude Code literally has a Learning mode that drops &lt;code&gt;TODO(human)&lt;/code&gt; markers and asks YOU to implement the key pieces.&lt;/p&gt;

&lt;p&gt;How?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Activate it using &lt;code&gt;/config&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Type "Output Style" in the search bar&lt;/li&gt;
&lt;li&gt;Choose "Learning" for the hands-on approach or "Explanatory" for lecture-based.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's like pair programming with a senior 24/7 who never gets tired (or annoyed at you).&lt;/p&gt;

&lt;p&gt;But honestly — the biggest shift isn't even about code anymore. It's about &lt;a href="https://alextong.me/newsletter/context-curator?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;turning vague tickets into crisp specs&lt;/a&gt;. Juniors who partner with their product managers and understand things on a high level perspective, instead of waiting for requirements to land in their lap are going to level up the fastest.&lt;/p&gt;

&lt;p&gt;So no, I do not think Claude is going to kill junior engineering jobs. If anything, it's just shifting the role to something more like a junior builder. 🔨&lt;/p&gt;

&lt;p&gt;Are juniors at your company adapting or still stuck in the old model?&lt;/p&gt;

</description>
      <category>career</category>
      <category>ai</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>When Claude starts hallucinating, kill the session</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Wed, 01 Jul 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/when-claude-starts-hallucinating-kill-the-session-1ejf</link>
      <guid>https://dev.to/alextongme/when-claude-starts-hallucinating-kill-the-session-1ejf</guid>
      <description>&lt;p&gt;🤌 I was 45 minutes into a Claude Code session when Claude just — started making stuff up.&lt;/p&gt;

&lt;p&gt;Default values I never asked for. Constraints I'd set an hour earlier? Completely ignored. Like talking to someone who totally forgot the entire conversation.&lt;/p&gt;

&lt;p&gt;So I did what felt natural. I started correcting it in the session. More instructions. More constraints. Spelling things out AGAIN from scratch.&lt;/p&gt;

&lt;p&gt;This made everything insanely worse.&lt;/p&gt;

&lt;p&gt;Here's the thing nobody tells you about context windows — every correction you make goes into the same context window that's already broken.&lt;/p&gt;

&lt;p&gt;Think of your context window like SpongeBob. When he's fresh, he absorbs everything perfectly. But once he's soaked in dirty water — failed attempts, stale instructions, frustrated corrections — squeezing him harder doesn't clean him. You're just pushing the same dirty water around.&lt;/p&gt;

&lt;p&gt;At that point your context window is basically SpongeBob rolling around in the mud singing "I'm a dirty boy."&lt;/p&gt;

&lt;p&gt;It's a death spiral. And most people don't realize they're in one until they've burned 30 minutes arguing with an AI that stopped listening 20 minutes ago.&lt;/p&gt;

&lt;p&gt;This is even more important now with Claude's usage limits. Every correction that makes things worse is burning through your session cap faster — and once you're out, you're out.&lt;/p&gt;

&lt;p&gt;So here's a hard rule — stop adding once you notice the session has gone off course. Start terminating.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/clear&lt;/code&gt; wipes your conversation history but keeps the project context. Or just open a brand new terminal window entirely. Throw dirty SpongeBob away and grab a fresh sparkly clean one.&lt;/p&gt;

&lt;p&gt;Claude will immediately go back to being the brilliant product that it is.&lt;/p&gt;

&lt;p&gt;I do this like — a hundred times a day. The moment something starts to feel off, I don't investigate. I don't argue. I just end the session and start over. If I really need context from the old session, I'll ask Claude to summarize it and copy paste the important parts into the new one after reviewing.&lt;/p&gt;

&lt;p&gt;Running &lt;code&gt;/compact&lt;/code&gt; when things have already gone wrong is usually not the move — you're basically just squeezing a dirty sponge and re-dipping it in dirty water. You freed up space but the residue of bad context is still baked in.&lt;/p&gt;

&lt;p&gt;Fresh sessions will produce better code in 3 minutes than 30 minutes of arguing will.&lt;/p&gt;

&lt;p&gt;Stop squeezing dirty SpongeBob. Grab a fresh one. 🧛&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href="https://alextong.me/newsletter/context-curator?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;You're Wasting Your Best Engineering Skill →&lt;/a&gt; — the longer take on curating context strategically before Claude starts hallucinating in the first place.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Don't let Claude grade its own homework</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Tue, 30 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/dont-let-claude-grade-its-own-homework-3ma1</link>
      <guid>https://dev.to/alextongme/dont-let-claude-grade-its-own-homework-3ma1</guid>
      <description>&lt;p&gt;Most teams think of AI code review as something that happens after a PR is opened.&lt;/p&gt;

&lt;p&gt;That's too late.&lt;/p&gt;

&lt;p&gt;The Claude Code team at Anthropic does something I think more teams should straight up steal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Claudey A (my pet name for Claude) writes the plan.&lt;/li&gt;
&lt;li&gt;Claudey B reviews it as a "staff engineer" — skeptical, looking for edge cases, questioning assumptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Two agents. Different roles. The writer doesn't review its own work.&lt;/p&gt;

&lt;p&gt;Think about why this matters. When you let the same agent that wrote the code also validate it, you're literally asking the student to grade their own test. Of course it looks correct — it was designed to look correct.&lt;/p&gt;

&lt;p&gt;📝 The key insight that changed how I work: When it's time to review, I kill my session and start a brand new one — fresh context window, zero contamination from the implementation. It's like getting a second opinion from a completely different engineer. Issues that used to show up days later in PR review now get caught before a PR even exists.&lt;/p&gt;

&lt;p&gt;Layer it: AI review during dev. AI review at the PR level via CI. Humans for judgment calls.&lt;/p&gt;

&lt;p&gt;Don't let the agent grade its own homework, unless you're spidey. 🕷️&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href="https://alextong.me/newsletter/code-review-wrong?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;Stop Reading Every Line of Code →&lt;/a&gt; — the full essay on rethinking code review for the AI era.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>softwareengineering</category>
      <category>programming</category>
    </item>
    <item>
      <title>🗑️ Delete Your Claude Project Files</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Thu, 25 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/delete-your-claude-project-files-oe8</link>
      <guid>https://dev.to/alextongme/delete-your-claude-project-files-oe8</guid>
      <description>&lt;p&gt;&lt;strong&gt;Ready to build?&lt;/strong&gt; Jump to the companion article: &lt;a href="https://alextong.me/newsletter/claude-project-hub-templates?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;Two Prompts That Turn Notion into Your Claude Project's Brain&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you use Claude Projects in the Claude app for non-code work — content strategy, product specs, brand guides, research — this is for you.&lt;/p&gt;

&lt;p&gt;I had five files in my project. Strategy docs, published articles, reference material. Claude read them every conversation. Felt organized. Felt smart.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then I deleted all of them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not because they were bad. Because Claude Projects has a gap that will drive you nuts the second you notice it: Claude can read your project files, but &lt;strong&gt;it can't update them&lt;/strong&gt;. Read-only. Every single one. Desktop app, mobile app, web — doesn't matter. Same limitation everywhere.&lt;/p&gt;

&lt;p&gt;So if you have anything that evolves — a content strategy, a spec, a reference that changes over time — you're stuck in this loop: download the file, manually delete the old version from the project, re-upload the new one. Every. Single. Time. It's brutal. On mobile it's genuinely painful.&lt;/p&gt;

&lt;p&gt;I spent a month testing workarounds. Tried three different approaches. One of them not only fixed the problem — it turned into a &lt;em&gt;better architecture&lt;/em&gt; than editable project files would've been anyway.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Obvious Thing Didn't Work
&lt;/h2&gt;

&lt;p&gt;My first instinct was to just move everything to Notion and delete the project files entirely. Makes sense, right? Claude has Notion access via MCP. It can read pages, edit pages, create new database entries. Problem solved.&lt;/p&gt;

&lt;p&gt;Except — not really.&lt;/p&gt;

&lt;p&gt;Without project files, Claude starts every conversation &lt;em&gt;blind&lt;/em&gt;. It doesn't know what pages exist in Notion, doesn't know the database IDs, doesn't know the structure. You'd have to re-explain your whole setup every single time. "Go to my Content Hub, the database ID is cx532... look for the article called..."&lt;/p&gt;

&lt;p&gt;That's not a workflow. That's a chore.&lt;/p&gt;

&lt;p&gt;Some people suggested using a GitHub repo with Claude Code instead. And sure, that works great — if what you're managing is code. But these aren't code files. They're content strategies, brand guides, idea banks, reference docs with images, project trackers. A repo treats all of that like source code — raw text in a file tree. No formatting, no inline images, no tables you can actually look at without squinting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notion gives you an app.&lt;/strong&gt; You open it on your phone, your laptop, wherever — and your docs look like docs. Tables look like tables. Images are right there. You're not opening a terminal or learning git commands to check your content calendar. &lt;strong&gt;Not everything belongs in a developer tool&lt;/strong&gt;, and the people who need to touch these docs — PMs, designers, content leads — shouldn't need to learn version control to update a brand guide.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/QVCPTzrbFsM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The Thing That Actually Works: One File That Knows Where Everything Lives
&lt;/h2&gt;

&lt;p&gt;Here's what I landed on — and it's &lt;em&gt;almost embarrassingly simple&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One markdown file.&lt;/strong&gt; Lives in your Claude Project. Maybe 40 lines long. I called mine &lt;strong&gt;OVERVIEW.md&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It doesn't contain your actual content. &lt;strong&gt;It's a map.&lt;/strong&gt; Think of it like a table of contents for a book you keep in a different building. The overview file tells Claude: here's where the Notion hub lives. Here's the database ID. Here's what properties exist. Here's what's been published. Here are the rules and guidelines for this project.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Claude reads this file automatically every conversation — because it's a project file. Instantly knows the lay of the land. When it needs the actual content of an article or a doc, it fetches from Notion. One tool call. Takes a few seconds.&lt;/p&gt;

&lt;p&gt;And here's the key — &lt;strong&gt;Claude can write back.&lt;/strong&gt; Edit a draft? Update a status? Add a new entry to the database? It just does it. In Notion. Where the content actually lives.&lt;/p&gt;

&lt;p&gt;The project file stays lightweight and stable. The Notion database stays current and editable. They work together.&lt;/p&gt;

&lt;p&gt;If you're an engineer who uses Claude Code, you already know this pattern — it's exactly what a &lt;strong&gt;CLAUDE.md&lt;/strong&gt; file does for a codebase. A small file that tells Claude "here's how this project works, here's where things live." Same architecture, just for non-code work. And unlike project files, this setup lets Claude write back — Notion stays fully editable while the overview file stays lightweight and read-only.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3hvtqspz239xrfdbut4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3hvtqspz239xrfdbut4.png" alt="The map doesn't need to change every time the territory does." width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Is Better Than You'd Think
&lt;/h2&gt;

&lt;p&gt;The obvious win is &lt;strong&gt;editability&lt;/strong&gt;. But there are a few things I didn't expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your context window stops suffocating.&lt;/strong&gt; When I had five project files loaded — three full articles, a strategy doc, a standalone post — that's a lot of tokens consumed before Claude even reads my first message. The overview file is maybe 50 lines. Everything else gets fetched on demand. My context window went from &lt;em&gt;stuffed&lt;/em&gt; to &lt;em&gt;breathing room&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It scales without bloating.&lt;/strong&gt; Say you've got a dozen docs in your project — specs, briefs, meeting notes, whatever. You don't need their full text loaded every conversation. But you do need to know they exist, what they're called, and where they live — in case you want to reference or update them. The overview file handles that. When you add new docs, the overview grows by a couple lines. The old approach? More and more project files until the context window is packed with content you haven't touched in &lt;em&gt;months&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version history comes free.&lt;/strong&gt; Notion tracks every edit. If Claude writes something wrong — edits an article intro badly, overwrites a section — you roll it back. Project files don't have that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It works from your phone.&lt;/strong&gt; I dictate all my prompts on Claude Desktop via SuperWhisper. The Notion setup works identically on mobile — Claude reads the overview file, fetches from Notion, writes back. No re-uploading files from your phone's file picker. That workflow was genuinely painful before.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/4TYv2PhG89A"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Set This Up Yourself
&lt;/h2&gt;

&lt;p&gt;Takes about 10 minutes.&lt;/p&gt;

&lt;p&gt;Start a conversation in your Claude project and tell Claude to create a Notion hub page. Give it a name, tell it what database properties you need — type, status, tags, dates, whatever makes sense for your project. Have Claude migrate your existing project file content into Notion pages.&lt;/p&gt;

&lt;p&gt;Then — the important part — have Claude generate an overview file. One markdown file. It should contain the Notion page URLs, the database ID so Claude can create new entries, a summary of what each page is, and any rules or guidelines for the project.&lt;/p&gt;

&lt;p&gt;Download that overview file. Add it to your Claude project. Delete all the other project files. They live in Notion now.&lt;/p&gt;

&lt;p&gt;That's it. Every conversation going forward, Claude reads the overview, knows where everything lives, fetches what it needs, writes directly to Notion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I made two starter templates you can customize in less than a minute&lt;/strong&gt; — &lt;a href="https://alextong.me/newsletter/claude-project-hub-templates?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;grab them here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bigger Picture
&lt;/h2&gt;

&lt;p&gt;This isn't really about Notion. Or project files. Or even Claude.&lt;/p&gt;

&lt;p&gt;It's about a pattern that keeps showing up everywhere I look: the best AI workflows aren't the ones where you give the AI all the information upfront. They're the ones where you give it a map — and let it go find what it needs.&lt;/p&gt;

&lt;p&gt;One lightweight file that says &lt;em&gt;"here's what exists and where to find it."&lt;/em&gt; That's the whole move.&lt;/p&gt;

&lt;p&gt;And honestly? If Anthropic eventually lets Claude edit project files directly, this setup still wins. Because the separation — stable map in the project, living docs in Notion — is just a better architecture for anything that changes over time. You want your persistent context to be small and stable. You want your working documents to be wherever gives you the most flexibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The map doesn't need to change every time the territory does.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I've been a software engineer for more than half a decade, previously at Amazon and The New York Times. These are observations from the trenches — not predictions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Two Prompts That Turn Notion into Your Claude Project's Brain</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Wed, 24 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/two-prompts-that-turn-notion-into-your-claude-projects-brain-18kh</link>
      <guid>https://dev.to/alextongme/two-prompts-that-turn-notion-into-your-claude-projects-brain-18kh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Read first:&lt;/strong&gt; &lt;a href="https://alextong.me/newsletter/delete-your-claude-project-files?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;Delete Your Claude Project Files&lt;/a&gt; — it explains the architecture and why this setup works. Come back here when you're ready to build it.&lt;/p&gt;




&lt;p&gt;By the end of this article, you'll have a single Notion hub that replaces all your scattered Claude project files — and Claude will read from it, write to it, and stay in sync automatically. All you do is copy one prompt, fill in a few details, and paste it into Claude.&lt;/p&gt;

&lt;p&gt;Two prompts below. One for new projects, one for migrating existing ones. Pick the one that fits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before you start
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;You need a Claude Project.&lt;/strong&gt; Everything below happens inside a Claude Project — not a regular conversation. If you don't have one yet, create a new project in the Claude app first. The overview file you'll generate gets added as a project file, which means every conversation in that project will automatically have it loaded as context. Without a project, there's nowhere to put it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You need Notion connected to Claude.&lt;/strong&gt; In the Claude app, click your name in the bottom left, go to &lt;strong&gt;Settings&lt;/strong&gt;, then &lt;strong&gt;Connectors&lt;/strong&gt;, and click &lt;strong&gt;Browse connectors&lt;/strong&gt;. Find Notion and connect it. (Note: Anthropic is moving connectors under "Customize" — if you don't see a Connectors tab, check there instead.) Takes 30 seconds. Without this, Claude can't read or write to Notion and none of this works.&lt;/p&gt;




&lt;h2&gt;
  
  
  Template 1: Starting a new project
&lt;/h2&gt;

&lt;p&gt;Use this if you're creating a new Claude Project from scratch and want to set up the Notion architecture from day one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Fill in the "My project details" section at the top of the prompt below. Everything in brackets needs your own values — delete any lines you don't need. You only need to fill in the top section; the rest of the prompt references it automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Start a conversation in your Claude project and paste the whole thing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;My project details:
- Project name: [your project name]
- Content types: [e.g., Blog Post, Tutorial, Guide]
- Statuses: [e.g., Idea, Draft, In Progress, Done]
- Additional database properties: [e.g., Priority, Due Date — or delete this line]
- Project rules: [e.g., "Use casual tone in all drafts" — or delete this line]

Using the project details above, set up this project with Notion as the source of truth:

1. Create a Notion parent page named after my project with "Hub" appended
2. Create a Notion database under it named after my project with "Library" appended, using the content types, statuses, and any additional properties I listed
3. Generate a single overview markdown file (OVERVIEW.md) that contains:
   - Links to the Notion parent page and database
   - The database's data source ID (so I can create new entries)
   - Instructions for how to read, edit, and create content
   - My project rules from above
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Claude will create everything in Notion and give you an OVERVIEW.md file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Download the OVERVIEW.md and add it to your Claude project as a project file. That's it.&lt;/p&gt;

&lt;p&gt;Here's what the overview file should roughly look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Project Name — Hub&lt;/span&gt;

All docs live in Notion. Claude reads and writes directly there. This file is a quick-reference map.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## Notion Locations&lt;/span&gt;

Hub Page: [Notion URL will go here]

Database: [Notion URL will go here]
&lt;span class="p"&gt;-&lt;/span&gt; Data source ID: [ID will go here]
&lt;span class="p"&gt;-&lt;/span&gt; Properties: Title, Type, Status, [your properties]
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## Key Pages&lt;/span&gt;

| Page | Description | Notion URL |
|------|-------------|------------|
| Project Spec | what it contains | URL |
| Brand Guide | what it contains | URL |
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## Project Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Always check the spec before making changes
&lt;span class="p"&gt;-&lt;/span&gt; Use casual tone in all drafts

&lt;span class="gu"&gt;## How Claude Should Use This&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; To read content: Fetch the Notion URL directly
&lt;span class="p"&gt;-&lt;/span&gt; To edit content: Use Notion update tools on the page
&lt;span class="p"&gt;-&lt;/span&gt; To add new entries: Create a new page in the database (data source ID above)
&lt;span class="p"&gt;-&lt;/span&gt; To check status: Search or fetch the database
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Template 2: Migrating an existing project
&lt;/h2&gt;

&lt;p&gt;Use this if you already have files in a Claude Project and want to migrate everything to Notion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Fill in the "My project details" section at the top of the prompt below. Everything in brackets needs your own values — delete any lines you don't need. You only need to fill in the top section; the rest of the prompt references it automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Start a conversation in your Claude project and paste the whole thing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;My project details:
- Project name: [your project name]
- Content types: [e.g., Blog Post, Tutorial, Guide]
- Statuses: [e.g., Idea, Draft, In Progress, Done]
- Additional database properties: [e.g., Priority, Due Date — or delete this line]
- Project rules: [e.g., "Always check the spec before making changes" — or delete this line]

Using the project details above, migrate this project to Notion as the source of truth:

1. Create a Notion parent page named after my project with "Hub" appended
2. Create a Notion database under it named after my project with "Library" appended, using the content types, statuses, and any additional properties I listed
3. Migrate all current project file content into Notion pages in that database
4. Generate a single overview markdown file (OVERVIEW.md) that contains:
   - Links to the Notion parent page and database
   - The database's data source ID (so I can create new entries)
   - A brief summary of what each migrated page contains
   - My project rules from above
   - Instructions for how to read, edit, and create content
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Claude will migrate everything to Notion and give you an OVERVIEW.md file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Download the OVERVIEW.md file and add it to your Claude project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to your project settings&lt;/li&gt;
&lt;li&gt;Add OVERVIEW.md as a project file&lt;/li&gt;
&lt;li&gt;Delete all other project files — they live in Notion now&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Done. Every new conversation in that project will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instantly load the overview (links, rules, structure)&lt;/li&gt;
&lt;li&gt;Fetch full content from Notion only when needed&lt;/li&gt;
&lt;li&gt;Write edits directly to Notion&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Tips for both templates
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Update the overview file when you add major new pages (just add a row to the table)&lt;/li&gt;
&lt;li&gt;Use database properties to track status so Claude can filter and search&lt;/li&gt;
&lt;li&gt;If you need Claude to reference a specific page, just paste the Notion URL in chat — Claude will fetch it&lt;/li&gt;
&lt;li&gt;Notion has version history — if Claude writes something wrong, you can roll it back&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;I've been a software engineer for more than half a decade, previously at Amazon and The New York Times. These are lessons from real production work, not theoretical predictions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Teaching AI is the fastest way to sharpen your own thinking</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Tue, 23 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/teaching-ai-is-the-fastest-way-to-sharpen-your-own-thinking-mnj</link>
      <guid>https://dev.to/alextongme/teaching-ai-is-the-fastest-way-to-sharpen-your-own-thinking-mnj</guid>
      <description>&lt;p&gt;📣 📰 We just wrapped an Engineering-wide AI training — two days, hundreds of engineers, a curriculum months in the making.&lt;/p&gt;

&lt;p&gt;The question driving it wasn't "how do you use this tool?" but "what does it mean to work agentically and how do you build the instincts for it?"&lt;/p&gt;

&lt;p&gt;👷 Building my modules on decomposing problems and executing large-scale migrations using Claude Code forced me to crystallize my own thinking on this. There's a difference between knowing how to do something and knowing how to explain why it works, and teaching it turned out to be the most useful thing I've done to sharpen my own thinking here.&lt;/p&gt;

&lt;p&gt;🫶 Proud of this team and grateful for the chance to contribute to something this substantive!&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Follow-up:&lt;/strong&gt; A month later I did it again, but for 500 engineers — &lt;a href="https://alextong.me/newsletter/notes/engx-conference-claude-md?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;Teaching CLAUDE.md at EngX →&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🔥 Claude Code Is (Seriously) Burning Me Out</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Thu, 18 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/claude-code-is-seriously-burning-me-out-276b</link>
      <guid>https://dev.to/alextongme/claude-code-is-seriously-burning-me-out-276b</guid>
      <description>&lt;h2&gt;
  
  
  Claude Gave Me a Productivity Problem
&lt;/h2&gt;

&lt;p&gt;I'm more productive than I've ever been in my life, full stop.&lt;/p&gt;

&lt;p&gt;I'm also more burned out than I've ever been in my life, full stop.&lt;/p&gt;

&lt;p&gt;Those two things are not a coincidence. That's the whole point of this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Loop Nobody Warned Me About
&lt;/h2&gt;

&lt;p&gt;Here's what actually happens when Claude Code starts working for you:&lt;/p&gt;

&lt;p&gt;You ship something fast. Like, embarrassingly fast. You see results. You see what's NEXT. You build that too. You see what's next after that. You build that too.&lt;/p&gt;

&lt;p&gt;Ship fast → see results fast → see MORE to build → say yes to all of it → repeat.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📊 &lt;strong&gt;&lt;a href="https://alextong.me/newsletter/claude-code-burnout?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;See the diagram on alextong.me →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's not a bug. It's the design. Faster feedback loops make the backlog feel shrinkable. The backlog is never shrinkable. It's infinite. You just have a better view of it now.&lt;/p&gt;

&lt;p&gt;I call it the Catch-22 of AI productivity. Claude Code doesn't give you more time. It gives you more visibility into everything you could build. And the gap between "what exists" and "what's possible" is bottomless.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Opened Up For Me
&lt;/h2&gt;

&lt;p&gt;Let me be specific, because vague burnout talk is useless. In the last few months I have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fully shipped Count Tongula's Eye Break — my free macOS app that enforces the 20-20-20 rule (Eye health is so important!)&lt;/li&gt;
&lt;li&gt;Completely rebuilt my personal portfolio website from scratch&lt;/li&gt;
&lt;li&gt;Setup my first OpenClaw&lt;/li&gt;
&lt;li&gt;Started creating my own soda&lt;/li&gt;
&lt;li&gt;Completely rebuilt 7 web development portfolio projects from half a decade ago&lt;/li&gt;
&lt;li&gt;Finished producing my next dance track — drops April 3rd&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not a side project list. That's a whole creative life that Claude Code made feel simultaneously possible. Every single one of those things felt easy-ish. Low activation energy. Just spin up a session and go.&lt;/p&gt;

&lt;p&gt;That's the trap.&lt;/p&gt;

&lt;p&gt;When everything feels small and easy, you say yes to everything. And then you wake up and you're maintaining five projects, you have a 40-hour day job, and you haven't slept more than 4-5 hours a night in two weeks.&lt;/p&gt;

&lt;h2&gt;
  
  
  This Isn't Just Me
&lt;/h2&gt;

&lt;p&gt;Steve Yegge — former engineer at Google and Amazon — wrote about what he called "sleep attacks." After long Claude Code sessions, he'd randomly fall asleep mid-day without warning. His colleagues were talking about installing nap pods.&lt;/p&gt;

&lt;p&gt;A Harvard Business Review study tracked workers at a 200-person tech company for eight months. AI didn't reduce their work. It made them work faster, take on more tasks, and extend into more hours of the day — without being asked to. They specifically flagged "fatigue, burnout, and a growing sense that work is harder to step away from."&lt;/p&gt;

&lt;p&gt;Bloomberg literally published a piece this month calling it "The Great Productivity Panic of 2026."&lt;/p&gt;

&lt;p&gt;Vibe coding was supposed to be chill. The vibes are clearly off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fix Isn't What You Think
&lt;/h2&gt;

&lt;p&gt;Every burnout article tells you to take breaks, log off at 6pm, go touch grass. Cool. Not the answer.&lt;/p&gt;

&lt;p&gt;The real answer: put friction back in the process. Because Claude Code removed all of it.&lt;/p&gt;

&lt;p&gt;I actually ran this problem through five different expert perspectives — behavioral psychologist, stoic philosopher, systems designer, burnout researcher, real developers. All five landed in the same place. Not "do less." Something more specific:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 1: Work in 2-week sprints. Ship something. Then don't touch anything new for 3 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's it. When you ship — anything — you're locked out of starting new implementation work for 3 days. You can plan, document, think. No coding. No new sessions. No "just one quick thing."&lt;/p&gt;

&lt;p&gt;Before AI, shipping felt like an ending because you were exhausted. You needed the break naturally. Now shipping feels like a green light — you close one terminal and open another. The 3-day lockout puts the ending back in artificially.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rule 2: On top of that I also built a Kanban board in Notion. Hard rule — only 3 projects in "active" at any given time. Want to add something new? Something else has to move out first.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Kanban tells me what I'm working on. The lockout tells me when to stop. Claude Code can't make either of those calls. That's the whole point.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Thing Worth Saying
&lt;/h2&gt;

&lt;p&gt;Claude Code didn't make me a more productive engineer. It made me a person who ships software, produces music, builds apps, brews soda — things I never in my life thought I would have the time or resources for.&lt;/p&gt;

&lt;p&gt;That's genuinely incredible. I don't want to give that back.&lt;/p&gt;

&lt;p&gt;But the expansion of what's possible is not the same as having more capacity. Your bandwidth as a human didn't 10x. Your output ceiling did. That gap — between what you can see and what you can actually sustain — that's where burnout lives.&lt;/p&gt;

&lt;p&gt;The answer isn't to slow the tool down. It's to be more deliberate about what you point it at.&lt;/p&gt;

&lt;p&gt;Three projects, three day breaks. Hard limit. Everything else waits.&lt;/p&gt;

&lt;p&gt;How are you managing this? Drop your approach in the comments — genuinely curious what's working for other people.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Anthropic's session limits accidentally became part of my fix — &lt;a href="https://alextong.me/newsletter/notes/anthropic-tradeoff?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;more here →&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I've been a software engineer for more than half a decade, previously at Amazon and The New York Times. These are observations from the trenches — not predictions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>career</category>
      <category>productivity</category>
      <category>claude</category>
    </item>
    <item>
      <title>🌻 You're Wasting Your Best Engineering Skill</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Wed, 17 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/youre-wasting-your-best-engineering-skill-191m</link>
      <guid>https://dev.to/alextongme/youre-wasting-your-best-engineering-skill-191m</guid>
      <description>&lt;p&gt;The best engineers I know are spending their days doing something they're actually terrible at.&lt;/p&gt;

&lt;p&gt;They're not bad at writing code — they're incredible at it. But they've stopped doing the thing they're best at, and nobody told them. They just... drifted into it. I did the same thing for way too long at work — using Claude Code heavily on a large-scale repo migration — and I didn't even notice until I stepped back and looked at how I was actually spending my time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The preparation IS the work now.&lt;/strong&gt; That's it.&lt;/p&gt;

&lt;p&gt;Not writing the code. Not debugging the code. Not even reviewing. The thing that determines whether Claude one-shots your ticket or hallucinates straight AI garbage — is how well you set up the problem before the AI writes a single line.&lt;/p&gt;

&lt;p&gt;If you prepare well, Claude will understand it and probably nail it first try. If you don't, you'll spend three hours fighting an AI that's over-confidently building the wrong thing. And that's three hours of your best engineering skill — &lt;em&gt;your ability to think through problems&lt;/em&gt; — completely wasted on cleanup.&lt;/p&gt;

&lt;h2&gt;
  
  
  So What Did We Actually Become?
&lt;/h2&gt;

&lt;p&gt;Here's what I realized halfway through our migration: we're not writing code anymore — we're curating context.&lt;/p&gt;

&lt;p&gt;It's basically air traffic control, right? The controller doesn't fly the planes — but every plane in the sky depends on them to land safely. They're sequencing — which plane goes first, which one holds, which runway is clear. They have a constrained space (the airspace) and if they overload it, things collide. The skill isn't in the flying. It's in the coordination.&lt;/p&gt;

&lt;p&gt;That's what we're doing now. The "flying" — the implementation — Claude handles that. But you're the one deciding what context to load, what files to point it at, what order to tackle things in, and what constraints to set. You're managing a constrained space and sequencing work so nothing collides. And if your sequencing is wrong? The whole thing falls apart — doesn't matter how capable the aircraft are.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You're not paid to write every line of code anymore. You're paid to know which 5% of context actually matters right now.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/UGRcJQ9tMbY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Here's the thing about AI coding tool best practices — they basically all boil down to one constraint: when you ask an AI to solve something complex, it needs to understand the &lt;em&gt;whole&lt;/em&gt; picture. Give it fragments and it guesses. Give it noise and it drowns. Fill the context window wrong and Claude doesn't warn you — it just confidently builds the wrong thing. And you'll spend three hours debugging something that should have taken fifteen minutes.&lt;/p&gt;

&lt;p&gt;So yeah, every technique I'm about to share? Managing that constraint. You're not writing prompts anymore — you're deciding what the AI actually needs to see.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's Where Most People Go Wrong
&lt;/h2&gt;

&lt;p&gt;Everyone wants to give Claude the whole project at once. They all do. Like — "here's my codebase, migrate the thing, figure it out." Claude will hallucinate you into a brick wall.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5rc4hnpsshvz0sqxcz7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5rc4hnpsshvz0sqxcz7.jpeg" alt="What your codebase looks like after giving Claude too much context at once" width="554" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Claude gets confused when tasks aren't EXTREMELY scoped. And I mean &lt;em&gt;extremely&lt;/em&gt;. This is what kills you — hallucinated code that looks right but does absolutely nothing.&lt;/p&gt;

&lt;p&gt;One task per prompt. One major change per PR. Build the skeleton first. One bone at a time. Sounds slow. It's way way faster — because each one lands clean.&lt;/p&gt;

&lt;p&gt;This matters beyond just code quality too — PR reviewability, QA testing, debugging. When something breaks, you know exactly which change caused it. Smaller, targeted context = better results. The less noise the AI has to parse, the more accurate its output.&lt;/p&gt;

&lt;p&gt;But here's the part nobody talks about: &lt;strong&gt;before you systematize anything, do one full task end-to-end manually.&lt;/strong&gt; Just one. Start to finish. No shortcuts.&lt;/p&gt;

&lt;p&gt;That first rep is where you learn everything. Where does Claude struggle? What context does it actually need? Where does it make assumptions? What does the "happy path" look like when it goes right?&lt;/p&gt;

&lt;p&gt;For our repo migration, the first task we migrated was messy. Took way longer than it should have. But it taught us exactly what Claude needed to succeed — which files to reference, what order to build dependencies in, what instructions to put in our repo's &lt;code&gt;CLAUDE.md&lt;/code&gt;. Every task after that was dramatically faster because we'd done the spike first. Once you've done one successfully, that becomes your reference pattern — and example-driven prompts produce way more consistent results than spec-driven ones. Every. Single. Time.&lt;/p&gt;

&lt;p&gt;And here's a subtle one that bites people constantly — &lt;strong&gt;tell the AI which layer something belongs in.&lt;/strong&gt; Explicitly. If your architecture has distinct layers, Claude needs to know which one it's working in, or it'll write duplicate logic across layers. "Should the system check if a user is authenticated in layer A itself, or layer B?" If you don't specify, Claude will guess. And it will guess wrong.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📊 &lt;strong&gt;&lt;a href="https://alextong.me/newsletter/context-curator?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;See the diagram on alextong.me →&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Overlooked Part: Your Mistakes Are Worth More Than Your Wins
&lt;/h2&gt;

&lt;p&gt;Once your first task works, lock it in as a reference pattern. Include the file path with line numbers so Claude can read the actual code rather than relying on your description.&lt;/p&gt;

&lt;p&gt;But — and this is super important — don't just track what works. &lt;strong&gt;Track what went wrong.&lt;/strong&gt; If you're doing repetitive work, record mistakes and how to avoid them. Counter-intuitive behaviors, one-off exceptions, anything that goes against the general architecture — document it. If you don't, Claude will follow the wrong pattern and you'll debug the same issue three times.&lt;/p&gt;

&lt;p&gt;Here's the move: when Claude makes a mistake, tell it to update its own rules. Don't let it repeat it. Over time, your documentation becomes institutional memory — basically a compounding record of every lesson you've learned, locked in. &lt;em&gt;That's&lt;/em&gt; the real competitive advantage. Not your prompting skill. Your playbook.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Traditional code-writing ability is becoming a commodity. The scarcity now is in setup — in knowing what to ask for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm2hkgsj7fpdccf9a6x3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm2hkgsj7fpdccf9a6x3.jpg" alt="Can't build the wrong thing if you prepare so well there's nothing to misinterpret" width="421" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  When to Stop Preparing (And Just Ship It)
&lt;/h2&gt;

&lt;p&gt;These techniques are for complex, multi-session, multi-file work. Don't over-apply them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Separate thinking from doing&lt;/strong&gt; — don't ask Claude to plan and implement in the same prompt. Ask it to plan first always — output a plan, not code. Review the plan. Then tell it to execute. And when things go sideways during implementation, don't keep pushing forward — go back to planning and re-plan from scratch. A fresh plan consistently beats incremental patching on a broken implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Know when to reset&lt;/strong&gt; — long sessions degrade in quality. When Claude starts doing weird stuff — inserting defaults you didn't ask for, ignoring constraints you set — it's cheaper to start a fresh session with a clean prompt than to keep fighting. This is another reason well-scoped tasks matter: if your prompts are self-contained, starting fresh is painless. (&lt;a href="https://alextong.me/newsletter/notes/dirty-spongebob-context?utm_source=devto&amp;amp;utm_medium=syndication" rel="noopener noreferrer"&gt;Tactical note on when to throw the session away →&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;If the task fits in one prompt and one PR — a one-line bug fix, a simple function addition, a config change — just do it directly. Not every single task needs a dependency chain, a skeleton, and a reference pattern. The right question is: "Will the AI need more context than fits cleanly in one session?" If yes, prepare. If no, just ask.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;You used to be measured by how much code you could write. Now you're measured by how well you prepare. And that's not a demotion — it's a promotion you didn't ask for. Most people still haven't realized they got it.&lt;/p&gt;

&lt;p&gt;The engineers getting the best results with Claude aren't the ones writing the cleverest prompts. They're the ones who prepare so well that Claude has no room to fail. Break the problem down. Scope the task. Give Claude exactly what it needs — nothing more, nothing less. And when things get messy, kill the session and start fresh.&lt;/p&gt;

&lt;p&gt;The code writes itself now. Your job is to make sure it's writing the right thing.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I've been a software engineer for more than half a decade, previously at Amazon and The New York Times. These are lessons from real production work, not theoretical predictions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🧛 Stop Reading Every Line of Code!</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Tue, 16 Jun 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/alextongme/stop-reading-every-line-of-code-1im5</link>
      <guid>https://dev.to/alextongme/stop-reading-every-line-of-code-1im5</guid>
      <description>&lt;p&gt;I've been using Claude Code HEAVY at work. Like, 8 hours a day speaking to 6 different robots at the same time, working on 6 tickets at the same time. So much so that our team cannot handle the amount of PRs that we're spitting out because we're just not able to keep up with the output. The more I use it, the more I'm convinced of this fact:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We're doing code review wrong.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And our process is already breaking in 2026. Our default assumption is outdated:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A human wrote every line, so a human should read every line."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That world is quickly fading. If you keep reviewing things like it's 2016 in 2026, your process is going to break. Whether you're an engineer, a manager, or a product manager — this problem will affect how you do everything.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2vinn6f61kxs73cpdk3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2vinn6f61kxs73cpdk3.jpg" alt="meow" width="800" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  We Stopped Reading Assembly — But This Isn't Quite The Same Move
&lt;/h2&gt;

&lt;p&gt;We've been in a similar situation before. When we moved from assembly to higher-level languages, nobody said "hey, we still need to review the entire assembly output." We trusted the abstraction. We were fine just reviewing the higher-level code. We shifted our focus. This AI-generated shift is similar, but a hundred times bigger — and it has one critical difference.&lt;/p&gt;

&lt;p&gt;Here we go. We already tolerate a lot of black boxes constantly. You're not reading every npm package you install. Nobody reviews the JavaScript that TypeScript compiles down to. Nobody reads the server configs AWS provisions when you write in Terraform. You write a SQL query and you let the query planner decide how to execute.&lt;/p&gt;

&lt;p&gt;So here's the critical difference. Compilers, like the examples I just gave, are deterministic and formally verified. LLMs are not. Two identical prompts fed to Claude can produce very different code. Worse, AI agents actively drift from their own instructions as context bloats. Your CLAUDE.md file might say "don't insert default values," but the agent might do it anyway 3,000 tokens in. I don't know if this will get fixed with better models because it seems very fundamental to how these models work to begin with.&lt;/p&gt;

&lt;p&gt;So how can we fix our code review bottleneck problem? With better guardrails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Review The Plan, Then Skim The Diff
&lt;/h2&gt;

&lt;p&gt;If implementation is increasingly generated — and it is — the highest-leverage review shifts earlier in the process: plans, constraints, interfaces, architecture, risks, tests.&lt;/p&gt;

&lt;p&gt;For most changes, when you're reading the PR summary, you're asking: Does this plan sound correct? Are the constraints right? Are there any edge cases? Do the tests on the PR prove the behavior? That's much higher leverage than reading every single line.&lt;/p&gt;

&lt;p&gt;For things like auth, payments, or permission checks, you probably still want targeted line-by-line reading even when the plan looks solid. Why? Because agents will drift. Plans will not capture every single implementation error or nitpick. Critical code like this always deserves human eyes on every line. I'm not saying we should move to a no-review process — I'm saying not all code deserves the same depth of review. Some code gets a skim. Some code gets every line read. The skill is knowing which is which.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Review Bottleneck Nobody Wants To Admit
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/TA8oCgG_V9I"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Here's a dirty secret. Code is being written way WAY faster than it can possibly be reviewed by a human.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Teams with high AI adoption merged 98% more PRs, but PR review time increased 91%.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Faros AI analyzed telemetry across 10,000+ developers and confirmed this. You're producing 2x the output but reviews take 2x as long. And that's before parallelization — engineers running 3–5 sessions at once across worktrees are generating multiple streams at once.&lt;/p&gt;

&lt;p&gt;Teams that used to push out 10 PRs a week are now staring at 50–100. If your code review stays as "carefully read everything line by line" while Claude turns every engineer into a PR production factory, your org becomes a firehose with a human-sized funnel. Something needs to change.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/j54yGxuk0yo"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  My Proposed Solution
&lt;/h2&gt;

&lt;p&gt;Tiered review systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 1:&lt;/strong&gt; fully automated — linting, static analysis, unit tests, security scanning, type checking. No human involved.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 2:&lt;/strong&gt; peer review for behavior, correctness, and "does this match the intent?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 3:&lt;/strong&gt; senior/security review for critical paths — auth, payments, PII, system boundaries. Most changes should never need Tier 3.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft46a5gxg21xotu7qkspd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft46a5gxg21xotu7qkspd.png" alt="Most code gets a skim — only the dangerous code gets every line read." width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every layer should have AI-assisted review. And here's the key insight — &lt;a href="https://alextong.me/newsletter/notes/two-claudes-code-review" rel="noopener noreferrer"&gt;don't let your agent grade its own homework&lt;/a&gt;. A separate subagent will catch semantic issues before the code ever reaches human eyes — in under a minute. Always start a fresh session to review your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Guardrails Become The Product
&lt;/h2&gt;

&lt;p&gt;So, if we stop reading everything line by line — and I'm saying that we should — then guardrails stop being nice-to-haves and start becoming must-haves. They become the actual real task that you need to do. AI in its current state has a lot of its faults. It can silently insert defaults, it can name things badly without proper context from you, it can drift from instructions, it can also hallucinate completely once your context is too bloated. So you're going to need guardrails to catch these.&lt;/p&gt;

&lt;p&gt;When I say guardrails, I'm talking about tests. You're going to need way more test coverage than most production companies actually have. You need critical testing, integration testing, end-to-end testing, regression tests for every single bug that you find. Your tests become the contract of your task. But is there a problem with also using AI to generate tests too?&lt;/p&gt;

&lt;p&gt;Why yes, of course. So test quality also needs close review, especially for critical ones. Using something like a coverage helper can totally be gamed by AI. What matters is that your tests prove that what could be a dangerous piece of code actually works correctly. You should probably create a test for every production incident that happens. Similar to Thoriq's advice — one of the principal engineers at Anthropic — you should always be telling Claude about your bugs that you run into and your gotchas. You probably should also be having security checks running on every PR in your GitHub workflows.&lt;/p&gt;

&lt;p&gt;Architecture Decision Records also become super important. Your CLAUDE.md is kind of already a lightweight version of this. The teams that I've seen getting the most out of Claude treat CLAUDE.md as a living document. Every time a mistake is noticed, they update their CLAUDE.md file. That CLAUDE.md file becomes institutional memory — a compounding record of all lessons learned. Observability gets way more important too with this approach. Telling Claude how to read your logs, tracings, metrics, and alerts will just make this entire workflow work way smoother. If it's very well documented and it's clear what it's examining, you'll know when there are bugs and when to fix them and how to fix them.&lt;/p&gt;

&lt;p&gt;This also changes how junior engineers learn — but that's a whole other conversation, and &lt;a href="https://alextong.me/newsletter/notes/claude-junior-engineering-jobs" rel="noopener noreferrer"&gt;I've since written about it here&lt;/a&gt;. Short version: the apprenticeship isn't dead, it just looks different now.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4flxtu8dghmeqiasuc5e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4flxtu8dghmeqiasuc5e.jpg" alt="i like dogs and cats, dont worry" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TLDR: What I'd Actually Do Next Week
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzerrt2hq059kr8ad6rkx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzerrt2hq059kr8ad6rkx.png" alt="yep" width="220" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cap your PRs at ~400 lines or so.&lt;/strong&gt; Enforce this on GitHub. Only allow overrides if someone explicitly tries to override, which also alerts your team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a risk tier rubric.&lt;/strong&gt; Automate low-risk PRs. High-risk PRs — the ones that might modify user data or auth — require senior eyes and targeted diff reading.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Require a thorough PR summary.&lt;/strong&gt; PR summaries are probably the most important artifact now. I'll be writing a separate article on this, so look out for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make automated checks mandatory.&lt;/strong&gt; Type checking, security scans, test coverage. All of this must be a requirement now. Not nice-to-have. No exceptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Set up AI review during development, not just after it hits GitHub.&lt;/strong&gt; Get into the habit of spawning a new AI agent to review your code after you write it on your own terminal. Look into using Claude's new /simplify command. Don't ever let your agents grade their own homework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document your rules so Claude can read them.&lt;/strong&gt; Put CLAUDE.md files in every single repo with more in-depth rules in the .claude/rules folder. When Claude makes a mistake, always update these files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Track your PR review queue.&lt;/strong&gt; Start putting metrics around how long PRs take to review. This is where the bottleneck shows up first — and you should have good observability on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;The role is shifting from "write code, review code" to "design thorough Jira ticket work, translate tickets into concise yet thorough prompts, define your guardrails, and then verify the outcome."&lt;/p&gt;

&lt;p&gt;This isn't a con — it's a huge upgrade. But only if you earn it with the correct infrastructure. So stop reading every line of code by default. But don't confuse that with trusting everything Claude says blindly. You need to trust the guardrails, the tests, the gates. Human judgment should come in for things that only humans can judge — like product requirements, for example — and make sure you're still applying human judgment at the boundaries where the real damage happens.&lt;/p&gt;

&lt;p&gt;So don't stop reviewing. Just stop reviewing everything the same way you've been doing your whole life.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I've been a software engineer for more than half a decade at both Amazon and The New York Times, recently using Claude extensively in production workflows. These are observations from the trenches, not theoretical predictions. The shift is already happening — prepare yourselves!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>softwareengineering</category>
      <category>programming</category>
    </item>
    <item>
      <title>👁️ I Built Y'all an App Because My Eyes Were Dying 👁️</title>
      <dc:creator>Alex Tong</dc:creator>
      <pubDate>Sat, 13 Jun 2026 00:54:02 +0000</pubDate>
      <link>https://dev.to/alextongme/i-built-yall-an-app-because-my-eyes-were-dying-4h55</link>
      <guid>https://dev.to/alextongme/i-built-yall-an-app-because-my-eyes-were-dying-4h55</guid>
      <description>&lt;p&gt;Whether you're an engineer, a product manager, a designer, or literally anyone working in 2026 and probably staring at Claude / ChatGPT 24/7 — &lt;strong&gt;your eyes are probably taking a huuuuuuuuuge beating.&lt;/strong&gt; And whether or not you've started to experience eye pain, I'm here to give you some relief.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Because I did.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;About six months ago, between all of my infinite side projects plus the eight hours a day I was working, I started to notice really really sharp eye pain. I went to my eye doctor and he basically told me I was overstraining the muscles in my eye that help me view things close up — your &lt;strong&gt;ciliary muscles&lt;/strong&gt;. These are the muscles that do all the focusing work when you're staring at a screen. And it was the kind of pressure that hurt &lt;em&gt;so bad&lt;/em&gt; that I had to just close my eyes. I felt some relief by putting pressure on my eyes or putting a heat pad on them.&lt;/p&gt;

&lt;p&gt;So I went down a rabbit hole on eye health, and that's what I'm writing about today. Eventually it also led me to build a free app for all of y'all to solve both my problem and hopefully what will &lt;em&gt;not&lt;/em&gt; be your problem.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you're staring at a screen for 8+ hours a day and NOT doing anything about it — this article is for you.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  The 20-20-20 Rule — And Why It Might Not Be Enough
&lt;/h2&gt;

&lt;p&gt;So you've probably heard of the 20-20-20 rule, and if you haven't, let me just break it down for you. Basically since the late 1990s when computer use got very common, eye doctors started to advise that &lt;strong&gt;every 20 minutes you should look at something at least 20 feet away for 20 seconds.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, the actual research behind these specific numbers is &lt;em&gt;not great.&lt;/em&gt; While most researchers agree that the methodology is correct, what they don't agree on is how long you should be looking away and how far you should be looking away.&lt;/p&gt;

&lt;p&gt;But what exactly is the science behind this? Well, your ciliary muscles — the ones helping you focus when you stare at a screen — basically need time to relax. If you think about it like working out:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Picture your eyes are biceps and you've been doing bicep curls for 8 hours without any breaks jacked up on pre work out. That's what you're doing to your eyes every single day. Yes, exactly that.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The American Optometric Association actually recommends you take a &lt;strong&gt;full 15-minute break every two hours&lt;/strong&gt; of screen time &lt;em&gt;on top of&lt;/em&gt; the 20-20-20 rule.&lt;/p&gt;

&lt;p&gt;The point of all this is basically — &lt;strong&gt;you should be taking breaks from your screen regularly and you should be looking far away when you do that&lt;/strong&gt;, because you need to rest the muscle in your eye that helps you see things up close.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvqzwhea5h8xwss257o7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvqzwhea5h8xwss257o7.gif" alt="Count Tongula's Eye Break app demo" width="480" height="311"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Count Tongula's Eye Break in action&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  My Free Eye Break App
&lt;/h2&gt;

&lt;p&gt;Now, how can you get better at doing this? Well, I built a free app called &lt;strong&gt;&lt;a href="https://www.alextong.me/eye-break" rel="noopener noreferrer"&gt;Count Tongula's Eye Break&lt;/a&gt;&lt;/strong&gt; — which if you don't know, Count Tongula is my alias because I'm obsessed with vampires and I just love everything about them. 🧛&lt;/p&gt;

&lt;p&gt;This is a &lt;strong&gt;free macOS menu bar app&lt;/strong&gt; that helps enforce this rule for you. Because let's be honest — you're probably not going to remember every 20 minutes to do this. And what better way than to use the thing you're staring at all day to help you remember?&lt;/p&gt;

&lt;p&gt;So what does it do? Every 20 minutes it will, with your permission, dim your screen with a beautiful Count Tongula-themed fog overlay and remind you to look away. It shows you a timer. And it also has that longer stretch break built in that the American Optometric Association recommended — which will trigger based on a set interval that you can customize.&lt;/p&gt;

&lt;p&gt;Some other cool stuff I built in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If your screen is locked or your Mac sleeps, &lt;strong&gt;the timer pauses&lt;/strong&gt; — so when you come back you're not automatically hit with an eye break reminder&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-monitor support&lt;/strong&gt; — if you're a coder like me or someone in tech who uses multiple monitors, this will make sure it dims &lt;em&gt;all&lt;/em&gt; of them&lt;/li&gt;
&lt;li&gt;It &lt;strong&gt;automatically pauses during meetings and presentations&lt;/strong&gt; — so you won't get a fog overlay popping up in the middle of a screen share&lt;/li&gt;
&lt;li&gt;And a lot more — streak tracking, stretch break reminders, 14 system sounds, fully customizable intervals, and a full Dracula-themed UI. &lt;a href="https://www.alextong.me/eye-break" rel="noopener noreferrer"&gt;Check out all the features here.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's totally free and available on my website for download. Currently it's only available for Mac, but I am working on supporting Windows too because somebody emailed me and asked for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.alextong.me/eye-break" rel="noopener noreferrer"&gt;Download Eye Break → Free&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Your Monitor Setup Matters More Than You Think
&lt;/h2&gt;

&lt;p&gt;Now what else can you do about your monitor setup to improve your eye health besides taking breaks?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy54o3a8enwtaa4ujdel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy54o3a8enwtaa4ujdel.png" alt="No single light source dominates." width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Distance
&lt;/h3&gt;

&lt;p&gt;Super important — your monitor should always be &lt;strong&gt;at least an arm's length away&lt;/strong&gt; from you. Now, if you are on a laptop, that might be different. But for the most part, try to put it a bit farther away from you and then increase the font size if it's way too tiny for you to see. &lt;em&gt;That distance is going to help you a lot.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Your Monitor's Resolution
&lt;/h3&gt;

&lt;p&gt;One more thing on monitors — I use an &lt;strong&gt;LG UltraFine 5K display&lt;/strong&gt; and the reason is that higher pixel density will always result in sharper text. &lt;strong&gt;Sharper text means your eyes don't have to work as hard to focus.&lt;/strong&gt; It's basically the same ciliary muscle thing we've been talking about this whole article — if the text on your screen is crisp, those muscles can relax a little more.&lt;/p&gt;

&lt;p&gt;If you're still on a 1080p monitor, you should seriously consider upgrading to at least 4K or higher. It's probably one of the single best things you can do for your eye health besides taking breaks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;What I use:&lt;/strong&gt; &lt;a href="https://amzn.to/3PT3WFo" rel="noopener noreferrer"&gt;LG UltraFine 5K&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💵 &lt;strong&gt;Budget pick:&lt;/strong&gt; &lt;a href="https://amzn.to/4v7z7Nz" rel="noopener noreferrer"&gt;Dell 27 Plus 4K Monitor (S2725QS)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Screen Height
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The top of your screen should be at or slightly below your natural eye level&lt;/strong&gt; when you're sitting down or standing. Angle it slightly upward so your neck stays neutral and you're looking very slightly down — this helps both your eyes and your posture.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Lighting Setup Nobody Talks About
&lt;/h3&gt;

&lt;p&gt;This one is super important — &lt;strong&gt;bias lighting.&lt;/strong&gt; Bias lighting is light behind your monitor that illuminates the wall behind it. Now, if you have a desk with no wall behind it, you might want to move your desk or put some kind of panel behind it. You basically want to light the space behind your monitor.&lt;/p&gt;

&lt;p&gt;The reason you want to do this is that when you're staring at a screen, &lt;strong&gt;your pupils decide how much to dilate based on the amount of light around the screen&lt;/strong&gt; that you're looking at. So if you can lower the contrast between the amount of light radiating from the screen itself and get it to the same level of light that is behind the monitor, you can help your pupils reach a more stable level of dilation.&lt;/p&gt;

&lt;p&gt;What I'd recommend is a &lt;strong&gt;dedicated bias light strip&lt;/strong&gt; that goes directly behind your monitor — ideally covering the &lt;strong&gt;top edge at minimum&lt;/strong&gt;, but preferably all 3-4 edges if you can afford it. &lt;em&gt;Make sure you measure your monitor before you buy one&lt;/em&gt; — these strips come in different lengths and you want one that actually fits.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;What I use:&lt;/strong&gt; &lt;a href="https://www.biaslighting.com/products/medialight-mk2-flex-6500k-cri-98-bias-lighting?variant=45676139020526" rel="noopener noreferrer"&gt;MediaLight MK2 Flex 6500K&lt;/a&gt; — this is a proper bias light with CRI 98, not just a random LED strip from Amazon. It's worth it, trust bruv.&lt;/li&gt;
&lt;li&gt;💵 &lt;strong&gt;Budget pick:&lt;/strong&gt; &lt;a href="https://amzn.to/4c8qKIU" rel="noopener noreferrer"&gt;Luminoodle by Power Practical&lt;/a&gt; — same 6500K color temp, USB-powered, under $20&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpwrh3y643qgak1edw77.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpwrh3y643qgak1edw77.jpeg" alt="My monitor setup with bias lighting" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  My Screen Bar
&lt;/h3&gt;

&lt;p&gt;I also have a &lt;strong&gt;BenQ ScreenBar&lt;/strong&gt; sitting on top of my monitor. A screen bar is basically a light that mounts to the top of your display and lights your desk surface &lt;em&gt;without&lt;/em&gt; creating glare on the screen. It's the best of both worlds — you get task lighting for your keyboard and desk area, but it doesn't mess with your screen contrast. If you're going to buy one thing from this list, I'd say &lt;strong&gt;bias lighting first, screen bar second.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;What I use:&lt;/strong&gt; &lt;a href="https://amzn.to/4txd29y" rel="noopener noreferrer"&gt;BenQ ScreenBar LED Monitor Light Bar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💵 &lt;strong&gt;Budget pick:&lt;/strong&gt; &lt;a href="https://amzn.to/48v8CHU" rel="noopener noreferrer"&gt;Quntis Computer Monitor Lamp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⭐ &lt;strong&gt;Upgrade pick:&lt;/strong&gt; &lt;a href="https://amzn.to/4m8nykR" rel="noopener noreferrer"&gt;BenQ ScreenBar Halo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Indirect Lighting — The Lamp
&lt;/h3&gt;

&lt;p&gt;The other type of lighting you want is &lt;strong&gt;a lamp off to the side&lt;/strong&gt; that bounces light off a wall. This is separate from the bias light behind your monitor — this is about filling the room with indirect light so your screen isn't the only bright thing in your field of vision.&lt;/p&gt;

&lt;p&gt;I'd say put it to the left or right of your desk, angled vertically so the light bounces off your top left or top right wall if you have a wall in front of your desk.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;What I use:&lt;/strong&gt; &lt;a href="https://amzn.to/4bTwiIl" rel="noopener noreferrer"&gt;LED Desk Lamp with Clamp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Another tip — &lt;strong&gt;don't have too much overhead lighting.&lt;/strong&gt; The reason is that overhead lighting creates glare because there's too much light coming from on top of you. When you have glare on your screen, it's causing your eyes to work harder to see what's actually on the screen. You want to avoid glare at all costs.&lt;/p&gt;

&lt;p&gt;Also — &lt;strong&gt;watch out for where your windows are relative to your screen.&lt;/strong&gt; If a window is directly in front of you — behind your monitor — and letting in a lot of sunlight, the massive brightness difference between the window and your screen forces your eyes to constantly adjust. Your pupils want to constrict for the bright window but dilate for the dimmer display, and that tug-of-war fatigues your eyes fast. Having a window directly behind you isn't great either, since sunlight will reflect off your screen and cause actual glare. &lt;strong&gt;Ideally, windows should be to your left or right — at a 90-degree angle to your monitor.&lt;/strong&gt; If you can't move your desk, at least get some blackout curtains or blinds.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This is why it's basically impossible to use a computer on a sunny day at the beach — there's too much glare and you can't actually see what's on the screen.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The goal is: no single light source dominates. Your screen, the wall behind it, and the space around your desk should all be roughly the same brightness. That's what your eyes want.&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  The Blinking Problem
&lt;/h2&gt;

&lt;p&gt;You probably know that you need to blink a lot, right? Another big thing here is &lt;strong&gt;eye moisture.&lt;/strong&gt; What I do is I keep a bottle of eye drops at my desk at all times. &lt;em&gt;Every&lt;/em&gt; desk — my desk at work, my desk at home. Because if you have to go find your eye drops, you're not going to use them. That's just how humans work.&lt;/p&gt;

&lt;p&gt;Every time Count Tongula's Eye Break tells me to take one of those longer five-minute breaks, I'll put in some eye drops — pull down the bottom of my lower eyelid to create a pocket, let the drop settle in, and then close my eyes for about two minutes. &lt;strong&gt;That two minutes is about how long it takes for the drop to actually absorb into your eye.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro tip I learned way too late:&lt;/strong&gt; while your eyes are closed, gently press your finger on the inner corner of your eye — right where your eyelid meets your nose. This is called &lt;strong&gt;punctal occlusion&lt;/strong&gt; and it basically blocks the little drainage duct that would otherwise send your eye drop straight down into your nasal passages instead of letting it absorb into your eye. Without this, a lot of the drop just drains into your nose and you're basically wasting the entire eye drop. &lt;strong&gt;&lt;em&gt;Two minutes, eyes closed, gentle pressure on the inner corner.&lt;/em&gt;&lt;/strong&gt; That's the technique. Watch Dr. Sunny here do it for you live at 0:36.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/dM9334y1hbY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Here are my picks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;My pick:&lt;/strong&gt; &lt;a href="https://amzn.to/4sey2Ay" rel="noopener noreferrer"&gt;Refresh Tears&lt;/a&gt; — solid everyday eye drops that get the job done.&lt;/li&gt;
&lt;li&gt;⭐ &lt;strong&gt;Upgrade pick:&lt;/strong&gt; &lt;a href="https://amzn.to/4m8TlCi" rel="noopener noreferrer"&gt;Refresh Plus (Preservative-Free)&lt;/a&gt; — single-use vials with no preservatives, perfect if you're using drops more than a few times a day.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ALSO,&lt;/strong&gt; if you are going to put eye drops in more than four times a day, you should switch to a &lt;strong&gt;preservative-free drop.&lt;/strong&gt; The reason is that when you're using regular eye drops with preservatives, it can actually &lt;em&gt;irritate&lt;/em&gt; your eyes with too much use. Think of it like any medicine — if you use it too much, there are side effects. Same principle.&lt;/p&gt;




&lt;h2&gt;
  
  
  TL;DR — Your Eye Health Checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Take breaks every 20 minutes&lt;/strong&gt; and look at something 20 feet away for 20 seconds — download Count Tongula's Eye Break &lt;a href="https://www.alextong.me/eye-break" rel="noopener noreferrer"&gt;here&lt;/a&gt; to help you remember&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consider longer breaks too&lt;/strong&gt; — 5-15 minutes every 2 hours&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Monitor at arm's length away&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Top of screen at or slightly below eye level&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade to at least 4K&lt;/strong&gt; — sharper text = less strain on your eyes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Put a bias light strip behind your monitor&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add an indirect lamp to the side&lt;/strong&gt; — never let the screen be the only light source&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Get a screen bar&lt;/strong&gt; for glare-free desk lighting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blink more + keep artificial tears on every desk&lt;/strong&gt; — use them 2-4 times a day, eyes closed for 2 minutes after each drop!

&lt;ul&gt;
&lt;li&gt;If you're using drops more than 4x/day, switch to preservative-free!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;My eyes don't hurt anymore. Yours shouldn't either.&lt;/strong&gt;
&lt;/h2&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;strong&gt;Related:&lt;/strong&gt; &lt;a href="https://alextong.me/newsletter/claude-code-burnout" rel="noopener noreferrer"&gt;Claude Code Is (Seriously) Burning Me Out →&lt;/a&gt; — the productivity cycle that led me down this rabbit hole in the first place.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I'm not an eye doctor — I'm a software engineer who got really bad eye pain last year and went down a rabbit hole. Everything in this article is based on my personal experience and research, not medical advice. If you're experiencing severe eye problems, please go see an actual eye doctor. Some links in this article are affiliate links — if you buy something through them, I may earn a small commission at no extra cost to you. I only ever recommend products I actually use and alternatives I've researched.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;I've been a software engineer for more than half a decade, previously at Amazon and currently at The New York Times. These are observations from the trenches — not predictions. I also built &lt;a href="https://www.alextong.me/eye-break" rel="noopener noreferrer"&gt;Count Tongula's Eye Break&lt;/a&gt; — a free, open-source macOS app that enforces the 20-20-20 rule.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>macos</category>
    </item>
  </channel>
</rss>
