Oleg, thanks for one of the best articles I've read describing the core skills of a good software engineer.
I was especially impressed by your reference to mathematics. As a student, I had avoided mathematics when I could (probably for the way it is taught). It wasn't until my early 30s that my ability to reason abstractly, and model systems in my head, emerged.
In the 48 years I've been building software, I've always been grateful when I've found people who have the skills you describe. They are all too rare. So many think coding is the essence of our profession, though it is only the way one explains, to an idiot computer, what one has figured out that it needs to do.
https://medium.com/swlh/on-being-a-professional-software-engineer-54f162459fdc