|
A lot of online software industry content is focused on junior engineers: algorithms and data structures, usage of SQL, etc... But I don't think we often discuss what really sets mid/senior engineers apart. My list would probably look something like: - ability to use a proper debugging stack (not just tests/printf, use of microbenchmarks for optimisation, systems tracing for services) - optimisation of how their app interacts with the environment (kernel, network stack, cache lines) - debugging beyond application level issues (e.g. ability to use core dumps, knowledge of how the JVM works) |
I've seen others (and have myself) supported costly features of questionable value. Sometimes a few conversations with product managers and customers have resulted in us entirely dropping a feature.