The next article initially appeared on Addy Osmani’s Substack e-newsletter, Elevate, and is being republished right here together with his permission.
After I joined Google ~14 years in the past, I assumed the job was about writing nice code. I used to be partly proper. However the longer I’ve stayed, the extra I’ve realized that the engineers who thrive aren’t essentially the very best programmers. They’re those who’ve discovered the way to navigate all the things across the code: the folks, the politics, the alignment, the anomaly.
These classes are what I want I’d recognized earlier. Some would have saved me months of frustration. Others took years to completely perceive. None of them are about particular applied sciences—these change too quick to matter. They’re in regards to the patterns that preserve displaying up, venture after venture, staff after staff.
I’m sharing them as a result of I’ve benefited enormously from engineers who did the identical for me. Contemplate this my try to pay it ahead.
1. The perfect engineers are obsessive about fixing consumer issues.
It’s seductive to fall in love with a expertise and go in search of locations to use it. I’ve carried out it. Everybody has. However the engineers who create essentially the most worth work backwards: They turn out to be obsessive about understanding consumer issues deeply and let options emerge from that understanding.
Consumer obsession means spending time in help tickets, speaking to customers, watching customers battle, asking “why” till you hit bedrock. The engineer who actually understands the issue usually finds that the elegant resolution is less complicated than anybody anticipated.
The engineer who begins with an answer tends to construct complexity seeking a justification.
2. Being proper is reasonable. Attending to proper collectively is the actual work.
You may win each technical argument and lose the venture. I’ve watched good engineers accrue silent resentment by all the time being the neatest particular person within the room. The price reveals up later as “mysterious execution points” and “unusual resistance.”
The talent isn’t being proper. It’s getting into discussions to align on the issue, creating house for others, and remaining skeptical of your personal certainty.
Sturdy opinions, weakly held—not since you lack conviction however as a result of selections made below uncertainty shouldn’t be welded to identification.
3. Bias in the direction of motion. Ship. You may edit a foul web page, however you may’t edit a clean one.
The search for perfection is paralyzing. I’ve watched engineers spend weeks debating the perfect structure for one thing they’ve by no means constructed. The proper resolution hardly ever emerges from thought alone. It emerges from contact with actuality. AI can in some ways assist right here.
First do it, then do it proper, then do it higher. Get the ugly prototype in entrance of customers. Write the messy first draft of the design doc. Ship the MVP that embarrasses you barely. You’ll study extra from one week of actual suggestions than a month of theoretical debate.
Momentum creates readability. Evaluation paralysis creates nothing.
4. Readability is seniority. Cleverness is overhead.
The intuition to jot down intelligent code is sort of common amongst engineers. It seems like proof of competence.
However software program engineering is what occurs if you add time and different programmers. In that atmosphere, readability isn’t a mode desire. It’s operational threat discount.
Your code is a method memo to strangers who will preserve it at 2am throughout an outage. Optimize for his or her comprehension, not your class. The senior engineers I respect most have realized to commerce cleverness for readability, each time.
5. Novelty is a mortgage you repay in outages, hiring, and cognitive overhead.
Deal with your expertise selections like a company with a small “innovation token” price range. Spend one every time you undertake one thing materially nonstandard. You may’t afford many.
The punchline isn’t “by no means innovate.” It’s “innovate solely the place you’re uniquely paid to innovate.” Every part else ought to default to boring, as a result of boring has recognized failure modes.
The “greatest device for the job” is usually the “least-worst device throughout many roles”—as a result of working a zoo turns into the actual tax.
6. Your code doesn’t advocate for you. Folks do.
Early in my profession, I believed nice work would communicate for itself. I used to be flawed. Code sits silently in a repository. Your supervisor mentions you in a gathering, or they don’t. A peer recommends you for a venture, or another person.
In massive organizations, selections get made in conferences you’re not invited to, utilizing summaries you didn’t write, by individuals who have 5 minutes and 12 priorities. If nobody can articulate your impression if you’re not within the room, your impression is successfully optionally available.
This isn’t strictly about self-promotion. It’s about making the worth chain legible to everybody—together with your self.
7. The perfect code is the code you by no means needed to write.
We have a good time creation in engineering tradition. No person will get promoted for deleting code, despite the fact that deletion usually improves a system greater than addition. Each line of code you don’t write is a line you by no means need to debug, preserve, or clarify.
Earlier than you construct, exhaust the query: “What would occur if we simply…didn’t?” Typically the reply is “nothing unhealthy,” and that’s your resolution.
The issue isn’t that engineers can’t write code or use AI to take action. It’s that we’re so good at writing it that we overlook to ask whether or not we must always.
8. At scale, even your bugs have customers.
With sufficient customers, each observable habits turns into a dependency—no matter what you promised. Somebody is scraping your API, automating your quirks, caching your bugs.
This creates a career-level perception: You may’t deal with compatibility work as “upkeep” and new options as “actual work.” Compatibility is product.
Design your deprecations as migrations with time, tooling, and empathy. Most “API design” is definitely “API retirement.”
9. Most “sluggish” groups are literally misaligned groups.
When a venture drags, the intuition is responsible execution: Folks aren’t working laborious sufficient; the expertise is flawed; there aren’t sufficient engineers. Normally none of that’s the actual drawback.
In massive corporations, groups are your unit of concurrency, however coordination prices develop geometrically as groups multiply. Most slowness is definitely alignment failure—folks constructing the flawed issues, or the proper issues in incompatible methods.
Senior engineers spend extra time clarifying course, interfaces, and priorities than “writing code quicker” as a result of that’s the place the precise bottleneck lives.
10. Give attention to what you may management. Ignore what you may’t.
In a big firm, numerous variables are outdoors your management: organizational modifications, administration selections, market shifts, product pivots. Dwelling on these creates nervousness with out company.
The engineers who keep sane and efficient zero in on their sphere of affect. You may’t management whether or not a reorg occurs. You may management the standard of your work, the way you reply, and what you study. When confronted with uncertainty, break issues into items and determine the particular actions obtainable to you.
This isn’t passive acceptance, nevertheless it is strategic focus. Power spent on what you may’t change is vitality stolen from what you may.
11. Abstractions don’t take away complexity. They transfer it to the day you’re on name.
Each abstraction is a wager that you just received’t want to know what’s beneath. Typically you win that wager. However one thing all the time leaks, and when it does, you’ll want to know what you’re standing on.
Senior engineers continue to learn “decrease stage” issues at the same time as stacks get increased. Not out of nostalgia however out of respect for the second when the abstraction fails and also you’re alone with the system at 3am. Use your stack.
However preserve a working mannequin of its underlying failure modes.
12. Writing forces readability. The quickest solution to study one thing higher is to strive instructing it.
Writing forces readability. After I clarify an idea to others—in a doc, a chat, a code evaluation remark, even simply chatting with AI—I uncover the gaps in my very own understanding. The act of constructing one thing legible to another person makes it extra legible to me.
This doesn’t imply that you just’re going to discover ways to be a surgeon by instructing it, however the premise nonetheless holds largely true within the software program engineering area.
This isn’t nearly being beneficiant with data. It’s a egocentric studying hack. In case you assume you perceive one thing, attempt to clarify it merely. The locations the place you stumble are the locations the place your understanding is shallow.
Instructing is debugging your personal psychological fashions.
13. The work that makes different work doable is priceless—and invisible.
Glue work—documentation, onboarding, cross-team coordination, course of enchancment—is significant. However in the event you do it unconsciously, it might probably stall your technical trajectory and burn you out. The entice is doing it as “helpfulness” somewhat than treating it as deliberate, bounded, seen impression.
Timebox it. Rotate it. Flip it into artifacts: docs, templates, automation. And make it legible as impression, not as persona trait.
Priceless and invisible is a harmful mixture in your profession.
14. In case you win each debate, you’re in all probability accumulating silent resistance.
I’ve realized to be suspicious of my very own certainty. After I “win” too simply, one thing is often flawed. Folks cease preventing you not since you’ve satisfied them however as a result of they’ve given up making an attempt—and so they’ll specific that disagreement in execution, not conferences.
Actual alignment takes longer. You must really perceive different views, incorporate suggestions, and generally change your thoughts publicly.
The short-term feeling of being proper is value a lot lower than the long-term actuality of constructing issues with prepared collaborators.
15. When a measure turns into a goal, it stops measuring.
Each metric you expose to administration will ultimately be gamed. Not by malice however as a result of people optimize for what’s measured.
In case you observe traces of code, you’ll get extra traces. In case you observe velocity, you’ll get inflated estimates.
The senior transfer: Reply to each metric request with a pair: one for pace; one for high quality or threat. Then insist on decoding developments, not worshiping thresholds. The objective is perception, not surveillance.
16. Admitting what you don’t know creates extra security than pretending you do.
Senior engineers who say “I don’t know” aren’t displaying weak point. They’re creating permission. When a pacesetter admits uncertainty, it alerts that the room is secure for others to do the identical. The choice is a tradition the place everybody pretends to know and issues keep hidden till they explode.
I’ve seen groups the place essentially the most senior particular person by no means admitted confusion, and I’ve seen the harm. Questions don’t get requested. Assumptions don’t get challenged. Junior engineers keep silent as a result of they assume everybody else will get it.
Mannequin curiosity, and also you get a staff that really learns.
17. Your community outlasts each job you’ll ever have.
Early in my profession, I targeted on the work and uncared for networking. In hindsight, this was a mistake. Colleagues who invested in relationships—inside and outdoors the corporate—reaped advantages for many years.
They heard about alternatives first, might construct bridges quicker, received advisable for roles, and cofounded ventures with folks they’d constructed belief with over years.
Your job isn’t eternally, however your community is. Method it with curiosity and generosity, not transactional hustle.
When the time comes to maneuver on, it’s usually relationships that open the door.
18. Most efficiency wins come from eradicating work, not including cleverness.
When techniques get sluggish, the intuition is so as to add: caching layers, parallel processing, smarter algorithms. Typically that’s proper. However I’ve seen extra efficiency wins from asking, “What are we computing that we don’t want?”
Deleting pointless work is sort of all the time extra impactful than doing crucial work quicker. The quickest code is code that by no means runs.
Earlier than you optimize, query whether or not the work ought to exist in any respect.
19. Course of exists to scale back uncertainty, to not create paper trails.
The perfect course of makes coordination simpler and failures cheaper. The worst course of is official theater. It exists to not assist however to assign blame when issues go flawed.
In case you can’t clarify how a course of reduces threat or will increase readability, it’s in all probability simply overhead. And if individuals are spending extra time documenting their work than doing it, one thing has gone deeply flawed.
20. Ultimately, time turns into value greater than cash. Act accordingly.
Early in your profession, you commerce time for cash—and that’s effective. However in some unspecified time in the future, the calculus inverts. You begin to notice that point is the nonrenewable useful resource.
I’ve watched senior engineers burn out chasing the following promo stage, optimizing for a number of extra proportion factors of compensation. A few of them received it. Most of them questioned, afterward, if it was value what they gave up.
The reply isn’t “don’t work laborious.” It’s “know what you’re buying and selling, and make the commerce intentionally.”
21. There are not any shortcuts, however there’s compounding.
Experience comes from deliberate apply—pushing barely past your present talent, reflecting, repeating. For years. There’s no condensed model.
However right here’s the hopeful half: Studying compounds when it creates new choices, not simply new trivia. Write—not for engagement however for readability. Construct reusable primitives. Accumulate scar tissue into playbooks.
The engineer who treats their profession as compound curiosity, not lottery tickets, tends to finish up a lot additional forward.
A last thought
Twenty-one classes appears like so much, however they actually come down to a couple core concepts: Keep curious, keep humble, and keep in mind that the work is all the time about folks—the customers you’re constructing for and the teammates you’re constructing with.

A profession in engineering is lengthy sufficient to make loads of errors and nonetheless come out forward. The engineers I like most aren’t those who received all the things proper. They’re those who realized from what went flawed, shared what they found, and saved displaying up.
In case you’re early in your journey, know that it will get richer with time. In case you’re deep into it, I hope a few of these resonate.
Addy will probably be becoming a member of Tim O’Reilly on February 12 for an hour-long deep dive into the teachings he’s realized over his profession. They’ll additionally chat in regards to the progress being made in agentic coding workflows, in a dialog guided by questions from the viewers. Save your seat. It’s free.
Then on March 26, Addy and Tim will probably be internet hosting the following occasion in our AI Codecon collection: Software program Craftsmanship within the Age of AI. Over 4 hours, they and a lineup of professional practitioners will discover what it takes to construct glorious software program within the age of AI that creates worth for all members. It’s additionally free and open to all. Register right here.
You probably have a narrative to share about the way you’re utilizing brokers to construct revolutionary and efficient AI-powered experiences, we need to hear it—and presumably characteristic it at AI Codecon. Get the main points at our name for proposals and ship us your proposal by February 17.
