Say it like this
- Let's create a good abstraction here.
- This abstraction is leaking implementation details.
- We need a higher level of abstraction for this.
- The abstraction breaks down when you scale.
Use it at work
In a code review
- This abstraction feels too early. We only have one use case so far.
- Can we hide the retry logic behind a small abstraction?
Explaining a design
- The storage layer is an abstraction, so we can swap S3 for GCS later.
- I added a thin abstraction over the payment providers.
Pushing back
- I'd rather duplicate this twice than add the wrong abstraction.
- This abstraction is leaking. Callers still need to know about the database.
Don't say this
Abstraction is a noun in this context, not a verb. You create, design, or improve an abstraction, not abstraction something.
Practice
Try it
4 quick exercises
1. You are explaining your design in a meeting. Which sounds most natural?
2. The database driver provides a clean _______ that developers can use without understanding SQL internals.
3. Which sentence uses abstraction incorrectly?
4. Rewrite this in natural tech English using abstraction: You made the complex thing simple by hiding how it works inside.
Say it out loud
Phrase 1 of 4
"Let's create a good abstraction here."
We don't save your recording. The word check uses your browser's speech recognition.
More about abstraction
Real examples(3)
- in a standup
"I spent yesterday refining the abstraction for our authentication layer so the frontend team doesn't need to understand OAuth details."
- in a code review
"This abstraction is good—it hides the database logic while exposing a clean API for the service to use."
- in a team meeting
"We should improve the abstraction around file handling; right now, callers need to know too much about buffering and file descriptors."
More mistakes(2)
Handle with care. Do not confuse abstraction (a design principle) with abstraction (a general concept). In tech, it refers to hiding complexity behind a simple interface, not daydreaming or ignoring details.
- ✕The abstraction is very complicated.✓The abstraction hides unnecessary complexity.
If an abstraction is complicated, it has failed. A good abstraction simplifies things. If complexity is hidden well, say it hides complexity.
- ✕We abstracted away too much detail.✓We created an abstraction that hides important details.
While abstract can be used as a verb in general English, in tech this phrasing is awkward. Use abstraction as a noun instead.
Other forms(3)
- abstraction noun
"A good abstraction makes the API simple for users to understand."
- abstract verb
"We decided to abstract the payment logic into its own module."
- abstract adjective
"The abstract class defines the interface that all implementations must follow."
Often used with(5)
- layer of abstraction · Common phrase meaning a level or tier of simplified interface. Example: Add another layer of abstraction between the UI and the database.
- wrong level of abstraction · Used when abstraction is too simple or too complex for its purpose. Example: Your function is at the wrong level of abstraction.
- leak abstraction · When hidden implementation details become visible, violating the abstraction. Example: This API leaks abstraction—callers must know about internal caching.
- good abstraction · An abstraction that effectively hides complexity and provides a clean interface. Example: This class is a good abstraction for file operations.
- design abstraction · The process of creating abstractions as part of system design. Example: During design abstraction, we identified three main components.
Similar words(3)
- interface · Similar in that it hides details, but interface is more specific to the exposed contract or API.
- encapsulation · Related principle that bundles data and behavior together, often used alongside abstraction.
- simplification · Broader term for making something easier, but lacks the implication of hiding complexity.
Opposites(4)
- implementation detail
- concrete
- exposure
- transparency
Questions(8)
- What is abstraction in programming, with an example?
- A car's steering wheel is an abstraction: you turn it without knowing how the steering system works. In code, a function like saveUser() hides the database queries inside it.
- What does "a leaky abstraction" mean?
- An abstraction "leaks" when you still have to understand the hidden details to use it correctly, for example when an ORM forces you to think about the exact SQL it generates.
- What is the difference between abstraction and encapsulation?
- Abstraction is about what you show: a simple interface. Encapsulation is about what you protect: keeping internal data private so other code cannot change it directly.
- What does abstraction mean in software engineering?
- Abstraction is a design principle that hides complex implementation details behind a simple, easy-to-use interface. Instead of exposing all the internal workings, you provide only what users need. For example, when you call a function to fetch data from a database, you do not need to know how the database retrieves the data—you just use the function. That simplified function is an abstraction.
- How do you use abstraction in a sentence at work?
- You typically use abstraction as a noun. Examples: "We designed a good abstraction for the authentication system," "This layer provides the right level of abstraction," or "The current abstraction is leaking implementation details." You can also use the verb form: "We decided to abstract the payment logic into a separate module."
- Is abstraction formal or informal?
- Abstraction is a formal technical term used in professional software engineering contexts. You will hear it in code reviews, architecture discussions, and interviews. While it appears in both spoken and written communication, it carries a formal tone because it represents a core engineering concept.
- When should you create an abstraction?
- Create an abstraction when you have complex logic that multiple parts of your system need to use. A good rule of thumb: if you find yourself repeating similar code or explaining implementation details to users of your code, you probably need a better abstraction. However, avoid over-abstracting early on—wait until patterns emerge.
- What does it mean when an abstraction leaks?
- A leaky abstraction occurs when implementation details that should be hidden become visible to users of the abstraction. For example, if your database query function forces callers to understand caching strategy or connection pooling details, the abstraction is leaking. This makes the code harder to use and understand.



