I think most technical people can be categorised as either Heads Up or Heads Down.
Heads Up people start at the technology and ask “How do people use this?”. They think most about the bits of the system you see and touch and interact with and beyond that to how this fits into the broader tasks that people using it are trying to achieve. They can empathise with people. They worry about how the system looks and feels. They think about the experience. They generally prefer to work collaboratively, and need lots of feedback to reassure themselves. They can sometimes be naive to the complexities of implementing something that looks simple on the surface, and ignorant to the trade-offs that their design decisions impose.
Heads Down people start at the technology too, but ask instead “How does this work on the inside?”. They think most about the bits of the system you don’t see and beyond that to the underlying implementation. They wonder how it could be improved, without any impact on the outward appearance. They have a deep technical knowledge and an ability to think in algorithims. They worry about performance and efficiency and optimisation. They think about the engineering. They generally prefer to work by themselves, and usually can tell when they have nailed it. They can sometimes struggle to understand that not everybody is an expert like them, and dismissive of things that seem more like aesthetics than an important part of the system.
Those are horrible broad-brush stereotypes, but if you’re a technical person it’s good to understand where you fit in, as that will help you work out how you can best contribute.
If you’re hiring a technical person, it’s really important to work out beforehand which type is right for the role you have. Any good team is going to need a well selected mix of both types of people.
Why is good UI design so hard for some developers? – Stack Overflow
Extraversion (E) or Introversion (I) – Myers-Briggs Basics