I've been doing this long enough to look back at early career decisions and understand why some of them worked and most of them didn't. None of this is original. Most of it I learned by doing the wrong thing first.

On the work itself

Shorten your feedback loop before you do anything else. A 20-second test suite run a hundred times a day is half an hour gone. Slow feedback trains you to batch your thinking in ways that don't serve you. The faster your loop, the faster you actually learn.

Read more code than you write. The systems you'll spend years working in already exist. Learning how to navigate a large codebase, how to find the thing you're looking for, how to understand someone else's decisions, pays off early.

Naming is the highest-leverage thing you do as an engineer. A good name removes the need for a comment. A bad name creates confusion that outlives everyone who wrote the surrounding code. Take it seriously.

Write the simplest version first. Premature abstraction is harder to delete than premature duplication. You can't fully understand what needs to be abstracted until you've written the same thing twice and felt the actual pain of it.

On working with people

Learn to disagree without escalating. "Here's why I see it differently" keeps the conversation open. You can be right and still lose the room.

Do your code reviews early in the day. The quality of a review drops as you get tired. Someone is also blocked on you while you put it off. Both of those things are avoidable.

Saying "I don't know" is a senior move. Honesty about the limits of your knowledge reads as experience. People who pretend they know everything give themselves away quickly.

On your career

The job posting is a wishlist. Apply to things you don't fully qualify for. Most hiring decisions are made on trajectory and on whether the person seemed sharp in conversation.

Document what you ship. Future teammates and your manager rely on it more than you'd expect. Written context about why a decision was made is worth more over time than the decision itself.

Pick one tool and become genuinely exceptional at it. Your editor, your debugger, your shell. Going deep on one thing teaches you how to go deep in general.

Leave before misery sets in. Staying somewhere past the point where you're growing has a compounding cost that's easy to underestimate while you're in it.

Be patient. This is a long game. Five years in still feels early. Ten years is when things start to compound in ways that feel like a different category of career than where you started.