Most of this is for low-level libraries but the general principles are important for any software engineer to consider. It's not just a matter of writing clean modular code, choices of the data structure to use, library to choose, data type, variable scope, payload size to transfer over APIs, more attention to performance given over hotpaths in the code, appropriate indexing in the database, etc. are all important. And for any engineer, it is important to understand the order of magnitude of performance of different types of operations - we cannot run away from numbers.
Adi
-- Aaditeshwar SethMicrosoft Chair Professor, Computer Science and Engineering, IIT Delhi
Co-founder, Gram Vaani; Co-founder, CoRE Stack