In the modern context, engineering suggests a highly rigorous approach to design, testing, and implementation. This is typically only done for things where lives are at stake (civil, chemical, aerospace, etc.), or where a great inventories and reputations are at risk.
Very little software (even at Google/Apple/Facebook/etc.) is written to that standard -- regardless of how many "Software Engineers" they may employ -- because the cost of mistakes is still far less than the cost of adopting a more formal approach.
It's all about the process. Answering algorithms questions off the top of your head is neither here nor there.
Anyone who knows an engineer will certainly have a story where he sets off to perform some trade around the house with a "No sweat, I'm an engineer!" attitude, then nearly burns the house down.
Very little software (even at Google/Apple/Facebook/etc.) is written to that standard -- regardless of how many "Software Engineers" they may employ -- because the cost of mistakes is still far less than the cost of adopting a more formal approach.
It's all about the process. Answering algorithms questions off the top of your head is neither here nor there.