

You missed the documenting the code
Your words.
As for your job title, don’t take this badly but “Systems Architect” is not at all the same as “Technical Architect”.
If you’re actually designing or at least tuning software development processes and coding standards across multiple teams (so, not just optimizing how teams work but also optimizing cross-team work), you’re a Technical Architect.
A Systems Architect, when the title is properly used, just means that you’re designing software whose operation spreads across multiple platforms (so, for example, multiple tiers in a multi-tier system).
Also there is quite a range in Systems Architect - knowing how to code in two or more platforms (say, STM32 and some Android, to make a bit of home electronics with a microcontroller be controllable from a smartphone) is not at all the same as knowing how to design a high-performance distributed system running in multiple machines, integrated with multiple external system working for ten/hundred of thousands of client front-ends and supporting things like Distribute Transactions so that any failures don’t leave half-complete operations.
You can be a Systems Architect and be isolated form most of the concerns of the software development out there. especially if you’re a team of one developing the software side of products based on some marketing person’s idea of what customers supposedly want.
Unsurprisingly, Technical Architects are non-existent outside large companies and even there they’re pretty rare.
Again, still making my point on Dunning-Krugger.







Don’t take this badly, mate, but you sound like me when I was a “kid” thinking I was truly the shit for all my technical achievements as a self-taught programmer.
Absolutely, really impressive 1 in a really-big-number kind stuff, just the most pure technical track imaginable and not the same as understanding software development the process as whole, at all.
Decades later, 3 countries later, several industries later, various different environments and kinds of projects later and all sizes of company later, I’ve figured out that they pay us the big bucks to make software for OTHER PEOPLE, to serve THEIR needs not ours needs and certainly not for our personal enjoyment, though a good dev will always find some enjoyment in cracking complex problems, IMHO - from were a fuckton of constrains and dependencies on what and how you make it and whom do you have to work with are born - and if you want to achieve something that’s great in more axes of greatness than just pure technical impressiveness you need to actually learn how to effectively work in a team and with other teams even non-technical ones, including, beyond a certain point of experience, how to empower other more junior people in your team rather than just be pissed off at how little they know.
(And I don’t mean going into the Management track, I mean staying the Technical career track and still progressing as a Software Engineer).
And don’t get me started on the engineering-style concerns of software design around software live cycle in production and how to prepare for expected future directions of change.
Mind you I’ve crossed paths over the years once or twice with people who never moved beyond “technical excellence” as their one and only metric for software development (typically “rockstar coders”) and they were invariably miserable people who bitch and moaned about “lusers” and how other developers don’t know how to use the (not really properly designed for robust usage by people that can’t read your fucking mind) libraries they made.
Unless you find yourself a nice niche where you can be a solo rockstar hacker, technical excellence is only a good software development metric up to maybe the 5 years experience mark. Beyond that, unless your career has stagnated you’re supposed to be delivering the results the customers need to the customers and doing so in complex environments in cooperation with various teams, some of whom don’t at all understand most technical language and certain don’t have a fucking clue what “pre-emptive multitasking” means.