Stop Waiting for Perfect
Your Comfort Zone is Killing Your Career
You know that side project you’ve been planning for two years? The one where you’ve got the domain name, a Trello board full of features, and maybe even a half-finished wireframe buried in your files somewhere? Yeah, that one. The React developer portfolio that’ll showcase your skills. The SaaS idea that could actually work. The blog where you’ll share everything you’ve learned.
It’s still sitting there, isn’t it? Right next to “learn Rust,” “contribute to open source,” and “finally understand machine learning beyond copying TensorFlow examples.”
Here’s the thing nobody wants to hear: you have maybe 40 productive coding years if you’re lucky. And you’ve already used some of them.
The Math Nobody Wants to Do
Let’s talk about time, because the Stoics were obsessed with it for a good reason. They called it Memento Mori: remember you must die. Sounds dark as hell, but it’s actually the most liberating concept you can internalize as a developer.
If you’re 30, you have fewer working years ahead than behind. At 40, the math gets brutal fast. Not because you’re washed up but because time is the one resource you can’t earn back, can’t refactor, and can’t optimize with a clever algorithm.
That career pivot you’re waiting for? That application to the dream company you’re putting off? That conference talk you’ll submit “next year”? The clock’s ticking whether you’re watching it or not.
I’m not saying this to be depressing. I’m saying it because awareness of death isn’t depressing, it’s liberating. It obliterates the illusion that you have infinite time to become who you want to be.
The “Someday” Trap
Take Sarah. She’s been a backend .NET developer for eight years. Good at it, too. But she’s been talking about pivoting to machine learning since 2021. She’s got bookmarks saved. She bought three Udemy courses on sale. She even started one, got through the first two sections before “work got busy.”
Every year, she tells herself this is the year. She’ll carve out the time. She’ll work through the math. She’ll build the portfolio projects. And every year, December rolls around and she’s in the exact same spot, just one year older.
Someday is a place you’ll never arrive.
That’s the brutal truth. That app idea, that technical blog, that conference talk proposal: they die with you unless you start before you’re ready.
Every sprint you’re not learning, you’re not just standing still. You’re falling behind.
Technology moves whether you do or not. The junior dev who started learning Go two years ago while you were “waiting for the right time”? They just got the job you were thinking about applying for.
Standing still is moving backwards.
The Perfect Moment is a Lie
You’re waiting for the perfect moment, right? When work calms down. When you’ve saved up more. When you feel more confident. When you have fewer responsibilities.
You’ll never have more energy, fewer responsibilities, or better circumstances than right now. That’s just reality.
It’s easy to procrastinate. Hell, it’s the default mode for most of us. We tell ourselves we’ll start tomorrow, next week, after this project ships, after the holidays, when things settle down. But once we get to that “next day,” there’s more stuff on our plate. Now it becomes even harder to start, even easier to procrastinate.
Think about it. You put off learning that new framework because you’re busy with work stuff. Next month rolls around, and now you’ve got work stuff PLUS that production bug that won’t die PLUS your manager wants you to mentor the new junior PLUS your spouse is planning a vacation. The responsibilities don’t decrease, they compound.
The moment you’re thinking about making a change, about doing something drastic, about taking that leap? That’s exactly when you need to do it. Not when it’s convenient. Not when you’re ready. Now.
When Impostor Syndrome Meets Mortality
We’ve all got impostor syndrome. Every developer I know has that voice whispering “Who are you to apply for that senior role? You barely understand Docker. Real developers don’t Google basic syntax.”
But impostor syndrome loses its power when you hold it up against mortality.
“What if I fail?” becomes trivial compared to “What if I never try and run out of time?”
Do you want to be the developer who plays it safe for 40 years and retires with a resume full of maintenance work on legacy systems? Or do you want to look back and know you actually went for the things that scared you?
You don’t want to live with regrets. You don’t want to be 55, sitting in yet another sprint planning meeting, thinking “I could have built that startup. I could have learned that specialty. I could have become a tech lead if I’d just applied.” The “what could have been” is a special kind of torture.
Your Job is Not Forever (And That’s Actually Good)
Let’s talk about that comfortable salary. That job where you know the codebase, the team likes you, and the work is... fine. Not exciting, not challenging, but safe. The benefits are good. The 401k match is decent. Why rock the boat?
Here’s why: that comfortable job at your company might not exist in five years.
I’m not trying to freak you out, but look around. How many developers do you know who got comfortable, stopped learning, stopped growing, and then got blindsided by a layoff? They thought they’d coast to retirement at BigCorp, and BigCorp decided to “restructure” or “pivot” or whatever euphemism they’re using this quarter.
Comfort is a trap. It feels great in the moment, like sinking into a warm bath after a long day. But that same warmth that relaxes you can make you soft. And in tech, getting soft is dangerous.
We have no control over layoffs, over market shifts, over some executive deciding your entire department is getting outsourced. What we DO control is staying sharp. Keeping one foot out the door. Always looking at that five-year plan, hell, even a two-year plan.
A job is transactional. You’re trading your time and skills for salary and benefits. That’s it. It doesn’t define your worth. It doesn’t determine your identity. It’s what you’re doing now, not who you are.
The senior developer who spent ten years at the same company, doing the same type of work, never learning anything new? When that job ends, and it will end, they’re screwed. They’ve traded their growth years for comfort, and now they’re competing with developers half their age who have twice their curiosity.
Don’t be that person.
Five Years Pass Whether You Ship or Not
Here’s a thought experiment: think back five years. What were you working on? What were your goals? What were you planning to learn?
Now look at where you are today. Did those five years move you closer to who you want to be? Or did they just happen to you while you were busy being comfortable?
Because the next five years are going to pass whether you ship something or not. You can spend them wishing you’d started that project, built that skill, made that pivot. Or you can spend them actually doing it.
Death makes mediocrity unacceptable. When you truly internalize that this is your one life. Not a practice run, not a rough draft. Tolerating work you hate becomes impossible.
We only get one shot at this. It doesn’t make any sense to wait until tomorrow, wait until next year, wait until you feel ready.
So What Do You Actually Do?
If you really want to make a change, here’s what it takes:
Look at what you hate about your current situation. Not the surface stuff—not “I don’t like my manager” or “meetings suck.” Dig deeper. What’s actually keeping you up at night? What’s making you browse job boards at lunch?
Then look at what you’d need to change it. Not everything at once. Not the perfect plan. Just the next step.
Want to pivot from frontend to backend? Stop buying courses you won’t finish. Spend this weekend building one API. Just one. Make it terrible. Make it work. Then make another one.
Want to escape that toxic job? Stop complaining to your coworkers and update your LinkedIn. Like, actually update it. Today. Then apply to three places. Any three. Even if you think you’re not qualified. Especially if you think you’re not qualified.
Want to build that side project? Stop planning and write one function. Then another. Then another. Who cares if the architecture’s wrong? You can refactor later. You can’t refactor code that doesn’t exist.
The Stoics had this concept right: understanding that our time is finite shouldn’t paralyze us. It should energize us. Every day you wake up is another chance to move toward who you want to become.
You have to take those steps. You have to make those reps count. Because we only get one shot at this.
And once it’s done, it’s done.
Quote of the Day:
“It is not that we have a short time to live, but that we waste a lot of it. Life is long enough, and a sufficiently generous amount has been given to us for the highest achievements if it were all well invested.” - Seneca
👉 If you enjoy reading this post, feel free to share it with friends!
Or feel free to click the ❤️ button on this post so more people can discover it on Substack 🙏
You can find me on X and Instagram.
Also, I just launched a new YouTube channel - Code & Composure


