Current 1build engineer here! We have a small, focused team where everyone has an opportunity to have a huge impact on whatever part of the tech stack they choose. We're in constant contact with our customers to improve existing services or develop new ones. Engineers have a huge amount of ownership over the process at every stage from idea, to design, to implementation, to feedback and iteration. Come make jokes about the McRib with us.
Communication for sure. I think one of the hardest skills to develop is being appropriately critical without coming off like a jerk. This is especially true in remote teams where even the best conferencing solutions can't transmit subtle cues like body language.
I have been going about this by devoting a lot of time (maybe triple what I would intuitively expect) to writing thoughtful comments on code reviews/issues. And, while doing so, thinking through how I would go about the same conversation if it were in person.
Are you asking why software engineers don't memorize the lookup complexity of various data structures and how to implement (e.g.) sorting algorithms? It seems like asking "Why do many civil engineers not know truss types and stiffness matrices?". That is, there are high-quality repositories of this information that can provide it on-demand and free up cognitive overhead for creative problem solving rather than rote memorization.
Currently, not at all practical. But that's why we think it's important to make education a part of the initiative. The idea is that we can make relationships between computation and design to have architects understand design as part of a larger family of analytical tools, and people from machine learning/software development understand how those tools can help with creating a physical thing that is distributed across time/space/etc.