TAGS: productivity, ai-automation, developer-workflow, deep-work
I used to brag about how many hours I worked. Now I brag about how few.
Not because I am lazy. Because I finally understand what produces value and what produces the illusion of value. The difference is not motivation. It is structure. Specifically, the 90-minute block.
Here is the pattern that broke my addiction to busywork.
The Problem With "Getting Things Done"
Most productivity systems treat all tasks as equal. Check email. Write code. Review a pull request. Update the roadmap. Each gets a slot on the calendar, each feels productive, and at the end of the day you have moved nothing forward that matters.
This is not a scheduling problem. It is a cognitive switching problem.
Every context switch costs you roughly 23 minutes of full focus recovery, according to actual research from the University of California, Irvine. Not the pop-psychology version. The real study. If you touch six different tools or projects in a morning, you have burned two hours on overhead alone. You were busy. You were not effective.
The 90-minute block exists to murder this pattern.
What a 90-Minute Block Actually Means
One project. One output. One definition of done. No tabs. No notifications. No "just checking."
I run four of these per day maximum. Often three. That sounds like nothing until you realize that three focused 90-minute blocks, with proper boundaries, produce more than ten hours of fragmented effort.
Here is my actual structure:
Block 1: 06:00 - 07:30
Deep technical work. Architecture decisions, complex debugging, system design. The stuff that requires full cognitive load.
Block 2: 09:00 - 10:30
AI-assisted production. Content scripts, automation workflows, prompt engineering. Leveraging tools that multiply output.
Block 3: 14:00 - 15:30
Communication and coordination. Email, Slack, calls. Contained to one window so it does not infect the other blocks.
Block 4: 16:00 - 17:30
Learning and maintenance. Documentation, skill acquisition, tool evaluation. The investment that compounds.
Between blocks: actual rest. Walk. Eat. Stare at a wall. The brain needs recovery to consolidate and prepare. This is not optional. Skipping it turns block four into garbage time.
The AI Layer: Automation as Discipline
I do not use AI to do my thinking. I use it to remove the friction that breaks my blocks.
Here is a concrete example. Every morning I need context on system status, content performance, and any fires that actually require human intervention. This used to mean checking six dashboards and three Slack channels. Now it means one automated briefing.
# Simplified version of my morning context generator
import asyncio
from dataclasses import dataclass
from typing import List, Optional
@dataclass
class SystemStatus:
service: str
status: str
last_check: str
requires_action: bool
async def generate_morning_brief() -> str:
"""
Pulls from monitoring APIs, analytics, and communication channels.
Returns human-readable summary. Takes 8 seconds. Runs at 05:45.
"""
statuses = await asyncio.gather(
check_infrastructure(),
check_content_metrics(),
check_communication_backlog()
)
actionable = [s for s in statuses if s.requires_action]
if not actionable:
return "All systems nominal. No human intervention required."
return format_action_items(actionable)
# This runs before I wake up. I read it in 30 seconds.
# Then I know whether block one is deep work or firefighting.
The discipline is not in the code. It is in the decision to build the code instead of accepting the daily dashboard crawl as inevitable.
Every workflow I automate this way buys back block integrity. The goal is not to eliminate work. It is to protect the 90 minutes from fragmentation.
The Hard Part: Saying No in Real Time
The system breaks when you break it. Someone pings you on Slack. You "just check" for thirty seconds. Thirty seconds becomes ten minutes becomes a destroyed block.
My rules are mechanical, not motivational:
- Notifications off by default. On for two 30-minute windows only.
- Physical phone in another room during blocks one and two.
- If it is not on fire, it waits for the communication block.
- If it is on fire, I handle it and abandon the block. No partial credit. Reset and restart.
This last point matters. You cannot salvage a contaminated block. The cognitive residue of interruption persists. Better to take a real break and start fresh than to pretend you are still focused.
What This Actually Produces
Three months of this structure:
- Shipped content output increased 340% measured by published pieces
- Technical debt backlog reduced from 47 items to 8
- Sleep improved because work actually ends
- Revenue per hour worked approximately tripled
The last metric is the one that counts. Not hours. Not effort. Output per unit of attention invested.
The Implementation
You do not need my exact schedule. You need your own version of protected, defined, single-purpose blocks.
Start with one. Pick your highest-leverage activity. Give it 90 minutes tomorrow morning with no compromise on boundaries. Notice how much you want to check something, anything, to feel busy. Notice the discomfort of actual focus. That discomfort is the signal you are doing it right.
Build from there.
The tools do not matter until the structure exists. AI automation does not help until you know what to automate. Discipline precedes optimization.
Bio: Building A3E Ecosystem. I write about automation, focus, and systems that actually work for solo operators and small teams.
Check out Ambient Rain Sounds for Deep Sleep - 5 Pro WAV Loops + Creator Guide (CAD$9.99) at https://cooa.gumroad.com/l/tnzhfd
Top comments (0)