Skip to main content

Command Palette

Search for a command to run...

If I had to start over as a developer, I’d do these 5 things differently

Updated
3 min read

Starting over sounds scary—until you realize how much faster and smarter you could move with what you know now. Looking back, there are five big things I’d change if I were beginning again as a software developer. These aren’t just regrets—they’re adjustments I’d make to build a better foundation, avoid burnout, and accelerate the path to income and freedom.

1. Focus Less on Code, More on Systems Thinking

When I started, I obsessed over clean code, frameworks, and mastering every JavaScript quirk. That helped, but it boxed me in. What I should’ve focused on was systems thinking—how software fits into a business, how value flows, and how to design for outcomes instead of features.

Now: I think in terms of inputs, outputs, and feedback loops. It’s what separates a good coder from someone who can architect solutions and lead.

If starting over: I’d spend more time learning how systems work (books like Thinking in Systems or The Goal) and applying that lens to every project.

2. Start Building a Personal Distribution Channel Early

I used to think, “I’ll just build cool stuff and people will find it.” They don’t. In reality, building something is half the game—getting attention is the other half. I only recently started treating LinkedIn and SEO seriously, and it’s made a massive difference.

Now: I think about visibility and audience as assets. Writing about what I build, sharing ideas, and showing my thinking is how I attract freelance gigs, collaborations, and test product ideas.

If starting over: I’d treat content creation as part of my job. Not for clout—but for leverage.

3. Avoid Over-Engineering and Ship Faster

Early on, I built everything “right”: perfect architecture, full test coverage, scalable backends—for side projects no one used. I was trying to prove I was a real engineer. Ironically, the projects that made money were simple, scrappy MVPs.

Now: I build for outcomes, not elegance. “Done” is better than “scalable” if you’re testing an idea.

If starting over: I’d ruthlessly validate ideas with ugly prototypes and only polish what proves itself.

4. Learn Sales and Psychology Alongside Tech

I avoided anything salesy. I thought “sales” was pushy and beneath me. Big mistake. Whether it’s convincing a stakeholder, a user, or a client, selling is part of the job. Understanding psychology, incentives, and decision-making is a cheat code for influence.

Now: I study copywriting, pricing, and persuasion more than new frameworks. It helps in freelancing, product design, even interviews.

If starting over: I’d take one sales or negotiation course for every dev course.

5. Invest Early in Income-Generating Assets, Not Just Skills

Skills pay the bills, but assets buy your time back. I spent years upgrading my skillset with no real plan for passive income. If I had started even small—selling a tiny product, building a niche app, writing monetizable content—I’d be further ahead today.

Now: I focus on building things once that can earn indefinitely: SEO-powered tools, niche content, automations.

If starting over: I’d pick one side project that could grow quietly in the background and build it like a business, not just a portfolio piece.

Final Thoughts

If I could sum up all five lessons into one: Optimize for leverage, not just output. The earlier you learn to think like a systems builder—not just a developer—the faster you unlock freedom and impact.

What would you do differently if you were starting again?