21 Classes from 14 Years at Google – O’Reilly


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 one of the best programmers. They’re those who’ve discovered the right way to navigate every little thing across the code: the individuals, the politics, the alignment, the paradox.

These classes are what I want I’d recognized earlier. Some would have saved me months of frustration. Others took years to totally perceive. None of them are about particular applied sciences—these change too quick to matter. They’re in regards to the patterns that maintain 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. Take into account this my try to pay it ahead.

1. The very best engineers are obsessive about fixing person issues.

It’s seductive to fall in love with a know-how and go on the lookout for locations to use it. I’ve completed it. Everybody has. However the engineers who create probably the most worth work backwards: They grow to be obsessive about understanding person issues deeply and let options emerge from that understanding.

Person obsession means spending time in help tickets, speaking to customers, watching customers wrestle, asking “why” till you hit bedrock. The engineer who really understands the issue usually finds that the elegant answer is less complicated than anybody anticipated.

The engineer who begins with an answer tends to construct complexity seeking a justification.

2. Being proper is affordable. Attending to proper collectively is the true work.

You’ll be able to win each technical argument and lose the venture. I’ve watched sensible engineers accrue silent resentment by at all times being the neatest particular person within the room. The fee 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 area for others, and remaining skeptical of your personal certainty.

Robust opinions, weakly held—not since you lack conviction however as a result of choices made below uncertainty shouldn’t be welded to identification.

3. Bias in direction of motion. Ship. You’ll be able to edit a foul web page, however you possibly can’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 right answer not often 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 be taught 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 nearly 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 surroundings, readability isn’t a mode choice. It’s operational danger discount.

Your code is a technique 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 know-how selections like a company with a small “innovation token” funds. Spend one every time you undertake one thing materially nonstandard. You’ll be able to’t afford many.

The punchline isn’t “by no means innovate.” It’s “innovate solely the place you’re uniquely paid to innovate.” Every little thing else ought to default to boring, as a result of boring has recognized failure modes.

The “greatest instrument for the job” is commonly the “least-worst instrument throughout many roles”—as a result of working a zoo turns into the true tax.

6. Your code doesn’t advocate for you. Folks do.

Early in my profession, I believed nice work would converse for itself. I used to be improper. 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, choices 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 non-compulsory.

This isn’t strictly about self-promotion. It’s about making the worth chain legible to everybody—together with your self.

7. The very best code is the code you by no means needed to write.

We rejoice 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 should debug, preserve, or clarify.

Earlier than you construct, exhaust the query: “What would occur if we simply…didn’t?” Generally the reply is “nothing dangerous,” and that’s your answer.

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 neglect to ask whether or not we should 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’ll be able to’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 accountable execution: Folks aren’t working exhausting sufficient; the know-how is improper; there aren’t sufficient engineers. Normally none of that’s the actual downside.

In massive firms, groups are your unit of concurrency, however coordination prices develop geometrically as groups multiply. Most slowness is definitely alignment failure—individuals constructing the improper issues, or the best issues in incompatible methods.

Senior engineers spend extra time clarifying path, 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 possibly can management. Ignore what you possibly can’t.

In a big firm, numerous variables are exterior your management: organizational adjustments, administration choices, 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’ll be able to’t management whether or not a reorg occurs. You’ll be able to management the standard of your work, the way you reply, and what you be taught. When confronted with uncertainty, break issues into items and determine the particular actions accessible to you.

This isn’t passive acceptance, but it surely is strategic focus. Vitality spent on what you possibly can’t change is power stolen from what you possibly can.

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 gained’t want to grasp what’s beneath. Generally you win that wager. However one thing at all times leaks, and when it does, it’s essential know what you’re standing on.

Senior engineers continue to learn “decrease stage” issues whilst stacks get larger. 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 maintain a working mannequin of its underlying failure modes.

12. Writing forces readability. The quickest option to be taught one thing higher is to strive educating 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 creating one thing legible to another person makes it extra legible to me.

This doesn’t imply that you just’re going to learn to be a surgeon by educating 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 suppose 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 potential 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 may well stall your technical trajectory and burn you out. The entice is doing it as “helpfulness” relatively 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 to your profession.

14. In case you win each debate, you’re most likely accumulating silent resistance.

I’ve realized to be suspicious of my very own certainty. After I “win” too simply, one thing is normally improper. Folks cease combating you not since you’ve satisfied them however as a result of they’ve given up making an attempt—they usually’ll specific that disagreement in execution, not conferences.

Actual alignment takes longer. It’s a must to truly perceive different views, incorporate suggestions, and generally change your thoughts publicly.

The short-term feeling of being proper is price 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 finally be gamed. Not by malice however as a result of people optimize for what’s measured.

In case you monitor traces of code, you’ll get extra traces. In case you monitor velocity, you’ll get inflated estimates.

The senior transfer: Reply to each metric request with a pair: one for velocity; one for high quality or danger. Then insist on decoding developments, not worshiping thresholds. The aim 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 spot. 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 grasp and issues keep hidden till they explode.

I’ve seen groups the place probably 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 truly 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 out of doors the corporate—reaped advantages for many years.

They heard about alternatives first, may construct bridges quicker, acquired beneficial for roles, and cofounded ventures with individuals they’d constructed belief with over years.

Your job isn’t perpetually, however your community is. Strategy 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 programs get sluggish, the intuition is so as to add: caching layers, parallel processing, smarter algorithms. Generally 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 nearly at all times extra impactful than doing essential 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 very best 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 improper.

In case you can’t clarify how a course of reduces danger or will increase readability, it’s most likely simply overhead. And if individuals are spending extra time documenting their work than doing it, one thing has gone deeply improper.

20. Finally, time turns into price greater than cash. Act accordingly.

Early in your profession, you commerce time for cash—and that’s superb. However in some unspecified time in the future, the calculus inverts. You begin to understand that point is the nonrenewable useful resource.

I’ve watched senior engineers burn out chasing the following promo stage, optimizing for just a few extra proportion factors of compensation. A few of them acquired it. Most of them questioned, afterward, if it was price what they gave up.

The reply isn’t “don’t work exhausting.” It’s “know what you’re buying and selling, and make the commerce intentionally.”

21. There aren’t any shortcuts, however there may be compounding.

Experience comes from deliberate observe—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. Acquire 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 seems like lots, however they actually come down to some core concepts: Keep curious, keep humble, and do not forget that the work is at all times about individuals—the customers you’re constructing for and the teammates you’re constructing with.

Addy Osmani at Google

A profession in engineering is lengthy sufficient to make loads of errors and nonetheless come out forward. The engineers I love most aren’t those who acquired every little thing proper. They’re those who realized from what went improper, shared what they found, and stored 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 likely 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 likely be internet hosting the following occasion in our AI Codecon sequence: Software program Craftsmanship within the Age of AI. Over 4 hours, they and a lineup of skilled practitioners will discover what it takes to construct wonderful software program within the age of AI that creates worth for all contributors. It’s additionally free and open to all. Register right here.

If in case you have a narrative to share about the way you’re utilizing brokers to construct modern and efficient AI-powered experiences, we wish to hear it—and probably function it at AI Codecon. Get the small print at our name for proposals and ship us your proposal by February 17.