Software Development, Software Engineering, Software Architecture, Software Design, Engineering.
Layers of abstraction only use the abstraction provided by the layer below, this allows more flexibility to change underlying implementation without affecting other code. 3rd party libraries can heavily simplify your workload, but be wary that it doesn’t impose changes on your code that shouldn’t