A senior developer knows “why” and sees the big picture.. why the project is designed as such, which programming language works the best at each part.. why are we using this particular data storage, do data need to be stored at all? which algorithms to use at which point? All the points that performance needs to be optimized. All the points, that no optimizations are needed. Architecture, system linkages.. and most of all can think in such ways. Know that just making things work any outsource team can do. But, as real developers who work inside the company, developers are not code monkeys, they have to make real decisions to arrive at the simplest maintanable code. Senior developers know that leaving a legacy that will not be replaced is important. That means “why”, “why”, “why” behind everything. How do you learn “why” is by making mistakes and reading books, gaining knowledge and taking a step back. This is a great article.. that will hopefully lead to many comments. I wish it went a little more in depth.. but in any case it’s enought o invite lots of comments. Thanks for writing this!