← Blog

What I Wish I Knew in My First Year of Professional Software Work

The Code Is the Easy Part

This is the thing that surprises almost every new engineer: the technical work is rarely the bottleneck. Understanding requirements, communicating progress, managing expectations, working within existing systems, navigating ambiguity — these are what actually determine your output and your growth rate.

It's not that the technical work doesn't matter. It's that every engineer at a professional level can write code. The differentiators are almost all interpersonal and structural.

Ask Questions Earlier Than You Think You Should

There's a pervasive fear among junior engineers of seeming incompetent by asking questions. This leads to spending hours stuck on something that a five-minute conversation would resolve.

The experienced engineers I've worked with have a rule of thumb: if you've been stuck for more than 30 minutes, ask. The time you save more than compensates for any perceived loss of face, and — importantly — no one who is worth impressing sees asking questions as incompetence. They see it as efficiency.

Read the Code Before Adding New Code

The default instinct is to build new things. But in an existing codebase, reading comes before writing. Before adding a feature, find similar features. How did previous engineers handle this? What patterns exist? What mistakes are already present that you shouldn't repeat or depend on?

This takes time. It saves more time than it takes.

Done Doesn't Mean Shipped

A feature is done when it's in production and working for users — not when it passes your local tests. The path from "code written" to "in production" often involves code review, CI, deployment, monitoring, and sometimes rollback. Understanding and owning that full path is the difference between a junior and a mid-level engineer.

Your Mental Health Is Part of Your Performance

The culture around engineering sometimes treats working long hours as noble. It isn't, in the long run. Sustained overwork degrades judgement, creativity, and patience — the things that make engineers actually good.

Learning to maintain sustainable pace, protect off-time, and communicate clearly when workload is unmanageable is not softness. It's how you have a long and effective career.

Invest in Your Tools

Your editor, your shell setup, your debugging workflow — these compound. Thirty minutes spent learning a keyboard shortcut that saves five seconds every minute pays back in days. This is not a reason to spend infinite time configuring things, but a reason to invest deliberately.

The engineers who are fastest in a codebase are almost always the ones who've invested the most in their environment.

Stay in the loop

Get new posts delivered to your inbox.

Leave a comment