Issue 62- Perfect Is the Enemy of Good Enough
We build 90% of a project in 10% of the time, but the last 10% to make it perfect takes the remaining 90% of the time. And sometimes it takes so long that we don’t even ship at all.
As software engineers, we want everything to be perfect: the code, the variable names, the architecture, the tests, the documentation, the CI/CD pipeline, and so on.
We build 90% of a project in 10% of the time, but the last 10% to make it perfect takes the remaining 90% of the time. And sometimes it takes so long that we don’t even ship at all.
There are two reasons this happens: 1) we want to be the GOAT (Greatest of All Time), and 2) we’re afraid of criticism.
1. To Be the GOAT
Online, everything looks perfect. Every feed looks so nice, so shiny, so put-together, that whatever we’re working on suddenly feels not good enough.
We think everyone gets their work done perfectly on their first try. In reality, we’re seeing someone’s 100th attempt and mistaking it for their first. Because of this, we set the bar so high for ourselves that we think we can’t even do it.
I once spent six months arguing with a contributor over a refactor on my open-source project. Every time he made the changes, I asked for more changes. This left the contributor frustrated, which made me realize that I was chasing perfectionism. This perfectionism was blocking the refactor work, which was already 90% done and working great.
Also, once while editing a video, I got stuck fixing a small text animation for hours. Instead, I should have used the default animation and just finished the work sooner.
This need for everything to be perfect blocks our progress. We should have merged that PR, posted that video, or shared that blog — and if something wasn’t perfect, made it better next time.
I’m not saying you should settle for mediocre work. Think of it on a scale of 1 to 10, where 5 is average and 10 is perfect.
Aim to get your work to a 7 or 8, then ask yourself: Is this good enough to go live? Can I make it better next time? If the answer is yes, hit publish.
2. Afraid of Criticism
Sometimes this need for perfect comes from fear. We’re so afraid people will criticize our work that our brain starts making up reasons to avoid it. We find small things in our work and tell ourselves it can’t go out until they’re fixed.
I know this video I publish could be done better in many ways, but I publish it anyway. I make it better next time.
If you’re holding yourself back, waiting to get the work perfect, I have bad news for you: that moment never comes.
Don’t let the need to be perfect stop your progress.
What’s one project you’ve been sitting on because it isn’t “perfect” yet? What’s stopping you from sharing it today?
✍🏻 Articles to read:
1. Building Effective Agents by Anthropic
When to use agents: Agents can be used for open-ended problems where it’s difficult or impossible to predict the required number of steps, and where you can’t hardcode a fixed path. The LLM will potentially operate for many turns, and you must have some level of trust in its decision-making. Agents’ autonomy makes them ideal for scaling tasks in trusted environments.
While building our agent for SWE-bench, we actually spent more time optimizing our tools than the overall prompt.
2. How to Enter Side Doors by Maja
How to find jobs via Side Doors.
To be clear, this does not make the process fair or easy. Luck, privilege, networks, timing, and taste continue to very much be a part of the equation. But it does expand the set of possible moves.
Who is doing work I care about?
What are they trying to make happen?
Where are they stuck?
What do I know how to do, or what could I learn to do, that would help?
Who would be delighted, relieved, or intrigued if I showed up with something useful?
3. CLEAR- Software Design Principles for the Agentic Age by Adam Tornhill
Agents infer structure by search, tool use, and guesswork statistical probabilities. That means code can follow SOLID and still be difficult for an agent to reason about if intent, ownership, and change boundaries remain implicit.
4. Has AI Already Killed How-to Nonfiction? Sales Trends, My Personal Data, and What It Might Mean for the Future by Tim Ferriss
Experience that isn’t solely information: comedy, entertainment, storytelling, fiction, etc. You don’t ask an AI to summarize a stand-up special, and a synopsis of a great novel is not a great novel. Voice, taste, and personality may end up being the only durable moats. But “give me the 5 steps to X”? That’s a tough business that’s about to get a lot tougher.
I’d rather write books for 10,000 people who are genuinely changed by them than crank out short-form videos for 10 million people who forget about them within days or minutes.
📺 Videos to Watch:
1. The Story of C++- The World’s Most Consequential Programming Language | the Official Story
Things that stand out:
• A major bug in version 2.0 was fixed by naming it version 2.0.0 and not version 2.1, to avoid the embarrassment of a major bug upon its big release.
The standard library significantly influenced the language’s development.
C++ faced challenges during a dark period from 2000 to 2005 due to Java.
C++ is widely used, bridging modern languages and compilers that translate code into hardware-specific in C.
2. If You’re Applying for Jobs, Watch This
Over the years, the “Spray and Pray” method has not worked for me. Most of the work I have obtained came through networking or showcasing my public work, such as blogs, YouTube videos, and courses.
3. 35 Best N8n Use Cases You’ll Use Daily
Since I self-host n8n on my old MacBook as a server, I am adding a lot of small automations to it. I found this video about the best n8n use cases. The best part is that n8n has AI agent capabilities, which effectively allow you to build small agents.
📦 Code from Packages
1. Pixer
Fast, cross-platform image manipulation for Dart, powered by Rust via FFI.
2. Kaisel
A Dart 3-native Flutter router built on sealed routes, pattern matching, and a stack-as-state model. No string paths. No codegen.
📚 Quotes From Books
🔖Post I Found Useful
1. Forward Deployed Engineering 101
2. I’ve started doing a lot of async learning…
3. Ask HN- What Is the State of App Development in 2026?
🛠️ Tool I Found Useful
1. Pdfx- Allowing multiple files to be stored in a single file via metadata
2. Moniker - AI-Powered File Renaming
3. n8n-as-code- Give your AI agent n8n superpowers.
👋🏻 That’s it, Folks
I am currently open for consultation part-time/full-time, specialized in mobile development with Android and Flutter. So if you are looking for someone to:
Build product architecture from scratch
Train existing developers to level up
Fix major bottlenecks in legacy codebase
Improve code quality
And most importantly, ship things faster
then reach out to me at info@burhanrashid52.com.










