A daily rhythm that helped me write 150+ stories, ship code faster, and avoid burnout, without fancy apps or overthinking productivity.
⚡️ TL;DR
I structure my day in two parts:
Morning = Long, focused sessions for writing and deep coding.
Afternoon = Short, actionable tasks like fixes, reviews, meetings, and shipping.
Writing is always part of the AM deep work block, no context switching, no interruptions.
This rhythm helped me:
- Write and publish 150+ dev stories
- Build and ship faster without mental overload
- Avoid burnout by aligning work with natural focus cycles
- This isn’t a productivity hack; it’s a sustainable routine that makes consistency easier.
- In this post, I’ll break down how it works, how I apply it as a dev and content creator, and how to adapt it to your energy curve.
I’ve tried every dev productivity fix I could find. Notion dashboards, Pomodoros, AI task planners. Most collapsed by lunch. This two-part rhythm is the only thing that stuck and it’s the reason I’m able to code, write, and ship without burning out.
What finally worked wasn’t a tool, it was a simple rhythm:
Deep, uninterrupted focus in the morning. Fast, tactical execution in the afternoon.
Every morning, I write or code with zero distractions. No meetings. No Slack. Just headphones and momentum.
Every afternoon, I shift gears: short bursts of work, context-switching tasks, cleanup, reviews, shipping.
That split long + intense early, short + actionable late helped me write over 150+ stories, build side projects consistently, and avoid the burnout loop that used to hit me frequently.
This article breaks down how I structure it, what it looks like day to day, and how to adapt it whether you’re a dev, indie hacker, or creator juggling both worlds.
Press enter or click to view image in full size
What didn’t work before, and why I stopped forcing it
Before this routine, my days were a mess of good intentions and broken focus.
I’d start the morning reacting to Slack or emails, then try to jump into deep coding by 11AM, just in time to lose momentum for lunch. Afternoons were worse. I’d attempt big tasks when my brain was already fried, leading to half-finished work or late-night catchup sessions.
I tried all the usual “fixes”:
- Pomodoro timers (great for shallow work, useless for deep architecture)
- Themed days (except bugs don’t wait for “Fix-it Fridays”)
- Rigid calendars with overlapping color-coded blocks
- Writing late at night when I had nothing left in the tank
- I once blocked my day in 30-min tasks. Looked great in Notion. Felt like mental whiplash in real life.
All of it looked productive on paper. None of it stuck in practice.
The real problem wasn’t my discipline.
It was trying to do everything at the wrong time.
I had energy but no focus in the afternoon.
I had clarity in the morning, but kept wasting it on meetings, DMs, or setup tasks. So I flipped the script.
“Your brain has two modes: focused and diffused. You can’t jump between them all day and expect flow.”
— Dr. Barbara Oakley, “Learning How to Learn”
What I changed: The AM/PM split that finally worked really well for me.
Once I realized I was fighting my own focus patterns, I simplified everything into a two-block system:
Morning = Deep Work (2–3 hours, no interruptions)
This is when I do high-cognitive-load tasks:
- Writing new dev articles
- Architecting features or designing systems
- Debugging complex bugs
- Learning hard technical concepts (e.g. PostgreSQL internals, compiler theory)
I guard this time ruthlessly: no meetings, no Slack, no tabs open that aren’t directly related.
It aligns with what Cal Newport calls “Deep Work” the kind of intense, focused effort that creates real value but gets crushed by distractions.
“To produce at your peak level you need to work for extended periods with full concentration on a single task free from distraction.”
— Cal Newport, Deep Work
Afternoon = Execution & Momentum
This block is for:
- Reviewing pull requests
- Fixing small issues or bugs
- Recording async updates
- Scheduling or responding to messages
- Researching or outlining tomorrow’s content
I call it the “ship and clear” zone, the time to execute smaller tasks that create a sense of movement without draining my energy.
Why the split works
According to a Stanford study on task-switching, shifting between cognitively demanding tasks (e.g., writing and bug fixing) reduces productivity by up to 40%. By front-loading deep work and batching lighter tasks later, you reduce that tax significantly.
It also respects natural circadian energy rhythms using high-focus windows for problem-solving, and late-day energy dips for lower-friction wins.
And psychologically, ending the day with completions even small ones creates closure, not anxiety.
Now some scientific explanation of it:
Our brain isn’t designed for all-day peak performance it’s designed for rhythmic cycles.
According to chronobiology and research in When by Daniel Pink, most people follow a Peak–Trough–Rebound pattern:
- Morning (Peak): High alertness and focus. Best for deep work, writing, problem solving, and complex coding.
- Early Afternoon (Trough): Mental dip. Best used for low-stakes tasks like replying to messages, clearing bugs, doing reviews, or scheduling.
- Late Afternoon (Rebound): Mild recovery of focus. Often a good time for creative thinking, planning, or closing small loops.
Mornings are for output. I don’t open Slack. I don’t check email. I either write 500 words or move one real task forward in code. Afternoons are for cleanup: PRs, messages, bugs, admin. I create early. I respond late
“For most of us, our sharpest analytic capacities peak in the morning. Later, we move into more creative and looser thinking.”
— Daniel Pink, When
This matches what neuroscience refers to as ultradian rhythms 90–120 minute cycles of heightened and reduced alertness.
By aligning your work with these cycles:
- You reduce context-switching overhead (Stanford shows it can cut productivity by 40%)
- You preserve energy for creative tasks instead of burning it on friction
- You finish the day with momentum instead of mental fatigue

Tools and habits that help me stick to the rhythm
Even with the perfect routine, sticking to it is the hard part.
Here’s what actually helped me stay consistent not by force, but by removing friction.
1. Fixed morning start time but flexible end
I don’t use alarms or hard stopwatches. I just start around 9 AM, and give myself 2–3 hours to go deep. Some days it flows longer. Some days I wrap in 90 minutes. The key is starting, not finishing perfectly.
2. Zero decision overhead
At the end of each afternoon, I write 1–2 bullet points:
→ What will tomorrow’s deep work be?
→ What’s the tiny task I’ll do if I feel stuck?
That list removes friction the next morning.
3. Write before I consume
No feed, no email, no Twitter, no Slack until I’ve written something.
Even 500 words. Even a draft title. That small action keeps the discipline muscle alive.
4. One screen, one tool, one task
If I’m writing, I use Bear or Obsidian fullscreen.
If I’m coding, it’s VS Code.
No dual monitor distractions. No Chrome tabs. No jumping apps.
5. One fallback rule: Just open the file
If I’m tired, scattered, or anxious, I don’t force a full session.
I just open the file I need to work on. That’s enough to flip the switch most days.
Common Pitfalls and How I Recover (Without Losing the Week)
Even with a system that works, I still mess it up. Life happens. Energy dips. Focus slips.
Here are the most common ways I fall off and the habits that help me recover without spiraling:
❌ Pitfall 1: Starting the day in reactive mode
If I open email or Slack first, the whole day gets pulled into reaction mode.
I end up jumping between threads, losing my mental slot for deep work.
How I reset:
Close everything. Open the last file I was writing or coding. Just stare at it for a minute.
One edit → one commit → one sentence — momentum comes back surprisingly fast.
❌ Pitfall 2: Overscheduling the day
Too many tasks → context collapse. I used to cram writing, meetings, coding, content planning, and errands all into the same day. Nothing got done well.
How I reset:
I go back to the 2-block mindset.
AM = one hard thing. PM = smaller wins. Everything else gets deferred or deleted.
❌Pitfall 3: Expecting the same energy every day
Some mornings I feel sharp. Some days I don’t. If I expect high output every morning, I get discouraged when I hit a flat day.
How I reset:
I lower the bar. I switch to editing instead of writing. Reviewing code instead of writing new logic. The routine survives even if the intensity drops.
This system only works because it forgives.
It’s not about perfection. It’s about rhythm. And rhythm, by nature, has ups and downs.
Final Thoughts: This Isn’t a Hack — It’s a Rhythm You Can Trust
This routine didn’t come from a book. It came from shipping.
I needed a way to write daily, code without burnout, and still finish the day with a sense of progress — not exhaustion. The answer wasn’t more hours or better tools. It was timing.
Not everything needs to be optimized. But if you’re a dev, writer, builder, or all three, your day deserves structure that respects how your brain actually works.
Key Takeaways
- Your brain has a rhythm. Work with it. Mornings are for deep thinking. Afternoons are for momentum and execution.
- Do one hard thing early. It sets the tone for everything else.
- Use the afternoons to finish, not to start. Ship, review, reply, rest.
- Fall off? Just open the file. That one habit can bring the whole system back.
Try This Tomorrow
You don’t need to change everything. Just try this:
- Block 2 hours in the morning for one focused task (writing, coding, solving).
- Push all messages, meetings, or reviews to after lunch.
- At the end of the day, write down what you’ll start tomorrow.
Then repeat. One clean loop at a time.
This system isn’t perfect. But it’s the only one that’s stuck not because it’s efficient, but because it actually respects how my brain works. Got a better one? Drop it below. I’m always looking for upgrades.
Top comments (0)